Главная страница
    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.038 c
1-1082015049
evg_nib
2004-04-15 11:44
2004.05.02
Иерархический DBgrid как в 1С?


9-1068437144
DDS
2003-11-10 07:05
2004.05.02
OPENGL: Как повернуть ось системы координат на угол.


3-1080908541
WondeRu
2004-04-02 16:22
2004.05.02
Подмена Field на TMemoField


8-1074041218
Валентин
2004-01-14 03:46
2004.05.02
TAG в mp3


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