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

Вниз

Как сделать, чтобы программа занимала меньше места в оперативке?   Найти похожие ветки 

 
maxz ©   (2004-04-17 17:12) [0]

Есть ли способы уменьшить количество оперативки, занимаемой прогой? Писал тут одну программу. Из дополнительных компонентов использовал только CoolTrayIcon. Оказалось, что программа занимает целых 3,5 мега. Как уменьшить этот размер?


 
TUser ©   (2004-04-17 17:15) [1]

Смотря, что делает прога. Просмотреть все памяти-емкие алгоритмы. Где можно - съэкономить, обычно за счет скорости. Но если вспомнить, что избыток места свопится, то скорость может и вырасти. Убрать Create для объектов, которые могут не использоваться в конкретном сеансе работы, создавать их - по мере необъходимости. Запихать в dll не каждый раз используемые участки кода, подгружать динамически.


 
ssk ©   (2004-04-17 17:25) [2]

а может сам CoolTrayIcon виноват?


 
TUser ©   (2004-04-17 17:26) [3]

Да нет, CTI много места не есть.


 
Anatoly Podgoretsky ©   (2004-04-17 17:48) [4]

А сколько она места там занимает и как ты это проверил, второй вопрос сложнее :-)


 
SammIk ©   (2004-04-17 19:07) [5]

Вообще, если реально охота оуменьшить размер занимаемои
памяти, то прежде всего надо отказаться от этих вцл и тому подобного, писать на асме. Делфовыи компилятор
много всего пихает лишнего в фаил....


 
TUser ©   (2004-04-17 19:20) [6]


> писать на асме

*)))


 
maxz ©   (2004-04-17 20:01) [7]

To [5]

> писать на асме

И вообще, зачем Delphi придумали? Сидели бы все сейчас в каком-нибудь Turbo Assembler`е. :)
Я и сам понимаю, что написанная на асме прога и места меньше занимает, и работает быстрее. А как оптимизировать программу под Delphi? Разве больше других способов нету?


 
TUser ©   (2004-04-17 20:22) [8]

Есть - [1]. Кстати, надо поактивнее пользовать оператором with - места меньше занимать будет и работать быстрее. + api.


 
SammIk ©   (2004-04-17 21:33) [9]

Критические по времени или размеру программы, надо писать
именно на АСМе, а на делфях наверное удобно писать
базы(не пробовал).
А насчет виз я не согласен.
Допустем есть у на структура в сегменте данных
s=record
bla:word;
ne_bla:word;
end;
В делфи будем делать так:
s.bla:=1;
s.ne_bla:=0;
или
with s do
 bla:=1;
 ne_bla:=0;
end;
Но в машинных кодах будет записано одинаково
допустим:
mov eax,offset s;Кладем в еах указатель на структуру
mov word ptr [eax],1;Двигаем в bla 1
add eax,2;Увеличиваем указатель на 2(sizeof(word))
mov word ptr [eax],0;Двигаем в ne_bla 0
Делаем выводы))


 
SammIk ©   (2004-04-17 21:34) [10]

А насчет апи скорость падает просто ох...нительно


 
TUser ©   (2004-04-17 21:40) [11]

Насколько я знаю, в машинных кодах все будет записано по-разному. Где-то была статья на эту тему. Если писать через точку - то каждый раз компилятор вставит код вычисления адреса объекта или записи. А если написать через with - то адрес вычисляется один раз. И код будет короче и быстрее получится.


 
SammIk ©   (2004-04-17 21:48) [12]

Ничего подобного, все статические адреса вычисляются на
стадии компиляции ПЕ. Что касается обьектов, не знаю.
Но насчет структур- точно


 
TUser ©   (2004-04-17 21:52) [13]

Про сруктуры ничего не знаю, но адреса объектов вычилсяться на стадии компиляции не могут, ибо не факт, что объект вообще будет создан при выполнении проги. Хотя он может вычисляться при создании объекта, тогда применение with ничего не даст. Упорствовать и настаивать на [11] не буду.


 
SammIk ©   (2004-04-17 21:56) [14]

Усё - консенсус))
виз - никакои оптимизации кода не дает))


 
default ©   (2004-04-17 22:09) [15]

про асм загнули, ИМХО...
всё те же вызовы WIN API если по винду...
конечно, если писать всё на нём будет и быстрее и короче, но придётся кучу раз велосипеды изобретать...
хотя есть сторонние библиотеки...
а Delphi генерит весьма(в некоторых случаях первоклассный) неплохой код


 
Черный прапорщик   (2004-04-17 22:24) [16]

Помоему with ускоряет, но на размер не влияет. И думается мне, что, сейчас, надо задумываться о ресурсах (вот их точно не увеличить, например под 98), а не о ОП


 
Игорь Шевченко ©   (2004-04-17 22:37) [17]


> Оказалось, что программа занимает целых 3,5 мега.


Если она занимает их в Task Manager"e, то читай http://delphimaster.net/view/4-1081364941/ и не мучайся.



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

Форум: "Основная";
Текущий архив: 2004.05.02;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.52 MB
Время: 0.032 c
1-1082046790
Knight
2004-04-15 20:33
2004.05.02
Динамический массив в компоненте...


14-1081694979
Piter
2004-04-11 18:49
2004.05.02
Quake2 написана под .NET? :)


1-1082023145
Cosinus
2004-04-15 13:59
2004.05.02
Принцип работы c TBitMap ...


1-1081788628
c1
2004-04-12 20:50
2004.05.02
Как сделать чтобы hint над button не исчезал


4-1078988008
AlexS76
2004-03-11 09:53
2004.05.02
Как выбрать удаленный компьютер в диалоге





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