purebasic.info

PureBasic forum
Текущее время: Пн сен 16, 2019 1:30 am

Часовой пояс: UTC + 3 часа




Начать новую тему Ответить на тему  [ Сообщений: 3 ] 
Автор Сообщение
 Заголовок сообщения: Прожорливый Огр? (Engine3D)
СообщениеДобавлено: Сб авг 31, 2019 10:23 am 
Не в сети
ассистент
Аватар пользователя

Зарегистрирован: Сб янв 30, 2016 4:41 pm
Сообщений: 16
Откуда: SimBEERsk
Благодарил (а): 2 раз.
Поблагодарили: 0 раз.
Пункты репутации: 0
Стало интересно, сколько памяти отжирают 3D-приложения, взял пример из справки (CreateTube) и немного удивился. После инициализации движка (из объектов только свет и камера), приложение занимает примерно 18 Mb. Создаем трубу, и Огр начинает зохавывать RAM... Аж 141 Mb.
Это особенность движка такая - при создании хотя бы одного Entity резервировать столько памяти?
Можно ли как-то умерить его аппетит?

Может, все это и глупости, но интересно же!

PB 5.62


Вложения:
Комментарий к файлу: Добавили всего лишь трубу...
2.png [58.65 KiB]
Скачиваний: 0
Комментарий к файлу: Пустое пространство, только свет и камера.
1.png [63.11 KiB]
Скачиваний: 0

_________________
Si vis pacem, para bellum.
Вернуться наверх
 Профиль  
 
 Заголовок сообщения: Re: Прожорливый Огр? (Engine3D)
СообщениеДобавлено: Вс сен 01, 2019 8:23 pm 
Не в сети
профессор
Аватар пользователя

Зарегистрирован: Пн мар 02, 2009 3:46 pm
Сообщений: 215
Откуда: РФ Тверская область
Благодарил (а): 7 раз.
Поблагодарили: 8 раз.
Пункты репутации: 0
Скорее всего никак.

_________________
Жизнь коротка. Потерпи немножко.


Вернуться наверх
 Профиль  
 
 Заголовок сообщения: Re: Прожорливый Огр? (Engine3D)
СообщениеДобавлено: Пн сен 02, 2019 6:00 am 
Не в сети
профессор

Зарегистрирован: Чт сен 22, 2011 6:21 pm
Сообщений: 289
Благодарил (а): 41 раз.
Поблагодарили: 28 раз.
Пункты репутации: 0
Память всегда выделяется с запасом, полагая, что "трубой" дело не окончится.
Если это для вас проблема, попробуйте принудительно очистить (после создания всего необходимого):
Код:
1
2
3
4
5
6
7
8
9
10
11
12
13
Procedure EmptyWorkingSet()
   ;--------------------------
   ;Reduce memory use of current process
   Protected *EmptyWorkingSet
   Protected hDll.i = OpenLibrary(#PB_Any, "Psapi.dll")
   If hDll
      *EmptyWorkingSet = GetFunction(hDll, "EmptyWorkingSet")
      If *EmptyWorkingSet            
         CallFunctionFast(*EmptyWorkingSet, GetCurrentProcess_())
      EndIf
      CloseLibrary(hDll)
   EndIf
 EndProcedure



Вернуться наверх
 Профиль  
 
Показать сообщения за:  Сортировать по:  
Начать новую тему Ответить на тему  [ Сообщений: 3 ] 

Часовой пояс: UTC + 3 часа


Кто сейчас на форуме

Сейчас этот форум просматривают: Bing [Bot] и гости: 8


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
cron
Создано на основе phpBB® Forum Software © phpBB Group (блог о phpBB)
Сборка создана CMSart Studio
Русская поддержка phpBB