forum.boolean.name

forum.boolean.name (http://forum.boolean.name/index.php)
-   3D-программирование (http://forum.boolean.name/forumdisplay.php?f=12)
-   -   Параноя.Потеря памяти. (http://forum.boolean.name/showthread.php?t=4871)

Stalnoy_Gvozd' 27.10.2007 18:00

Параноя.Потеря памяти.
 
Вложений: 2
И нет.. Это не убер-блиц-хит. Это у меня параноя. Просто запустив игру я включил диспетчер задач, и увидел что при каждой загрузке-выгрузке уровня теряется память т.е. процес занимает все больше и больше.
В панике перелопатил весь код, в итоге оставил только загрузку анимированной модели. И обнаружил что блитц куда-то девает до 200 лишних килобайт на одну загруженную и выгруженную аниммодель. Учитывая что в игре загружается не по одной модельке волосы встают дыбом..:blink:
Вложение 4953 - пример
Вопрос скорее риторический - Что делать? И кстати все-таки куда уходит память?:mda:
---------------------
И кстати ClearWorld непомогает.

jimon 27.10.2007 18:13

Re: Параноя.Потеря памяти.
 
ну течет память в двиге блица (код не смотрел ^_^)
что с того-то ?

Stalnoy_Gvozd' 27.10.2007 20:26

Re: Параноя.Потеря памяти.
 
Значит таки течет! Значит таки "руконьки не из жопананьки"!
Я здоров !!Гип-гип ура!:)
Но всетаки за державу обидно...:(
Тогда как полностью все выгрузить, на экстренный случай?

Platon 27.10.2007 21:55

Re: Параноя.Потеря памяти.
 
Ничего там в Блице не течет, ты просто что-то не удаляешь. Попробуй, если не веришь, отдельно грузить\удалять аним меши и смотри на выделяемую память.

tormoz 28.10.2007 02:23

Re: Параноя.Потеря памяти.
 
Проверял, не течет ничего
в цикле 2 миллиона раз загружал\удалял все ок.

Stalnoy_Gvozd' 28.10.2007 18:44

Re: Параноя.Потеря памяти.
 
Стоп.Так может проблема в модельке?
Если кто не заметил, я в первый пост прикрепил архив с примером.
Дабы не быть голословным:
Прога запустилась - 7,748 KB
1й проход в 10 лоад/анлоад - 7,856 KB
2 - 7,856 KB
3 - 7,856 KB
4 - 7,856 KB
5 - 7,956 KB
6 - 7,956 KB
7 - 7,964 KB

---
P.S. Cyan, лучше промолчать , чем сказать не о чем.
Прежде чем отвечать перечитайте текст 1 поста, и взгляните на пример.

moka 29.10.2007 13:12

Re: Параноя.Потеря памяти.
 
Stalnoy_Gvozd', попробуй поставить паузу между загрузкой и удалением, может блиц просто не успевает отчитить это всё.
> P.S. Cyan, лучше промолчать , чем сказать не о чем.
Прежде чем отвечать перечитайте текст 1 поста, и взгляните на пример.
хи-хи, что-что а Cyan в блице разбирается, и ещё как, и ответил на твою "параною", ты намекнул что в блице могет что-то течь, он опровергнул, и не просто "догадками", а руководствуясь опытом.

Stalnoy_Gvozd' 29.10.2007 13:55

Re: Параноя.Потеря памяти.
 
А что блицу надо еще и подумать прежде чем выгрузить модельку? Эт что получается: выгрузил - подождал, следующую выгрузил - подождал..
Нет чето тут не то.
Если запускали пример сообщите пожалуйста о своих результатах. И давайте будем думать вместе. Опять же может проблема в модели, в ней использовались dummy'сы.
Я серьёзно.
>2MoKa: Cyan и всем я сообщил, что оставил в программе только загрузку/выгрузку одной модели и добавил пример проги, а мне говорят: "нет ты этого не делал!"-это не умно, я был "фшоке". И еще, про протечку в блитце мне "подсказал" jimon.

moka 29.10.2007 14:19

Re: Параноя.Потеря памяти.
 
Stalnoy_Gvozd', ну я не думаю что процессоры умеют работать мгновенно. Ему же нужно подумать, оперативке нужно тоже время. Если бы всё работало мгновенно, мы бы жыли совсем подругому ;)

Провёл тест, такого кода:
[blitz]Graphics3D 800,600,0,2
SetBuffer BackBuffer()

While Not KeyHit(1)

ms=MilliSecs()
For i=1 To 10
Track=LoadAnimMesh("Tracks\track_3.b3d")
FreeEntity(Track)
Next
tms=MilliSecs()-ms
Print tms

If KeyHit(57) Stop
Wend[/blitz]
цифры прыгают от 60 до 70, при этом стабильно никаких завышений со временем, всё отлично работает. Незнаю как ты получал свои числа.

Stalnoy_Gvozd' 29.10.2007 17:30

Re: Параноя.Потеря памяти.
 
MoKa, ну я тож догадывался, что процессоры не умеют работать мгновенно (Чо вы из меня дурочка делаете?;) ). Но то что прога может приступить к следующему оператору не выполнив предыдушего:4to: , это для меня в новинку...

Delta_Q 29.10.2007 17:54

Re: Параноя.Потеря памяти.
 
Это не факт, но возможно такое:
Утечька памяти может проистикать не тока из-за скорости, а к примеру когда движок выделяет облость памяти под данные то может указывать адресс в памяти со смещением получаетсья что иногда он указывает на облость тока что удаленного, то смещаетсья указатель на ближайшее свободное место. Подразумевая что ту облость памяти используют.
Когдато давно на форумах разработчиков С++ говорилось об этом. Т.е. некорректно работают функции резервирования памяти.

moka 29.10.2007 18:05

Re: Параноя.Потеря памяти.
 
Stalnoy_Gvozd', скриншот в студию, я не нашёл твоих цифр, нигде не нашёл "утечки", и то что в приложении, модифицировав, абсолютно адекватно выдаёт данные, что ну ни как не тревожит. :)

jimon 29.10.2007 19:08

Re: Параноя.Потеря памяти.
 
Stalnoy_Gvozd'
добро пожаловать в многопоточность винды ... ы :D
обновление числового значения занятой процесом памяти в менеджере процесов выполняется раз в 500 мс помойму
и потому значение скачет

Crystal 29.10.2007 20:17

Re: Параноя.Потеря памяти.
 
Мдаааа это не параноя.

Стартует сея пример у меня с 8924
и в действительности сумма после выполнения процесса меняется
причём я заметил что на сумму влеяет ещё и
сворачивание/разворачивание окна

самое максимальное что я смог выбить с примера 9168
дальше расти не хотело

самое минимальное до скольки упало 2116

P.S. а в свёрнутом режиме окна падало ниже 1500

Добавил:
Цитата:

самое минимальное до скольки упало 2116
щас до 1200 сбросил )

Stalnoy_Gvozd' 29.10.2007 21:35

Re: Параноя.Потеря памяти.
 
Да, кстати, я нигде не сказал но это так:После многочисленных Загр-Выгр кол-во занимаемой памяти действительно останавливается на коком нибудь числе (явно большем чем изначальное).
> 2jimon - оно не просто скачет оно РАСТЁТ!
и еще кое что.. завтра допишу хочу спать.

moka 29.10.2007 21:37

Re: Параноя.Потеря памяти.
 
Stalnoy_Gvozd', иди читай мой пост и вставь тот код, и запусти! Блин. Я злой!

Crystal 29.10.2007 22:06

Re: Параноя.Потеря памяти.
 
Мока! Запустил твой код.
И цифер было много, и все разные до определённого предела.

moka 29.10.2007 22:19

Re: Параноя.Потеря памяти.
 
Blitzerg, Спасибо! Но ведь они стабильны, правильно? Нету такого нароста, они просто прыгают то больше то меньше. Но в общей мере остаються на месте.

Crystal 29.10.2007 22:43

Re: Параноя.Потеря памяти.
 
Впринципи прыгают в твоём коде.
А вот в коде автора топа именно растёт, но растёт до определённого предела.

Вот такая вот загагулина )

