Список форумов   Список форумов  

Занрузка процессора

Всё о программировании на Labview

Модераторы: Техподдержка NI, Robert, Модератор

Занрузка процессора

Сообщение John Chaban » Чт фев 14, 2008 8:36 pm

Всем привет
Интересует такая вешь:
Я запускаю архировать файл при попомщи прибора SystemExec.vi
Архиватор запускается в фоновом режиме, но многа жрет ресуросв процессора. 100% загрузки
Есть какой нибудь способ сбавить нагрузку?
И как это можно сделать просто архивация будет вспомагетльной программой.
Зарание спасибо за ответ
John Chaban
Пользователь
 
Сообщений: 11
Зарегистрирован: Пн июн 11, 2007 11:48 am

Re: Занрузка процессора

Сообщение Indey » Пт фев 15, 2008 9:45 am

John Chaban писал(а):Всем привет
Интересует такая вешь:
Я запускаю архировать файл при попомщи прибора SystemExec.vi
Архиватор запускается в фоновом режиме, но многа жрет ресуросв процессора. 100% загрузки
Есть какой нибудь способ сбавить нагрузку?
И как это можно сделать просто архивация будет вспомагетльной программой.
Зарание спасибо за ответ

странно. только что попробовал - разницы никакой, что вызывать из программы, что автономно: все равно в фоновом режиме в среднем загрузка процессора 50%. Архиватор winrar 3.20. Процессор pentium 4 (2,8 ГГц).
Отсюда две гипотезы: или процессор хреновый 8) или параллельно еще что-то в программе выполняется. Какова загрузка процессора без вызова архиватора?
Indey
Специалист LabVIEW
 
Сообщений: 148
Зарегистрирован: Пт фев 02, 2007 9:34 am
Откуда: Электросталь

Re: Занрузка процессора

Сообщение John Chaban » Сб фев 16, 2008 10:48 am

Зарание спасибо за ответ[/quote]
странно. только что попробовал - разницы никакой, что вызывать из программы, что автономно: все равно в фоновом режиме в среднем загрузка процессора 50%. Архиватор winrar 3.20. Процессор pentium 4 (2,8 ГГц).
Отсюда две гипотезы: или процессор хреновый 8) или параллельно еще что-то в программе выполняется. Какова загрузка процессора без вызова архиватора?[/quote]

------------------------------------------
Нет ситуация такая есть программа на LabVIEW котороая графики выводит чтото считает и т..д. сохраняет данные в файл (размер наприме 500 Мб)
В какой то момент запускается архивация но запусакется не WinRar а его консольная версия. В связи с этим вопрос: Как можно сделать тако чтобы приоритет архивации был низкий (при вызове из командной строки). Чтобы напримре при архивации загрузка процессора была например 10%.
Есть какаято библиотека на С++ она позволяет управлять как то архиватором. но чтото не нашел в инете мож кто что подскажет
John Chaban
Пользователь
 
Сообщений: 11
Зарегистрирован: Пн июн 11, 2007 11:48 am

Re: Занрузка процессора

Сообщение Indey » Сб фев 16, 2008 2:50 pm

John Chaban писал(а):Нет ситуация такая есть программа на LabVIEW котороая графики выводит чтото считает и т..д. сохраняет данные в файл (размер наприме 500 Мб)
В какой то момент запускается архивация но запусакется не WinRar а его консольная версия. В связи с этим вопрос: Как можно сделать тако чтобы приоритет архивации был низкий (при вызове из командной строки). Чтобы напримре при архивации загрузка процессора была например 10%.
Есть какаято библиотека на С++ она позволяет управлять как то архиватором. но чтото не нашел в инете мож кто что подскажет


Если вы посмотрите в диспетчере процессов, то winrar при переходе в фоновый режим автоматически средствами ОС переводится в самый низкий приоритет, так что дело не в приоритете. Боюсь такая загрузка процессора все же связана напрямую с его производительностью - я попробовал дома, где процессор на порядок хуже (атлон 1,6 ГГц) - загрузка процессора что в фоновом, что в нефоновом режиме 100%.
Чудес на свете не бывает и поэтому сомнительно, что средствами какой-либо библиотеки можно в разы повышать производительность железа путем снижения приоритета. Поэтому выход получается только один: ставить в программе процесс архивации уже после выполнения всех основных задач, чтобы он не тормозил сбор данных и отрисовку графиков. Да и размер архивируемого файла впечатляет, все же 500 метров довольно много, вы же наверное не с видео-потоком работаете, можно разбить на более мелкие части.
Indey
Специалист LabVIEW
 
Сообщений: 148
Зарегистрирован: Пт фев 02, 2007 9:34 am
Откуда: Электросталь

Сообщение John Chaban » Вс фев 17, 2008 11:24 am

А как с помошью LabViEW можно приоритет понизить?
John Chaban
Пользователь
 
Сообщений: 11
Зарегистрирован: Пн июн 11, 2007 11:48 am

Сообщение TeopeTuK » Ср фев 27, 2008 5:38 pm

Можно сделать по-чайниковски. Использовать функцию из Kernel32.dll

HANDLE OpenProcess(
DWORD dwDesiredAccess,
BOOL bInheritHandle,
DWORD dwProcessId
);

для получения хендла процесса, а потом

BOOL SetPriorityClass(
HANDLE hProcess,
DWORD dwPriorityClass
);

IDLE_PRIORITY_CLASS=
0x00000040

Только надо знать ProcessID, чтобы его в первую функцию передать.
TeopeTuK
Пользователь
 
Сообщений: 14
Зарегистрирован: Пн янв 21, 2008 3:12 pm

Сообщение Indey » Ср фев 27, 2008 6:12 pm

TeopeTuK писал(а):IDLE_PRIORITY_CLASS=
0x00000040


Он и так уже IDLE. Идлее не бывает :D
Indey
Специалист LabVIEW
 
Сообщений: 148
Зарегистрирован: Пт фев 02, 2007 9:34 am
Откуда: Электросталь

Сообщение TeopeTuK » Чт фев 28, 2008 4:09 pm

Проверил экспериментально. Когда winrar запущен с низким приоритетом, он конечно жрет свои 100 процентов. Но при этом, если запустить процесс с большим приоритетом (использовал прогу, которая считает бесконечный цикл), winrar честно отдает весь процессор ей. Консольную версию rar не проверял, но там должно быть все также.

Кстати, загрузка процессора в 50 процентов скорее всего означает, что процессор ДВУХЯДЕРНЫЙ. winrar захамил себе одно ядро и пока не найдется другого процесса, который претендует на это же ядро, он его не отдает )
TeopeTuK
Пользователь
 
Сообщений: 14
Зарегистрирован: Пн янв 21, 2008 3:12 pm


Вернуться в LabVIEW

Кто сейчас на форуме

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 0

cron