Вверх ↑
Этот топик читают: Гость
Ответов: 893
Рейтинг: 18
#1: 2009-04-06 18:08:04 ЛС | профиль | цитата
Простеькая схемка поможет избавится от нагрузки на ваш компьютор собственной программой .
Схема реализована на обработку любого события в программе ,(дабы исключить лавинообразное исполнение процесса).
code_12624.txt
------------ Дoбавленo:

Для того чтоб увидеть как работает схема достаточно нажать кнопку в момент когда процессор вашего компьютера загружен (в данном случае на 10% или более) программа будет ждать до тех пор пока процессор не освободится и выдаст событие (включая и данные переданные событием) .
А необходима эта схема в тех ситуациях когда стоит регулировать нагрузку программы на процессор.
Естли необходимо чтоб сработало несколько событий .... , стоит установить динамическое создание схемы (мультика)

Интерестно критика будет ?
карма: 0
Время верстки: %cr_time% Текущее время: %time%
0
файлы: 1code_12624.txt [2KB] [288]
Ответов: 3851
Рейтинг: 159
#2: 2009-04-06 19:22:29 ЛС | профиль | цитата

как его тестить?

вот в такой схеме code_12627.txt у меня загружается только второе (из двух) ядро, у всех так?
карма: 0
начавший
0
файлы: 1code_12627.txt [2KB] [177]
Ответов: 893
Рейтинг: 18
#3: 2009-04-06 23:24:27 ЛС | профиль | цитата


Андрей. писал(а):
у меня загружается только второе (из двух) ядро, у всех так?

Нaсколько я знаю под два ядра необходимо разрабатывать программы отдельно в данной схеме идёт мониторинг только одного процессора а вообще всё зависит от компонента CPUUsage , в частности он опрашивает только 1 процессор . Но и не это важно а важно то что система включает второе ядро опционально , либо сама программа должна иметь понятие о том что существует второе ядро
карма: 0
Время верстки: %cr_time% Текущее время: %time%
0
Ответов: 1304
Рейтинг: 405
#4: 2009-04-06 23:42:33 ЛС | профиль | цитата
Byuik, Уже глючат . Сталкнулся с такой неожиданной проблемкой, в варианте включения что привёл Андрей., конечно не о какой регулировке речи быть неможет. Что я сделал, ограничил число циклов до ста и подал с точки окончание цикла на вход мультика, тем надеялся получить регулируемую нагрузку процессора, в итоге вылетает ошибка 216, и после этого обращение к CPUUsage, в любом варианте 216. Скомпилировал на другом компе схемку с CPUUsage, работает без проблем, переношу эксешник на поплохевший комп 216. Перегружаю комп, то-же самое.

------------ Дoбавленo:
Заметил кстати, при отправке сообщения долго обрабатывал запрос сервер, в итоге пост размножился аж на четыре дубля.
карма: 3

0
Ответов: 893
Рейтинг: 18
#5: 2009-04-10 03:27:51 ЛС | профиль | цитата
MAV писал(а):
Что я сделал, ограничил число циклов до ста и подал с точки окончание цикла на вход мультика, тем надеялся получить регулируемую нагрузку процессора


Выложи схемку плиз , поглядим


MAV писал(а):
Сталкнулся с такой неожиданной проблемкой, в варианте включения что привёл Андрей., конечно не о какой регулировке речи быть неможет.



