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

Вниз

Работа с памятью: KOL vs МСД   Найти похожие ветки 

 
Dimaxx ©   (2003-12-15 01:52) [0]

Почему операции с памятью на KOL выполняются в несколько раз медленнее? Есть модуль шифрования AES. Так вот на тестовом файле в 200 кб VCL затратил 32 мс, а KOL ажно 110 мс!!! Мал размером, но как черепаха.

Я писал себе прогу для поиска в файлах нужных данных, так VCK мегабайт пробегает как лань, в то время как KOL ползет в час по чайной ложке. VCL на 15 МБ файл затратил около 10 секунд, а KOL - больше минуты! В чем замес?


 
SPeller ©   (2003-12-15 03:39) [1]

Код в студию!


 
Yury Sidorov   (2003-12-15 13:46) [2]

Если при компиляции KOL программы используется замена системных библиотек, то работа с памятью будет медленней чем без замены.


 
SPeller ©   (2003-12-15 15:20) [3]


> Если при компиляции KOL программы используется замена системных
> библиотек, то работа с памятью будет медленней чем без замены.

Это почему?


 
ecm   (2003-12-15 15:49) [4]

А не используется ли случайно HeapMM? - он значительно меньше по объему но медленнее...
Надо посмотреть не вызывается ли где SetMemoryManager


 
ecm   (2003-12-15 15:59) [5]

З.Ы. Особенно заметно под Win98


 
Yury Sidorov   (2003-12-15 18:16) [6]

2 Speller: Потому, что в измененных системных библиотеках менеджер памяти заменяется на более простой и медленный (через Windows Heap).

Вот выдержка из readme по замене:

***  Overblotted Delphi memory manager is replaced by very simple one,
which just calls LocalAlloc, LocalFree, LocalReAlloc. (It is yet possible
to call UseDelphiMemoryManager to restore it, or to call SetMemoryManager
to setup your own memory manager).


 
SPeller ©   (2003-12-15 19:19) [7]

Понятно. А если использовать стандартный, то на сколько увеличится код?


 
Vladimir Kladov   (2003-12-15 21:21) [8]

неужели так сложно попробовать? чем задавать вопрос, чтобы кто-нибудь попробовал, и через сутки или двое ответил. Если вообще найдется такой неленивый, что за другого ленивого пробовать станет :)


 
SPeller ©   (2003-12-15 21:49) [9]

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


 
SPeller ©   (2003-12-15 21:50) [10]

вешать точно в байтах :)


 
Vladimir Kladov   (2003-12-16 15:09) [11]

It is yet possible to call UseDelphiMemoryManager
И сколько же часов надо, чтобы это прочитать? И применить, а?


 
Dimaxx ©   (2003-12-17 01:26) [12]

А вот ровно столько, сколько прошло с момента написания темы и до времени написания сего ответа. Спасибо! У меня тока dcu, а в них не написано.


 
SPeller ©   (2003-12-17 05:22) [13]


> It is yet possible to call UseDelphiMemoryManager
> И сколько же часов надо, чтобы это прочитать? И применить,
> а?

Сначала надо найти где именно это написано. System.pas он всё-таки не 2 килобайта весит. Вот сразу бы и сказали где читать. А вот теперь второй вопрос: где этот вызов прописывать?


 
Yury Sidorov   (2003-12-17 12:57) [14]

Это написано в readme.txt, выдержку из которого я приводил выше. Даже в приведенной выдержке это есть. :)


 
SPeller ©   (2003-12-17 14:02) [15]

В разделе инициализации чтоли system.pas ?


 
Yury Sidorov   (2003-12-17 14:40) [16]

Вызывать UseDelphiMemoryManager нужно чем раньше, тем лучше. Т.е. лучше всего это делать в инициализации модуля, который первым прописан в uses в DPR файле. Можно сделать модуль-пустышку, которые только и будет делать, что устанавливать менеджер памяти.
P.S. Можно конечно и system.pas править, но мороки с перекомпиляцией много.


 
SPeller ©   (2003-12-17 18:22) [17]

Теперь понятно.


> Можно конечно и system.pas править, но мороки с перекомпиляцией
> много.

Я у себя настроил makefile и теперь перекомпиляция у меня в "один клик":

make and move dcus to kol-sys.cmd:
del Sys_KOL_dcu\*.*
make.exe > output.txt
move /Y Sys_KOL_dcu\*.* C:\Programs\KOL\sys


Так что, не проблема :)



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

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

Наверх





Память: 0.48 MB
Время: 0.037 c
14-1083601354
Thor
2004-05-03 20:22
2004.05.23
Слава Билли, слава его программистам!


6-1081166378
Makhanev A.S.
2004-04-05 15:59
2004.05.23
Sockets: ESysError, code=5; AV...


7-1082309067
20002
2004-04-18 21:24
2004.05.23
BIOS


1-1083772275
RiKo
2004-05-05 19:51
2004.05.23
сброс параметров


3-1083154655
Slon_SCG
2004-04-28 16:17
2004.05.23
Кто-нибудь пробовал восстанавливать удаленные записи?





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский