Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.08.15;
Скачать: CL | DM;

Вниз

Занимаемая память программы (Task manager)   Найти похожие ветки 

 
ctapik ©   (2004-03-01 18:13) [0]

Уменьшение размера программы в памяти используя KOL, это конечно хорошо. А вот как обстоит дело с размером программы в опер. памяти? Решил создать простое приложение (одна форма). Получилось 3992K (Пример TestKOL). Не слишком ли многовато. Есть ли какие нить пути к уменьшению? Если есть, то какие. Заранее благодарен.


 
Dimaxx ©   (2004-03-01 21:49) [1]

Создал пустую форму на КОЛе и на winapi. Размер практически одинаковый (winapi - 1.6 мега, KOL - 1.8 мега). Но (да простит меня Владимир) KOL тормоз каких мало! У меня в тестовом приложении парсится модель корабля из текстового файла объемом 1.3 мега. VCL-реализация парсит и выводин на opengl за 3 секунды, а КОЛ - ажно за 7!!! И opengl-вращение модели на КОЛ тормознее в полтора раза. А объем на КОЛ - 72 кб (гут), на VCL - почти 500 кило (ни хрена не гут). Но придется остановиться на VCL - так как быстрее.


 
SPeller ©   (2004-03-02 02:05) [2]

Попробуй менеджер памяти VCL-овский подключить. Тот что используется в КОЛ медленнее, но кода меньше добавляет.


 
SPeller ©   (2004-03-02 07:29) [3]

Тут вот обсуждалось это:
http://delphimaster.net/view/11-1071442374/
Из этого я понял что если использовать дельфийский менеджер, то скорость работы не должна уступать VCL.


 
Владимир Кладов   (2004-03-02 14:55) [4]

если не используется замена system.pas, или при включенной замене вызыван UseDelphiMemoryManager, тормозов быть не может. А парсить надо без использования AnsiStrings, и тогда хоть с менеджером хоть без менеджера будет в 20 раз быстрее работать.


 
Dimaxx ©   (2004-03-03 23:59) [5]

Без ansistring я понял, но если нужно парсить строку заведомо более 255 символов длиной. Тогда как быть?


 
Boguslaw   (2004-03-04 00:40) [6]

Yes, AnsiString is reason for big memory consumption. I create small program in KOL/WinAPi without using AnsiString and he is only 20kb on disk and about 456 kb in memory.
How about using another memory menager ? I heard that there is small and fast implementation which avoid memory defragmentation.After all - how about test with form with many BitBtn controls when UseDelphiMemoryManager is used ? Is it still frozen ?


 
Boguslaw   (2004-03-04 00:42) [7]

By the way , shoudn"t KOL be small, powerfull but also as fast as VCL (or faster)? I think it also important ?


 
Dimaxx ©   (2004-03-04 23:16) [8]

Замену системников отключил - все равно медленно грузит. А почему opengl в КОЛ работает в 1.5-2 раза тормознее - не догнал. :-)


 
SPeller ©   (2004-03-04 23:24) [9]


> А почему opengl в КОЛ работает в 1.5-2 раза тормознее -
> не догнал. :-)

UseDelphiMemoryManager использовал?


> Без ansistring я понял, но если нужно парсить строку заведомо
> более 255 символов длиной. Тогда как быть?

PChar?


 
Gandalf ©   (2004-03-05 12:59) [10]

2Dimaxx
 Ничего не медленней - OGL так же шпарит.


 
SPeller ©   (2004-03-05 13:02) [11]

Сегодня сам проверил — UseDelphiMemoryManager ускоряет работу программы.


 
Gandalf ©   (2004-03-05 19:18) [12]

2SPeller
 Ну если верщинки из памяти бросать - то понятно, но OGL тут так  сказать не причем - он сам не быстрее, не медленнее работает. Тестировать лучше на списках.


 
Dimaxx ©   (2004-03-05 22:04) [13]

OpenGL (не KOLOGL) VCL существенно быстрее...


 
SPeller ©   (2004-03-06 06:10) [14]


> Тестировать лучше на списках.

А у меня прога и так со списками. StrListEx. Только, блин, на 8 КБ размер увеличивает :(


 
Dimaxx ©   (2004-03-07 00:23) [15]

Кстати о птичках. Пользуясь случаем прошу Владимира поправить код для StrList - он не берет строки, если их окончание не #13#10 - все строки лепятся в одну и трабла обнимает весь проект. VCL"овский берет любые. И уж совсем не в тему прошу добавить функцию StrRepalceAll для замены всех найденных шаблонов на указанный, а не только первого.


 
SPeller ©   (2004-03-07 02:24) [16]


> StrRepalceAll для замены всех найденных шаблонов на указанный

Уже предлагалось. Но вроде решили что while StrReplace do; лучше.


 
Dimaxx ©   (2004-03-07 22:06) [17]

Может не лучше, а медленней? И чем лучше? (я серьезно).


 
SPeller ©   (2004-03-08 03:12) [18]

Напиши у себя эту функцию и юзай :) По-моему Владимир мне так говорил )


 
Dimaxx ©   (2004-03-08 22:14) [19]

По-видимому, придется...


 
Maxim Pushkar   (2004-03-09 23:57) [20]

while StrReplace do; не всегда работает. В случае замены X на XY программа зациклится.
P.S. Себе я подобную функцию написал, но не мешало бы включить такую функцию в стандарт. Слишком уж много желающих.


 
Dimaxx ©   (2004-03-10 23:22) [21]

Кстати, пост оффтопный: не работают соьытия OnChar и OnKeyDown для формы! Приходится лезть в OnMessage. Надоть пофиксить - это давно тянется. Версия 1.91 уже.



Страницы: 1 вся ветка

Текущий архив: 2004.08.15;
Скачать: CL | DM;

Наверх




Память: 0.51 MB
Время: 0.068 c
3-1090228726
AlexanderSK
2004-07-19 13:18
2004.08.15
IBQuery & DataSetProvider


14-1089786735
Vlad Oshin
2004-07-14 10:32
2004.08.15
Вот кто реально снимался в Властелине колец :)


14-1090481423
CHES
2004-07-22 11:30
2004.08.15
пример использования интерфейсов


14-1091067226
menart
2004-07-29 06:13
2004.08.15
Завтра день сисадмина!


1-1091454776
mr.Tim
2004-08-02 17:52
2004.08.15
Как ожидать завершения всех TThread ?