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 - оно не просто скачет оно РАСТЁТ!
и еще кое что.. завтра допишу хочу спать.


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

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