Delphi - Delphi
|
Старожил Сообщения: 225 |
в программе я провожу статические расчеты и нужно выполнять множество математических действий, которые компьютер порой не очень то переваривает, так вот я хотел узнать как в Delphi5 можно установить приоритет программы таким образом, чтобы она использовала все ресурсы компьютера... чтобы максимально минимизировать время работы программы, то есть расчетов
|
|
------- Отправлено: 17:31, 10-11-2002 |
Kamiur
Сообщения: n/a |
SetPriorityClass(GetCurrentProcess, REALTIME_PRIORITY_CLASS); - это устанавливается максимально возможный приоритет процесса в целом,
SetThreadPriority(GetCurrentThread, THREAD_PRIORITY_TIME_CRITICAL); - это приоритет потока. Как ни странно, главное при установке приоритетов - не переборщить, ведь виндоусу себя тоже считать надо, и если своему потоку (тем более интенсивно работающему) выставить максимальные приоритеты, то виндоус практически зависнет. |
Отправлено: 01:04, 11-11-2002 | #2 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Старожил Сообщения: 225
|
Профиль | Отправить PM | Цитировать Kamiur
Цитата:
|
|
------- Отправлено: 06:22, 11-11-2002 | #3 |
Kamiur
Сообщения: n/a |
Хм... Да так прямо и пользоваться.
Ну например... var PriorityClass, Priority: Integer; ... PriorityClass := GetPriorityClass(GetCurrentProcess); Priority := GetThreadPriority(GetCurrentThread); // Сохранение приоритетов по умолчанию, чтобы можно было потом восстановить SetPriorityClass(GetCurrentProcess, REALTIME_PRIORITY_CLASS); //Установка приоритета текущего процесса SetThreadPriority(GetCurrentThread, THREAD_PRIORITY_TIME_CRITICAL); //Установка приоритета текущего потока ... Ваши вычисления ... SetThreadPriority(GetCurrentThread, Priority); SetPriorityClass(GetCurrentProcess, PriorityClass); // Восстановление приоритетов по умолчанию Ну а насчет справки - это вы зря: раз уж вы взялись что-то программировать, то английский, imho, это первое, что надо освоить... Добавлено: Да, и еще... Если операционка NT (2000, XP), то у пользователя, запускающего такую программу, конечно, должны быть соответствующие права (называется, по-моему, "Профилирование одного процесса" ![]() |
Отправлено: 11:11, 11-11-2002 | #4 |
Модер Сообщения: 1716
|
Профиль | Сайт | Отправить PM | Цитировать Roman Go
Kamiur Привилегия увеличения квот должна быть. Если ее нет - приоритет будет только высокий, но не реального времени. |
|
------- Отправлено: 17:13, 11-11-2002 | #5 |
Старожил Сообщения: 225
|
Профиль | Отправить PM | Цитировать vasketsov Я лично из твоих слов как обычно ничего не понял, может разъяснишь по подробнее, мне что не следует и браться за эту штуку или нужно таки что-нибудь другое использовать...?
|
------- Отправлено: 03:57, 12-11-2002 | #6 |
Kamiur
Сообщения: n/a |
Ну уж если тут действительно все так не просто, то пишите под ДОС (и на фортране), там проблем с многозадачностью нет в принципе.
|
Отправлено: 11:05, 12-11-2002 | #7 |
Модер Сообщения: 1716
|
Профиль | Сайт | Отправить PM | Цитировать Roman Go
Да забей. Бери класс приоритета как высокий, реалтайм не нужен, думается. |
------- Отправлено: 15:28, 12-11-2002 | #8 |
Старожил Сообщения: 225
|
Профиль | Отправить PM | Цитировать Я значит что делал: в предложенный код Kamiurа вставлял вот такой цикл
и засекал время работы, у меня получалось 30 секунд, label1.caption:='в процессе'; t:=time;//самое начало модуля {- - - - - - - - - - -} label1.caption:='конец'; label2.caption:=timetostr(t-time);//самый конец модуля заодно вопрос, почему я в label1 не вижу в течении этих же самых 30 секунд в процессе и как мне сделать чтобы я его видел... странно как-то это все работает, не по порядку.. |
------- Отправлено: 12:08, 24-12-2002 | #9 |
Модер Сообщения: 1716
|
Профиль | Сайт | Отправить PM | Цитировать Roman Go
Цитата:
|
|
------- Отправлено: 15:48, 25-12-2002 | #10 |
![]() |
Участник сейчас на форуме |
![]() |
Участник вне форума |
![]() |
Автор темы |
![]() |
Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
Delphi - Delphi | UpperCase на Delphi 7 | Cognolio | Программирование и базы данных | 3 | 26-01-2006 15:42 | |
Delphi - C++ vs Delphi | BigMac | Программирование и базы данных | 76 | 13-01-2004 09:54 | |
Delphi - Delphi | Surround | Программирование и базы данных | 11 | 10-01-2004 22:13 | |
Delphi - Delphi | Zx | Программирование и базы данных | 3 | 27-08-2003 10:19 | |
Delphi - Delphi | Roman Go | Программирование и базы данных | 11 | 11-12-2002 14:43 |
|