Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 12.03.2012, 14:25   #1
Зод
Форумчанин
 
Регистрация: 25.08.2011
Сообщений: 140
По умолчанию как установить приоритет на выполнение программы?

Есть код его суть в том что он каждые 300 миллисекунд смотрит системное время + набор условий типа если 03 часа и программа 1 не запущена то запустить программу 1 и y:=y+!, если программа 1 не запущена и y>0 то запустить программу 2 и т.д.
Смотрю диспетчер программ и вижу следующую картину: этот код "ест" 4.5 мегабайта памяти и 80-97 процессорного времени. Естественно это создает нагрузку на систему и заметную. Памяти то как раз и не жалко. Вопрос в том как при запуске этого кода ограничить приоритетна выполнение? Код то не сложный, одна функция и запуски по условиям, не думаю что этой программе требуются большие ресурсы.
Зод вне форума Ответить с цитированием
Старый 12.03.2012, 14:35   #2
Человек_Борща
Старожил
 
Аватар для Человек_Борща
 
Регистрация: 30.12.2009
Сообщений: 11,426
По умолчанию

Код ест память? Что за бред.
Выполнение кода может нагружать процессор. А память кушается выделением ресурсов для себя любимого.

Есть SetProcessPriority,SetThreadPriorit y функции. Их используйте.

P.S. у вас что-то не так с кодом. У меня таймер каждый 200 мс, делает проверку времени и пускает n потоков в работу. Памяти 9 метров, проца 2-4% от силы.
Человек_Борща вне форума Ответить с цитированием
Старый 12.03.2012, 18:23   #3
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

зависит от того как вы код написали.

если применяете активное ожидание, не освобождаете ресурсы, то вот ваш итог.
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 13.03.2012, 10:06   #4
Зод
Форумчанин
 
Регистрация: 25.08.2011
Сообщений: 140
По умолчанию

Ну жмем Alt+Ctrl+Delete и на каждом процессе свое выделение памяти. Разве это не от кода зависит? Ну в плане форма с циклами и синапса будет больше в памяти нуждаться чем форма где одна кнопка и ни каких действий. Или я не прав?
у меня в момент простоя, когда времени еще нет нужного ЦП 00, а когда запускается этой программой вторая программа то ЦП возрастает и не падает пока вторая не закроется. Это нормально?
С освобождением ресурсов все в порядке, уже сталкивался с этим и исправлял код) Да и насколько помню когда не освобождаются ресурсы память возрастает постепенно.

Последний раз редактировалось Зод; 13.03.2012 в 10:08.
Зод вне форума Ответить с цитированием
Старый 13.03.2012, 14:33   #5
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

Цитата:
Это нормально?
про активное ожидание я сказал.

ваше приложение запускает второе и ждет его смерти?
покажите код этого, там у вас не очень хорошо судя по всему.
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Какие программы нужно установить чтобы писать программы для телефонов nokia Кристинка89 Общие вопросы по Java, Java SE, Kotlin 2 17.02.2011 15:15
delphi 7, как прервать выполнение программы Altera Софт 3 27.07.2008 15:14
Запуск программы на выполнение из другой программы. ViNcHeStEr Паскаль, Turbo Pascal, PascalABC.NET 6 18.06.2008 14:33