Stalnoy_Gvozd' 30.10.2007 17:01

Re: Параноя.Потеря памяти.
 
MoKa - "Нибиси меня!".Твой пример у меня тоже стабилен!! НО что не так с моим простым до боли в ж... примером!?
Я прошу протестировать МОЙ пример, если память теряется, то либо скажите почему, либо просто от'thank'те в этот пост чтобы можно было понять масштаб бедствия и убедить неверующих.

moka 30.10.2007 18:38

Re: Параноя.Потеря памяти.
 
В твоём примере нету даже замеров времени, думаю другим просто лень делать эта "за кого-то". Я добавил в твой пример время, протестировал. Так же стабильно. Я хз где ты там чёт нашёл не то. Тафай Точно тот пример в котором у тебя "утечка".

Stalnoy_Gvozd' 30.10.2007 19:06

Re: Параноя.Потеря памяти.
 
MoKa какое к черту время? Я же русским языком сказал, Никому ничего не надо замерять и что-то куда-то вставлять. Надо жать Ctrl+Alt+del и смотреть в диспетчере задач память занимаемую процессом. До Blitzerga это дошло. Можешь у него спросить добавлял ли он чето кудато заковото или нет. Думаю нет.

moka 30.10.2007 19:31

Re: Параноя.Потеря памяти.
 
Stalnoy_Gvozd', если бы процесс занимал больше памяти то его бы работа тоже занимала бы больше времени.
Сори что ступил, дома это всё проверю.


Часовой пояс GMT +4, время: 06:32.

vBulletin® Version 3.6.5.
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Перевод: zCarot