|
|
|
пустой Service кушает до 15% ресурсов CPU
|
|||
|---|---|---|---|
|
#18+
asutp2 И я очень хочу увидеть реальный код балансировки использования процессоров в потоках у супер мега экспертов, не признающих sleep. А то слов много, реального кода - 0. Хочешь увидеть код, где нет sleep? У меня весь такой код в боевых условиях. Sleep только для тестов и отладки. Если не умеешь без sleep, то дело твое, но не стоит учить плохому остальных. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.03.2021, 09:27 |
|
||
|
пустой Service кушает до 15% ресурсов CPU
|
|||
|---|---|---|---|
|
#18+
Кстати, sleep-ом не только "неофиты" балуются... Другое дело, что это иногда выходит за пределы тестов: Давно уже волновала лучшие умы нашей конторы проблема - почему Oracle Reports на Linux стартует на полминуты дольше, чем на винде? Из-за этого даже в своё время от его использования отказались. И вот теперь британским учёным (в моём лице) удалось приподнять завесу тайны: (gdb) disassemble rxmrun rxmrun+50 Dump of assembler code from 0x40398cd0 to 0x40398d02: ... (не очень интересно) ... 0x40398ce9 <rxmrun+25>: push 30 0x40398ceb <rxmrun+27>: call 0x8054eb8 <sleep> То есть кто-то из индусских жрецов Оракла просто написал sleep (30); Интересно бы посмотреть в его однопиксельные глаза и задать ему пару вопросов. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.03.2021, 09:34 |
|
||
|
пустой Service кушает до 15% ресурсов CPU
|
|||
|---|---|---|---|
|
#18+
Хотя нет, вру... Слипы применял, когда делал общение с медленными железками и по протоколу им нужно было время на подготовку ответа, а до этого нельзя с портом ничего делать. Написал, подождал 20 мс, читаешь ответ. Иначе никак. Но это, разумеется, делалось в доп.потоке, а не в основном, о чем я и говорю. В основном потоке - без слипов. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.03.2021, 09:40 |
|
||
|
пустой Service кушает до 15% ресурсов CPU
|
|||
|---|---|---|---|
|
#18+
wadman, так покажи код, который отвечает за распределение нагрузки на проц и его ядра в потоках . Или ты делаешь всё в стиле разработчиков на электоне, которые о ресурсах компа вообще не думают? Хавает сервис проц в простое - плевать?)))) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.03.2021, 09:51 |
|
||
|
пустой Service кушает до 15% ресурсов CPU
|
|||
|---|---|---|---|
|
#18+
asutp2 Хавает сервис проц в простое У меня так не получается, потому и показывать нечего. Но если придумать задачу по твоему описанию: то это доп поток, который не спит, а ждет события с нужным таймаутом, например. И событие не всегда о работе, а иногда и об окончании работы. Sleep-же просто крадет время, на которое поток выбывает из цикла. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.03.2021, 10:29 |
|
||
|
пустой Service кушает до 15% ресурсов CPU
|
|||
|---|---|---|---|
|
#18+
asutp2, имеется ввиду всего лишь замена Sleep на MsgWaitForXXX и код сразу становится кошерным ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.03.2021, 10:30 |
|
||
|
пустой Service кушает до 15% ресурсов CPU
|
|||
|---|---|---|---|
|
#18+
wadman Кстати, sleep-ом не только "неофиты" балуются... Другое дело, что это иногда выходит за пределы тестов: Давно уже волновала лучшие умы нашей конторы проблема - почему Oracle Reports на Linux стартует на полминуты дольше, чем на винде? Из-за этого даже в своё время от его использования отказались. И вот теперь британским учёным (в моём лице) удалось приподнять завесу тайны: (gdb) disassemble rxmrun rxmrun+50 Dump of assembler code from 0x40398cd0 to 0x40398d02: ... (не очень интересно) ... 0x40398ce9 <rxmrun+25>: push 30 0x40398ceb <rxmrun+27>: call 0x8054eb8 <sleep> То есть кто-то из индусских жрецов Оракла просто написал sleep (30); Интересно бы посмотреть в его однопиксельные глаза и задать ему пару вопросов. Там какой-то свой sleep? Потому что системный же в мсек параметр принимает. А 30мс никто не заметит ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.03.2021, 10:30 |
|
||
|
пустой Service кушает до 15% ресурсов CPU
|
|||
|---|---|---|---|
|
#18+
asutp2 И я очень хочу увидеть реальный код балансировки использования процессоров в потоках у супер мега экспертов, не признающих sleep. А то слов много, реального кода - 0. Рихтер, Кларк "Программирование серверных приложений для Microsoft Windows 2000" ещё актуальна. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.03.2021, 10:59 |
|
||
|
пустой Service кушает до 15% ресурсов CPU
|
|||
|---|---|---|---|
|
#18+
Barmaley57 asutp2 И я очень хочу увидеть реальный код балансировки использования процессоров в потоках у супер мега экспертов, не признающих sleep. А то слов много, реального кода - 0. Рихтер, Кларк "Программирование серверных приложений для Microsoft Windows 2000" ещё актуальна. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.03.2021, 11:21 |
|
||
|
пустой Service кушает до 15% ресурсов CPU
|
|||
|---|---|---|---|
|
#18+
Barmaley57 Какой нафиг sleep?! За это надо сразу убивать. Обычно используют группу вызовов xxxWaitForxxx. Sleep тоже WaiFor... WaitFor[timer] ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.03.2021, 11:27 |
|
||
|
пустой Service кушает до 15% ресурсов CPU
|
|||
|---|---|---|---|
|
#18+
ъъъъъ Barmaley57 Какой нафиг sleep?! За это надо сразу убивать. Обычно используют группу вызовов xxxWaitForxxx. Sleep тоже WaiFor... WaitFor[timer] Не тоже. Давай без флуда. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.03.2021, 11:30 |
|
||
|
пустой Service кушает до 15% ресурсов CPU
|
|||
|---|---|---|---|
|
#18+
asutp2 Иных сигналов нет. asutp2 И я очень хочу увидеть реальный код балансировки использования процессоров в потоках у супер мега экспертов, не признающих sleep asutp2 осле выполнения задачи и до перехода к следующему выполнению задачи ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.03.2021, 11:40 |
|
||
|
пустой Service кушает до 15% ресурсов CPU
|
|||
|---|---|---|---|
|
#18+
wadman Но если придумать задачу по твоему описанию: то это доп поток, который не спит, а ждет события с нужным таймаутом, например. И событие не всегда о работе, а иногда и об окончании работы. Sleep-же просто крадет время, на которое поток выбывает из цикла. 1. Доп.поток - это TServiceThread, интегрированный в TService 2. TServiceThread.Execute ждет исключительно Terminate, остальные события приостановки/возобновления/рестарта - в ProcessRequests 3. Sleep возвращает ресурсы. Если помним, исходная проблема заключалась в том, что загрузка проца у службы была 15-20%. Начали делится ресурсами, загрузка стала 0%. И кого тут после этого нужно убивать? Тех, кто плюет на распределение ресурсов железа. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.03.2021, 11:43 |
|
||
|
пустой Service кушает до 15% ресурсов CPU
|
|||
|---|---|---|---|
|
#18+
_Vasilisk_ asutp2 Иных сигналов нет. _Vasilisk_ asutp2 И я очень хочу увидеть реальный код балансировки использования процессоров в потоках у супер мега экспертов, не признающих sleep asutp2 осле выполнения задачи и до перехода к следующему выполнению задачи Но вопрос то заключается в том, как сам TServiceThread управляет нагрузкой на проц при собственном исполнении? Учитывая, что на современных процах код внутри исполняется за маленькое число тиков и с точки зрения системы аналогично Код: pascal 1. 2. в итоге имеем, что загрузка на ядре, на котором выполняется TServiceThread.Execute, становится недопустимо большой. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.03.2021, 11:52 |
|
||
|
пустой Service кушает до 15% ресурсов CPU
|
|||
|---|---|---|---|
|
#18+
asutp2 Не вопрос, расскажи мне как нубу конкретный вызов xxxWaitForxxx в TServiceThread.Execute. Код: pascal 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.03.2021, 11:58 |
|
||
|
пустой Service кушает до 15% ресурсов CPU
|
|||
|---|---|---|---|
|
#18+
asutp2 Ты утверждаешь, что эти события относятся именно к TServiceThread, а не соответствующим дочерним потокам, отвечающих за соотвествующую обработку? asutp2 загрузка на ядре, на котором выполняется TServiceThread.Execute, становится недопустимо большой. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.03.2021, 11:58 |
|
||
|
пустой Service кушает до 15% ресурсов CPU
|
|||
|---|---|---|---|
|
#18+
_Vasilisk_ Уже неоднократно говорили: про ServiceExecute забыть вообще. В ServiceStart запускать свой поток, в ServiceStop его останавливать ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.03.2021, 12:08 |
|
||
|
пустой Service кушает до 15% ресурсов CPU
|
|||
|---|---|---|---|
|
#18+
asutp2 TServiceThread, он прекрасно справляется со своей задачей asutp2 TServiceThread.Execute ждет исключительно Terminate ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.03.2021, 12:09 |
|
||
|
пустой Service кушает до 15% ресурсов CPU
|
|||
|---|---|---|---|
|
#18+
Barmaley57 Код: pascal 1. Такое ощущение, что мне лечат за работу дочерних потоков в обычных приложениях, не понимая сути проблемы. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.03.2021, 12:15 |
|
||
|
пустой Service кушает до 15% ресурсов CPU
|
|||
|---|---|---|---|
|
#18+
_Vasilisk_ asutp2 TServiceThread, он прекрасно справляется со своей задачей asutp2 TServiceThread.Execute ждет исключительно Terminate ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.03.2021, 12:16 |
|
||
|
пустой Service кушает до 15% ресурсов CPU
|
|||
|---|---|---|---|
|
#18+
Но не забываем о сути проблемы, а именно о использовании ресурсов процессора. Как то все скромно этот вопрос умалчивают. Первый раз слышим, что нужно грамотно работать с ресурсами компов? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.03.2021, 12:19 |
|
||
|
пустой Service кушает до 15% ресурсов CPU
|
|||
|---|---|---|---|
|
#18+
asutp2 yemets63, добавь Sleep(100) после ProcessRequests Бизи вейты во сне и наяву... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.03.2021, 12:27 |
|
||
|
пустой Service кушает до 15% ресурсов CPU
|
|||
|---|---|---|---|
|
#18+
.. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.03.2021, 12:29 |
|
||
|
пустой Service кушает до 15% ресурсов CPU
|
|||
|---|---|---|---|
|
#18+
asutp2 Такое ощущение, что мне лечат за работу дочерних потоков в обычных приложениях, не понимая сути проблемы. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.03.2021, 12:39 |
|
||
|
пустой Service кушает до 15% ресурсов CPU
|
|||
|---|---|---|---|
|
#18+
asutp2 Соответственно, а какие хэндлы передавать в MsgWaitForMultipleObjects ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.03.2021, 12:41 |
|
||
|
|

start [/forum/topic.php?fid=58&msg=40053439&tid=2037492]: |
0ms |
get settings: |
8ms |
get forum list: |
19ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
203ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
74ms |
get tp. blocked users: |
1ms |
| others: | 229ms |
| total: | 551ms |

| 0 / 0 |
