Форум: "Основная";
Текущий архив: 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