#sha
Add(MainForm,2953706,21,105)
{
}
Add(MultiElementEx,13295041,147,175)
{
Mode=2
link(onEventData,10200812:doMessage,[])
}
BEGIN_SDK
Add(EditMultiEx,8287660,21,21)
{
WorkCount=#35:doValue=Событие (можт нести данные)|
EventCount=#59:onEventData=Событие постле мониторинга (Возможно с данными)|
VarCount=#46:Value=Данные события для расширенного доступа |
DataCount=#109:Op2=Уровень закрузки процессора (Определение важности события по отношению к загрузке процессора в процентах)|
Width=510
Height=263
link(doValue,8815245:doValue,[(77,27)(77,125)])
link(Value,6531446:Var2,[(27,226)(139,226)])
}
Add(CPUUsage,13748807,350,119)
{
link(onUsage,15141629:doValue,[])
}
Add(Memory,15141629,399,119)
{
Default=Integer(0)
}
Add(Timer,5574660,245,126)
{
Interval=100
Enable=1
link(onTimer,768313:doEvent2,[])
}
Add(If_else,15730981,399,182)
{
Type=3
Op2=Integer(10)
link(onTrue,4290418:doEvent1,[(450,188)(450,220)(96,220)(96,174)])
link(onFalse,5574660:doTimer,[(443,195)(443,163)(233,163)(233,132)])
link(Op1,15141629:Value,[])
link(Op2,8287660:Op2,[(412,102)(27,102)])
}
Add(Hub,768313,294,119)
{
InCount=2
link(onEvent1,13748807:doCollectCPUData,[])
link(onEvent2,15730981:doCompare,[(338,132)(338,188)])
}
Add(Memory,8815245,133,119)
{
link(onData,15376460:doString,[])
}
Add(FormatStr,15376460,182,119)
{
DataCount=0
Mask=""
link(onFString,768313:doEvent1,[])
}
Add(DoData,7453608,161,175)
{
link(onEventData,8287660:onEventData,[(393,181)(393,27)])
link(Data,6531446:Var3,[(167,163)])
}
Add(Hub,4290418,105,168)
{
link(onEvent1,5574660:doStop,[(227,174)(227,139)])
link(onEvent2,7453608:doData,[])
}
Add(GetDataEx,6531446,126,154)
{
link(Data,8815245:Value,[])
}
END_SDK
Add(Button,580600,28,175)
{
Left=40
Top=25
Width=160
Caption="Любое событие"
Data=String(Машина достаточно свободна)
link(onClick,11402965:doFor,[])
}
Add(For,11402965,98,175)
{
End=1316134912
link(onEvent,13295041:doValue,[])
}
Add(Message,10200812,203,175)
{
}

Правильная схема выглядит вот так
карма: 0
Время верстки: %cr_time% Текущее время: %time%
0
Ответов: 1304
Рейтинг: 405
#6: 2009-04-11 22:08:32 ЛС | профиль | цитата
Byuik, удалось локализовать схему до двух элементов. После после компиляции и запуска схемы функция, doCollectCPUData элемента "CPUUsage" становится недоступна на уровне ОС(в реестр прописуется доп. инфа). А вобще принцип регулируемой нагрузки на проц мне понравился, есть много вариантов применения твоей схемы.

Add(MainForm,2953706,35,112)
{
Width=237
Height=133
}
Add(Button,7601385,84,112)
{
Left=10
Top=15
link(onClick,4402952:doWork2,[])
}
Add(CPUUsage,8676247,161,112)
{
link(onUsage,8415649:doFor,[])
}
Add(For,8415649,210,112)
{
End=1000
link(onStop,4402952:doWork3,[(255,125)(255,156)(137,156)])
}
Add(HubEx,4402952,133,105)
{
link(onEvent,8676247:doCollectCPUData,[])
}


карма: 3

0
Ответов: 893
Рейтинг: 18
#7: 2009-04-13 02:01:48 ЛС | профиль | цитата
MAV писал(а):
удалось локализовать схему до двух элементов

Стоит уточнить что моя схема отсрачивает (Приостанавливает до момента когда процессор окажется свободен ) событие до неопределённого момента пока процессор не будет свободен , а вот твоя схема попросту вычисляет нагрузку и выполняет лавинообразное действие запуская цикл НО ЗАЧЕМ ?
Тоесть по ходу ты зделал с точностью наоборот , вместо того чтоб разгрузить процессор ты его нагрузил по самые помидоры
карма: 0
Время верстки: %cr_time% Текущее время: %time%
0
Ответов: 1397
Рейтинг: 50
#8: 2009-04-13 16:33:40 ЛС | профиль | цитата
Чего чего ОТСРАЧИВАЕТ? ;)
карма: 0
Время верстки: %cr_time% Текущее время: %time%
0
8
Сообщение
...
Прикрепленные файлы
(файлы не залиты)