![]() |
|
|
#1
|
|||
|
|||
|
Как можно уменьшить загрузку ЦП exe, что меньше кушала оперативной памяти
|
|
#2
|
||||
|
||||
|
Пиши на Windows API. Но это долго и муторно.
|
|
#3
|
||||
|
||||
|
Может тебе нужно лишь поменять приоритет процесса, думаю этого тебе хватит?
|
|
#4
|
|||
|
|||
|
а как это в коде можно сделать?, а то просто аж 6 метров берет..(((
|
|
#5
|
|||
|
|||
|
ау, ну что никто не знает?
|
|
#6
|
|||
|
|||
|
Загрузка ЦП и размер памяти, это разные вещи.
Как изменить приоритет, подробно описано здесь Как оптимизировать приложения на Delphi, описано здесь Почитай еще вот это Последний раз редактировалось Rat, 23.09.2008 в 14:49. Причина: Забыл дописать |
|
#7
|
||||
|
||||
|
Юзай в циклах этот код
Код:
application.processmessages |
|
#8
|
|||
|
|||
|
Почитай несколько книг по оптимизации программ.
1. Один из основных медодов минимизации исходного кода это, как сказал moo2k, использовать API и в памяти меньше места и файл меньше весит. 2. Если тебе критично занимаемое место на диске можно воспользоваться прогой ASPack, но я не думаю что сейчас это актуально. 3. По загрузки с ЦП я присоединюсь к M.A.D.M.A.N., но эта проца увеличивает обработку по времени. На небольших циклах это незаметно. При обработки больших и сверх больших циклов эта проца тоже может отнимать 90% - 99% ресурсов ЦП если обработка проскакивает быстро, хотя не дает программе подвиснуть и повесить ЦП. Ну например Код:
while true do begin Application.ProccessMessage; Edit1.Text:='1'; end; Где то здесь я видел аналог этой проце. Хотя проца почти незаменима в циклах. Хотя мнений может быть много и все они будут правильны по своему. тут надо подходить к каждой ситуации отдельно. |
|
#9
|
|||
|
|||
|
И еще одно если твоя прога равботает с БД и данными, то данные с БД грузятся в твою прогу и она соответственно растет. т.ч. если она будет весить 20 или 22 метра после некоторых манипцляций это не существенно.
|
|
#10
|
|||
|
|||
|
Любые данные которые читает прога из файли или из БД или из реестра так или иначе грузятся в память
|
|
#11
|
|||
|
|||
|
спасибо разобрался
![]() |
|
#12
|
|||
|
|||
|
Цитата:
Если ваша программа редко использует какие либо функции или процедуры, то вынесите их в DLL файл, чтоб память не засоряли (хотя сейчас это и не так важно, памяти оперативной “куча” 1 - 2 гигабайта это уже не редкость, но всё же это подчеркнёт Ваш профессионализм). ты случайно не знаешь как это можно сделать, если делал можешь подробно описать, зарание благодарен |
|
#13
|
||||
|
||||
|
Цитата:
Многие наоборот стремятся распространять свои программы одним файлом, а ты... Зачем тебе этот гемор с библиотеками? Тем более если ты новичек. Может уж тогда все программы за тебя писать, не жирно будет? В инете куча готового материала, бери - нехочу (по написанию библиотек в частности) ! ![]() |
|
#14
|
||||
|
||||
|
жекаизжека, вот смотри:
Мой последний заказ: обработка (проверка и перекодировка формата) файла. Написано было 2 (точнее 3 варианта, но третий был минимум под четырехпроцессорную тачку ну или 2 Duo) один вариант не жрал памяти но работал порядка 50 минут, второй ел 250 метров оперативы - но работал 3,5 минуты. Как думаешь какой из них выбрал заказчик? Третий, для справки чисто, на 8 процессорном серваке жрал 75% ресурсов от 4 процов (писался чисто под 4 проца, можно было бы доработать на неопределенное кол-во процов, только чтоб больше одного, но времени не было) и работал 54 секунды, по пямяти было 370 метров, думаю понятно почему больше. Так что погоня за освобождением ресурсов дело сильно зависящее от задачи ![]() |
|
#15
|
||||
|
||||
|
Aristarh Dark +1
|