Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "KOL";
Текущий архив: 2004.08.15;
Скачать: [xml.tar.bz2];

Вниз

Занимаемая память программы (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 вся ветка

Форум: "KOL";
Текущий архив: 2004.08.15;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.5 MB
Время: 0.033 c
14-1089499317
Денис
2004-07-11 02:41
2004.08.15
Подробный и понятный комментарий!


9-1082927118
Twinge
2004-04-26 01:05
2004.08.15
Вычисление корня n-ой степени


1-1091507783
Eagle8
2004-08-03 08:36
2004.08.15
запись в файл


6-1087293736
webpauk
2004-06-15 14:02
2004.08.15
Игры


3-1090330538
MORA
2004-07-20 17:35
2004.08.15
NULL





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский