|
|
|
пустой Service кушает до 15% ресурсов CPU
|
|||
|---|---|---|---|
|
#18+
почему нагрузка на CPU 10 - 15%. показываю пустой Service, он работает, и он как полный с моим функционалом, так и пустой кушат 10-15% CPU, и максимально потребляет энергию по GPU и CPU. я может не знаю, может какие то ключи надо поставить антивирусником все прогнал, службу в исключения внес, служба запускается, могу остановить, перезапустить. к функционалу службы вопросов нет. вот текст: Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.03.2021, 15:04 |
|
||
|
пустой Service кушает до 15% ресурсов CPU
|
|||
|---|---|---|---|
|
#18+
А ведь тебя предупреждали не пользоваться ProcessMessages и компанией... Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.03.2021, 15:20 |
|
||
|
пустой Service кушает до 15% ресурсов CPU
|
|||
|---|---|---|---|
|
#18+
yemets63, добавь Sleep(100) после ProcessRequests ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.03.2021, 15:21 |
|
||
|
пустой Service кушает до 15% ресурсов CPU
|
|||
|---|---|---|---|
|
#18+
yemets63, так это, цикл Код: pascal 1. 2. 3. 4. шарашит без перерыва, и на 100% грузит одно ядро. Ничего удивительного. imho то же самое, что в бесконечном цикле зарядить a:=a + 0; ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.03.2021, 15:34 |
|
||
|
пустой Service кушает до 15% ресурсов CPU
|
|||
|---|---|---|---|
|
#18+
yemets63 Код: pascal 1. 2. 3. 4. 5. 6. 7. Что это за д. вечный цикл? Зачем вообще этот бред? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.03.2021, 15:35 |
|
||
|
пустой Service кушает до 15% ресурсов CPU
|
|||
|---|---|---|---|
|
#18+
цикл стоит для примера, к сожалению не могу показать полный текст функционала, хотя отдельно функционал не грузит проц вообще, а как вставляю в Execute так 14%. в нем нет зацикливаний. сижу по шагам проверяю поведение функционала в Service. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.03.2021, 16:21 |
|
||
|
пустой Service кушает до 15% ресурсов CPU
|
|||
|---|---|---|---|
|
#18+
yemets63 отдельно функционал не грузит проц вообще Просто while True do; будет грузить точно так же. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.03.2021, 16:33 |
|
||
|
пустой Service кушает до 15% ресурсов CPU
|
|||
|---|---|---|---|
|
#18+
когда вырезал код, немного ошибся, asutp2, спасибо за sleep я даже убрал Timer который мне не особо был нужен, и вставил в цикл, чего не было, но вставил в пример, в итоге, еле-еле службу нашел, 0% и работает очень даже классненько, раздает и получает, слышить и посылает, и всегда CPU=0%. Код: plsql 1. 2. 3. 4. 5. 6. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.03.2021, 16:37 |
|
||
|
пустой Service кушает до 15% ресурсов CPU
|
|||
|---|---|---|---|
|
#18+
yemets63 когда вырезал код, немного ошибся, asutp2, спасибо за sleep я даже убрал Timer который мне не особо был нужен, и вставил в цикл, чего не было, но вставил в пример, в итоге, еле-еле службу нашел, 0% и работает очень даже классненько, раздает и получает, слышить и посылает, и всегда CPU=0%. Код: plsql 1. 2. 3. 4. 5. 6. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.03.2021, 16:40 |
|
||
|
пустой Service кушает до 15% ресурсов CPU
|
|||
|---|---|---|---|
|
#18+
yemets63цикл стоит для примера, А вставка Sleep() в несуществующий цикл помогла. Чудны дела твои... Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.03.2021, 16:45 |
|
||
|
пустой Service кушает до 15% ресурсов CPU
|
|||
|---|---|---|---|
|
#18+
YuRock> Можно их еще превентивно расставлять между строками алгоритмов. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.03.2021, 16:49 |
|
||
|
пустой Service кушает до 15% ресурсов CPU
|
|||
|---|---|---|---|
|
#18+
YuRock Вообще да, чем больше sleep-ов в коде - тем меньше процесс жрет процессор. Можно их еще превентивно расставлять между строками алгоритмов. А если считаешь, что использование Sleep() в связке ProcessRequests является неправильным решением для уменьшения нагрузки на проц внутри ServiceExecute, тогда расскажи свое, "правильное". Будет весьма интересно услышать, как в главном потоке без UI и минимальным внешним воздействием от ОС на сервис ты разруливаешь дележку проца))))) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.03.2021, 20:55 |
|
||
|
пустой Service кушает до 15% ресурсов CPU
|
|||
|---|---|---|---|
|
#18+
asutp2 YuRock Вообще да, чем больше sleep-ов в коде - тем меньше процесс жрет процессор. Можно их еще превентивно расставлять между строками алгоритмов. А если считаешь, что использование Sleep() в связке ProcessRequests является неправильным решением для уменьшения нагрузки на проц внутри ServiceExecute, тогда расскажи свое, "правильное". Будет весьма интересно услышать, как в главном потоке без UI и минимальным внешним воздействием от ОС на сервис ты разруливаешь дележку проца))))) 1. Я никогда не использую ServiceExecute. В ServiceStart я запускаю свой поток, в ServiceStop - убиваю его. 2. Что такое ProcessRequests - я вообще не знаю, да и знать не хочу. Ну это всё мои предпочтения. Не претендую на единственно правильные решения. Вот самое главное. Любой поток должен либо выполнять задачу, либо ждать сигнала, после которого либо завершаться, либо начинать выполнять очередную задачу. Для Sleep тут места нет. Sleep допустимо применять в 3 случаях: - Для осознанной передачи управления другому потоку (бывает такая необходимость) - Sleep( 0 ); - Для тестовых программ; - Для программ типа такой: Код: pascal 1. 2. 3. 4. 5. 6. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.03.2021, 21:20 |
|
||
|
пустой Service кушает до 15% ресурсов CPU
|
|||
|---|---|---|---|
|
#18+
и так в продолжении, теперь уже SLEEP SLEEP- кстати чудная штука, в моем SERVICE я попробовал 2 решения, свои потоки и ServiceExecute с использованием sleep, мне всё одинаково, но ServiceExecute нравится больше. и так о SLEEP, почему это чудная, парадоксальная и полезная штука. году в 2004, тогда первые проекты огромные были, и я очень любил и люблю трехзвенку, и тогда уже года 4 был на DEVART, не помню как они тогда назывались, начал внедрять рабочую систему в Воркуте и на севере. Разработка нашей команды и уже пару лет проработавшая в центральном регионе России. Проблем до Воркуты не было. Но там, на севере было что то, не то спутники советские, не то интернет за счет динамомашин, а трехзвенка любит постоянный коннект. скорость низкая и постоянные паузы. что делать? Проверять обрыв коннекта, сздавать и восстанавливать транзакции, или делать пакеты для локальной работы потом их гонять и сохранять, или искать другие решения...? В итоге поехал я на север решать проблемы, Мирный, Архангельск, и т.д., да еще и зимой, и когда стал совсем замерзать, решил попробовать между вызовом метода сервера и использованием ClientDataSet вставлять sleep и всё это завернул в потоки. Так вот, при 256 Кбит с нестабильной связью это все ЗАработало. значением Sleep можно было управлять. До 2011 года работа приложений-клиентов с серверов-прилоений была безупречно, ну и функционал тоже, потом потеряли контакт с заказчиком, смена хозяина, другие правила бизнеса, "грёбанные" торги... так что sleep полезная вещь! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.03.2021, 23:40 |
|
||
|
пустой Service кушает до 15% ресурсов CPU
|
|||
|---|---|---|---|
|
#18+
yemets63 а трехзвенка любит постоянный коннект Тут некоторые люди переходят на "трехзвенку" из-за того, что не нужен постоянный коннект... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.03.2021, 23:56 |
|
||
|
пустой Service кушает до 15% ресурсов CPU
|
|||
|---|---|---|---|
|
#18+
yemets63 когда стал совсем замерзать, решил попробовать между вызовом метода сервера и использованием ClientDataSet вставлять sleep и всё это завернул в потоки. Так вот, при 256 Кбит с нестабильной связью это все ЗАработало. значением Sleep можно было управлять. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.03.2021, 00:11 |
|
||
|
пустой Service кушает до 15% ресурсов CPU
|
|||
|---|---|---|---|
|
#18+
YuRock1. Я никогда не использую ServiceExecute. В ServiceStart я запускаю свой поток, в ServiceStop - убиваю его. воистину! Кстати, я нашел аналогичное обсуждение, 5-летней давности, там такому же автору настучали канделябром. https://stackoverflow.com/questions/33625164/service-application-in-delphi Собственно, мораль такая, что если в ServiceExecute вызывать такой цикл, то никакой TThread не нужен. А надо наоборот - ServiceExecute не вызывать, и всё делать в TThread.Execute. Там тоже можно сделать бесконечный цикл с загрузкой 1 ядра на 100%, но это уже другой вопрос. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.03.2021, 00:18 |
|
||
|
пустой Service кушает до 15% ресурсов CPU
|
|||
|---|---|---|---|
|
#18+
Настало время охуительных историй. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.03.2021, 00:19 |
|
||
|
пустой Service кушает до 15% ресурсов CPU
|
|||
|---|---|---|---|
|
#18+
rgreat, да по первому сообщению возникло впечатление, что автор вопроса не знает, что у него 6-ядерный проц, и как эти ядра загружаются. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.03.2021, 00:27 |
|
||
|
пустой Service кушает до 15% ресурсов CPU
|
|||
|---|---|---|---|
|
#18+
Давно про трехзвенку не баяли. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.03.2021, 00:27 |
|
||
|
пустой Service кушает до 15% ресурсов CPU
|
|||
|---|---|---|---|
|
#18+
Не перевелись ещё любители запускать поток и следующей строкой ожидать его завершения... Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.03.2021, 01:20 |
|
||
|
пустой Service кушает до 15% ресурсов CPU
|
|||
|---|---|---|---|
|
#18+
YuRock Любой поток должен либо выполнять задачу, либо ждать сигнала, после которого либо завершаться, либо начинать выполнять очередную задачу. Для Sleep тут места нет. Внутри TServiceThread.Execute вызывается пользовательский код, который снаружи может получить всего 1 управляющий сигнал - terminate. Всё. Без сигнала завершения, после выполнения задачи и до перехода к следующему выполнению задачи сервис должен делиться ресурсами с другими приложениями в системе. Я так и не увидел, а каким образом это делается антогонистами sleep? kdv Кстати, я нашел аналогичное обсуждение, 5-летней давности, там такому же автору настучали канделябром. https://stackoverflow.com/questions/33625164/service-application-in-delphi Код: pascal 1. 2. 3. 4. 5. 6. Как интересно)))) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.03.2021, 06:02 |
|
||
|
пустой Service кушает до 15% ресурсов CPU
|
|||
|---|---|---|---|
|
#18+
asutp2 Внутри TServiceThread.Execute Это часть кривой реализации для неофитов. Чтоб не сильно грузить их серое вещество сервисами и их внутренним миром. Считай, что это главный поток приложения. В нем sleep вреден в боевой обстановке. Захочет винда твой сервис остановить, а он спит. И так три раза. И твой сервис помечается плохим словом. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.03.2021, 09:04 |
|
||
|
пустой Service кушает до 15% ресурсов CPU
|
|||
|---|---|---|---|
|
#18+
wadman asutp2 Внутри TServiceThread.Execute Это часть кривой реализации для неофитов. Чтоб не сильно грузить их серое вещество сервисами и их внутренним миром. Считай, что это главный поток приложения. В нем sleep вреден в боевой обстановке. Захочет винда твой сервис остановить, а он спит. И так три раза. И твой сервис помечается плохим словом. Что то я ни разу не сталкивался с тем, что мой сервис не отвечал виндам и соответственно был помечен плохими словами. В своих реализациях я точно также использую доппотоки для выполнения основного функционала, а TServiceThread.Execute служит исключительно для управления дочерними потоками. А насчет неофитов, их серого вещества и прочего - это ты по своему личному опыту говоришь?) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.03.2021, 09:11 |
|
||
|
пустой Service кушает до 15% ресурсов CPU
|
|||
|---|---|---|---|
|
#18+
И я очень хочу увидеть реальный код балансировки использования процессоров в потоках у супер мега экспертов, не признающих sleep. А то слов много, реального кода - 0. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.03.2021, 09:13 |
|
||
|
пустой 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 |
|
||
|
пустой Service кушает до 15% ресурсов CPU
|
|||
|---|---|---|---|
|
#18+
asutp2 какие хэндлы передавать в MsgWaitForMultipleObjects (которых нет) при каждой итерации в нормальном режиме работы?) Похоже азы при работе с потоками где-то были пропущены и попытка подвести к пониманию этого вывода вызывает отторжение. Твой подход - в корне неверен, но виноват в этом на самом деле delphi, т.к. они сделали кривую обертку над сервисом, которая позволяет так делать. Но эта обертка позволяет сделать и чуть лучше. В данном случае в MsgWaitForMultipleObjects должен передаваться хэндл события - TEvent в дельфи. Им можно управлять (выставлять и сбрасывать) из любого потока. Их так же можно сделать несколько и дергать любой из них. Один - для работы, другой - для завершения потока и т.п. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.03.2021, 12:43 |
|
||
|
пустой Service кушает до 15% ресурсов CPU
|
|||
|---|---|---|---|
|
#18+
Barmaley57 asutp2 Соответственно, а какие хэндлы передавать в MsgWaitForMultipleObjects ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.03.2021, 12:52 |
|
||
|
пустой Service кушает до 15% ресурсов CPU
|
|||
|---|---|---|---|
|
#18+
Почему-то вспомнилосьПостовой (останавливает машину): Сержант Петров! Прошу документы! Водитель: Добрый день! Постовой: Документы ваши! Права! Водитель: И не говорите. Очень жарко. Постовой: Права! Водитель: А? Постовой: Вы плохо слышате? Водитель: Гововите громче. Постовой (орет): Вы нарушили правила! Ваши права! Водитель: Вы правы, очень жарко. Я весь мокрый. А вы? Постовой: Вы что, глухой? Какой знак висит? Знак висит какой? Водитель: Где? постовой: Вон, наверху! Водитель: Я вижу, я не глухой! Постовой: Красное с желтым наверху для чего повешено? Водитель: Кстати, там что-то висит, надо снять - отвлекает. постовой: Посередине на желтом фоне, что чернеет такое красное? Водитель: Громче, очень жарко! Постовой: Вы глухой? Водитель: Я плохо вижу. Постовой: Глухой, да еще и слепой, что ли? Водитель: Не слышу! Постовой: Как же вы за руль сели? Водитель: Спасибо, я не курю. Да вы не волнуйтесь. Вон в машине двое. Один видит, другой слышит! А я рулю. Постовой: Черная стрелка направо зачеркнута. Это что значит? Не слышу. Водитель: Вы что, глухой? Зачеркнута? Наверное, поставили, потом зачеркнули. Постовой: Вы в своем уме? Это значит, направо поворачивать нельзя. Водитель: Кто вам сказал? Постовой: Я что, по-вашему, идиот? Водитель: Вы много на себя берете. Куда я, по-вашему, повернул? Постовой: Повернули направо. Водитель: Да вы что? Я повернул налево. Вы просто не тем боком стоите. Постовой: Господи! Где у вас лево? Водитель: Вот у меня лево. Вот левая рука, вот правая. А у вас? Постовой: Эта рука никогда не была левой. Водитель: Не говорите глупостей! Это надо знать. Вот левая! Вот правая! Неужели вы этого не проходили? А еще регулировщик! Просто вы не тем боком стоите. Постовой: Тьфу! Хорошо, вон идет прохожий, спросим у него. У нас еще не все идиоты. Товарищ! Ответьте: какая рука левая, какая правая? Прохожий: Первый раз слышу! Постовой: Не иначе в сумасшедшем доме день открытых дверей. Какая ваша левая рука, какая правая? Прохожий: Лично у меня эта рука левая, а это правая. Или с сегодняшнего дня переименовали? Водитель: А вы не верили, товарищ сержант. Видите, у нас руки совпадают, а у вас перепутаны. Постовой (недоуменно разглядывает свои руки): Ничего не понимаю! Прохожий: Я могу идти? Постовой: Идите, идите. Прохожий: Куда? Постовой: Идите прямо, никуда не сворачивая, и уйдите отсюда подальше! Прохожий: Спасибо, что подсказали. А то я два часа иду, не могу понять, куда! (Уходит) Водитель: Вам что-то нужно делать с руками. Я никому не скажу, но при вашей работе могут быть неприятности. Постовой: И я про вас никому. Езжайте! Да, когда свернете налево, ну вы-то направо, там проезд запрещен, обрыв. Но вам туда можно!!! (c) Семен Альтов ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.03.2021, 12:59 |
|
||
|
пустой Service кушает до 15% ресурсов CPU
|
|||
|---|---|---|---|
|
#18+
wadman asutp2 какие хэндлы передавать в MsgWaitForMultipleObjects (которых нет) при каждой итерации в нормальном режиме работы?) Похоже азы при работе с потоками где-то были пропущены и попытка подвести к пониманию этого вывода вызывает отторжение. Твой подход - в корне неверен, но виноват в этом на самом деле delphi, т.к. они сделали кривую обертку над сервисом, которая позволяет так делать. Но эта обертка позволяет сделать и чуть лучше. В данном случае в MsgWaitForMultipleObjects должен передаваться хэндл события - TEvent в дельфи. Им можно управлять (выставлять и сбрасывать) из любого потока. Их так же можно сделать несколько и дергать любой из них. Один - для работы, другой - для завершения потока и т.п. И чем дальше, тем более понятно, что большинство из присутствующих не понимают о чем вообще идет речь. Мы что, обсуждаем работу порождаемых потоков, реализующих какой то полезный функционал? Нет. Речь идет о TServiceThread и о его методе Execute, о его загрузке процессора. Рекомендую для начала почитать стековерфлоу, изучить исходники в самой делфи, статистику и примеры применения sleep в потоках. А уже потом нести ахинению. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.03.2021, 13:00 |
|
||
|
пустой Service кушает до 15% ресурсов CPU
|
|||
|---|---|---|---|
|
#18+
asutp2 А уже потом нести ахинению. Понятно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.03.2021, 13:02 |
|
||
|
пустой Service кушает до 15% ресурсов CPU
|
|||
|---|---|---|---|
|
#18+
wadman asutp2 А уже потом нести ахинению. Понятно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.03.2021, 13:06 |
|
||
|
пустой Service кушает до 15% ресурсов CPU
|
|||
|---|---|---|---|
|
#18+
asutp2, сервис ведь что-то делает? Принимает запросы по сети или еще что-то. Ну вот эти события, которых он ожидает, могут порождать события, events. Это так - из общих соображений, сервисы не писал. Но прием данных по сети, когда поток ждет, а приход данных в буфер сокета активирует событие, и для ожидания используется функция WaitForMultipleObjects, такое было. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.03.2021, 13:39 |
|
||
|
пустой Service кушает до 15% ресурсов CPU
|
|||
|---|---|---|---|
|
#18+
asutp2А я думал, ты мне расскажешь о возможных TEvent у сервиса, которые "не любые", а конкретные и известные, ведь мы, еще раз напомню, говорим о сервисе Windows Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. Но и это дублирует код в самом менеджере сервисов. Поток с OnExecute - не нужен. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.03.2021, 13:45 |
|
||
|
пустой Service кушает до 15% ресурсов CPU
|
|||
|---|---|---|---|
|
#18+
asutp2 Рекомендую для начала почитать стековерфлоу, изучить исходники в самой делфи, статистику и примеры применения sleep в потоках. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.03.2021, 14:18 |
|
||
|
пустой Service кушает до 15% ресурсов CPU
|
|||
|---|---|---|---|
|
#18+
asutp2 wadman пропущено... Понятно. Нужно понимать, что люди тут отвечают исключительно из альтруистических соображений и не все готовы бесконечно поддерживать тупиковую ситуацию на плаву. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.03.2021, 14:22 |
|
||
|
пустой Service кушает до 15% ресурсов CPU
|
|||
|---|---|---|---|
|
#18+
Нужно понимать, что когда речь заходит об омонимах (Windows Event и Delphi Event в данном случае), люди начинают тупить и стоять на своём. PS: А ещё свою лепту вносят event-ы, приходящие в https://docs.microsoft.com/en-us/windows/win32/api/winsvc/nc-winsvc-lphandler_function_ex ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.03.2021, 14:45 |
|
||
|
пустой Service кушает до 15% ресурсов CPU
|
|||
|---|---|---|---|
|
#18+
asutp2 а зачем мне вообще повторять код обертки, если всё сведется к тому же самому? TService и TServiceThread со своей задачей справляются, поэтому не вижу вообще никакой необходимости писать аналогичный код Казалось бы, для однопоточных сервисов можно было бы использовать поток ServiceExecute, чтобы не порождать свой. Но у меня таких (однопоточных) не бывает, у меня минимум два потока (даже в тестовых сервисах) - логгер и рабочий поток. А обычно - логгер, обновлятор, и несколько рабочих потоков, которые занимаются своими делами. И вот такая архитектура: при старте я эти потоки в нужном порядке запускаю, при стопе - в нужном порядке убиваю. А использование ServiceExecute ломает эту прозрачную архитектуру, как минимум. Потому, отвечать на вопрос, как обойтись в ServiceExecute без Sleep - даже не хочется. Но, понятное дело, что обойтись можно и нужно с помощью Wait-функций, если уж используешь этот поток. Ну и последнее. Ты там приводил "заплюсованный код" со слипом со стэковерфло. Этот код - убожество, я его даже цитировать не хочу. Плюсовали его либо в шутку, либо нубы. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.03.2021, 14:55 |
|
||
|
пустой Service кушает до 15% ресурсов CPU
|
|||
|---|---|---|---|
|
#18+
YuRockИ вот такая архитектура: при старте я эти потоки в нужном порядке запускаю, при стопе - в нужном порядке убиваю. А использование ServiceExecute ломает эту прозрачную архитектуру, как минимум. "Чо?" Что там у тебя сломается если в начале кода ServiceExecute ты создашь все нужные дополнительные потоки, а в конце из убьёшь? Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.03.2021, 14:57 |
|
||
|
пустой Service кушает до 15% ресурсов CPU
|
|||
|---|---|---|---|
|
#18+
Dimitry Sibiryakov YuRockИ вот такая архитектура: при старте я эти потоки в нужном порядке запускаю, при стопе - в нужном порядке убиваю. А использование ServiceExecute ломает эту прозрачную архитектуру, как минимум. "Чо?" Что там у тебя сломается если в начале кода ServiceExecute ты создашь все нужные дополнительные потоки, а в конце из убьёшь?Ничего не изменится, кроме ввода дополнительного хвента и его ожидания. В том-то и дело. Лишняя писанина и меньшая наглядность. И так и так нужны Start и Stop, так зачем же еще событие. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.03.2021, 15:01 |
|
||
|
пустой Service кушает до 15% ресурсов CPU
|
|||
|---|---|---|---|
|
#18+
asutp2 _Vasilisk_ Уже неоднократно говорили: про ServiceExecute забыть вообще. В ServiceStart запускать свой поток, в ServiceStop его останавливать Сервис в фоне выполняет задачи. Эти задачи могут быть выполнены одним, двумя, восемью и т.д. потоками... Это неважно сколько их будет.. Важно что сервис в определенное время или по определенным событиям выполняет задачи.. И важно чтобы задачи не ждали друг друга, а были конкурентными (и как частный случай - параллельными) Стандартный Execute для этой цели не подходит... Вот и все.. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.03.2021, 15:06 |
|
||
|
пустой Service кушает до 15% ресурсов CPU
|
|||
|---|---|---|---|
|
#18+
X-CiteСтандартный Execute для этой цели не подходит... Вот и все.. Ну ёёёё... TService вызывает последовательно OnStart и OnExecute. Ты в самом деле видишь большую разницу в создании дополнительных потоков на одну строчку кода выше?.. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.03.2021, 15:14 |
|
||
|
пустой Service кушает до 15% ресурсов CPU
|
|||
|---|---|---|---|
|
#18+
спорите о том чей фломастер вкуснее... разница не велика, просто используя стандартный Execute надо придерживаться его стандартов (заглянуть в исходники), не забывать вызывать ProcessRequests(false)? Код: pascal 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. или Код: pascal 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. ну и поток пуск стоп не забыть... вся разница! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.03.2021, 15:15 |
|
||
|
пустой Service кушает до 15% ресурсов CPU
|
|||
|---|---|---|---|
|
#18+
А давайте поговорим о использовании ресурсов процессора)) Почему sleep(100)? Почему не 1,10,1000,10000....? Откуда эта цифра взялась? Давайте посмотрим на переключения контекста в счетчиках производительности. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.03.2021, 15:40 |
|
||
|
пустой Service кушает до 15% ресурсов CPU
|
|||
|---|---|---|---|
|
#18+
Zeliusпросто используя стандартный Execute надо придерживаться его стандартов (заглянуть в исходники), не забывать вызывать ProcessRequests(false)? А зачем вообще его вызывать? Только потому, что так написано индусами в совершенно тупом примере кода?.. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.03.2021, 15:46 |
|
||
|
пустой Service кушает до 15% ресурсов CPU
|
|||
|---|---|---|---|
|
#18+
Dimitry Sibiryakov Zeliusпросто используя стандартный Execute надо придерживаться его стандартов (заглянуть в исходники), не забывать вызывать ProcessRequests(false)? А зачем вообще его вызывать? Только потому, что так написано индусами в совершенно тупом примере кода?.. По большому счету только для SERVICE_CONTROL_INTERROGATE ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.03.2021, 15:50 |
|
||
|
пустой Service кушает до 15% ресурсов CPU
|
|||
|---|---|---|---|
|
#18+
Dimitry Sibiryakov, потому что это как ProcessMessages для VCL, все сообщения сервису поступают через него (пуск, стоп, пауза... см. TServiceThread.ProcessRequests). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.03.2021, 15:50 |
|
||
|
пустой Service кушает до 15% ресурсов CPU
|
|||
|---|---|---|---|
|
#18+
"Чо?" В самой винде они поступают прямо в вышеназванный callback из отдельного потока, а дельфиские приложения вдруг требуют плясок с вызовом какой-то левой хрени?.. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.03.2021, 15:54 |
|
||
|
пустой Service кушает до 15% ресурсов CPU
|
|||
|---|---|---|---|
|
#18+
Zelius Dimitry Sibiryakov, потому что это как ProcessMessages для VCL, все сообщения сервису поступают через него (пуск, стоп, пауза... см. TServiceThread.ProcessRequests). Приходят через указанный при инициализации службы коллбэк. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.03.2021, 15:57 |
|
||
|
пустой Service кушает до 15% ресурсов CPU
|
|||
|---|---|---|---|
|
#18+
YuRock ServiceExecute - это просто событие-коллбэк. Без его описания и тем более "вызова" - сообщения типа "старт/стоп/пауза" отлично приходят. Приходят через указанный при инициализации службы коллбэк. А разве, если не назначить OnExecute, сервис не завершится сам сразу после запуска?.. Ну примерно как обычный TThread, если у него не перекрыть Execute(). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.03.2021, 16:12 |
|
||
|
пустой Service кушает до 15% ресурсов CPU
|
|||
|---|---|---|---|
|
#18+
alekcvp, нет, тогда он вызовет ProcessRequest(True) и там цикл пока не Terminated ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.03.2021, 16:16 |
|
||
|
пустой Service кушает до 15% ресурсов CPU
|
|||
|---|---|---|---|
|
#18+
я склоняюсь читать и пробовать, создавать и внедрять, а не учить, у меня учить получается очень плохо, а вот что создавал, работает всё и достаточно хорошо при нагрузках. в итоге на мой вопрос, коллеги, материал получился интересен, намного интереснее, чем любая книга. спасибо тем, кто много знает, предлагает и учит. все молодцы! и так, 2 варианта сервиса. 7 виртуальных PC с разными WIN версиями на тесте, нагрузили, вторые сутки полет нормальный. (запуски, перезапуски, обрывы, восстановление сессий, докачка и получение пакетов, ни одного технического сбоя). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.03.2021, 17:39 |
|
||
|
пустой Service кушает до 15% ресурсов CPU
|
|||
|---|---|---|---|
|
#18+
yemets63 я склоняюсь читать и пробовать, создавать и внедрять, а не учить, у меня учить получается очень плохо Надо не читать и учить, а разбираться в предметной области. Не судорожно пробовать, а следовать логическим выводам, полученным на основании исследования предметной области. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.03.2021, 17:42 |
|
||
|
пустой Service кушает до 15% ресурсов CPU
|
|||
|---|---|---|---|
|
#18+
yemets63 я склоняюсь читать и пробовать, создавать и внедрять, а не учить, у меня учить получается очень плохо, а вот что создавал, работает всё и достаточно хорошо при нагрузках. в итоге на мой вопрос, коллеги, материал получился интересен, намного интереснее, чем любая книга. спасибо тем, кто много знает, предлагает и учит. все молодцы! Ты книжки Рихтера посмотри. Старые. Рихтер Дж. - Windows. Создание эффективных Win32-приложений с учётом специфики 64-разрядной версии Windows Рихтер Дж., Кларк Дж. - Программирование Серверных Приложений Для Microsoft Windows 2000. Просто чума. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.03.2021, 17:48 |
|
||
|
пустой Service кушает до 15% ресурсов CPU
|
|||
|---|---|---|---|
|
#18+
YuRock, да да, ты прав, но я чуть не дописал, "не учить - не материал", а не учить других, у меня это получается плохо, а изучать и практиковать предметную область это моё, но иногда требуется мнение, может быть просто трёп, из которого некоторые кирпичики потом складываются правильно ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.03.2021, 10:14 |
|
||
|
пустой Service кушает до 15% ресурсов CPU
|
|||
|---|---|---|---|
|
#18+
yemets63 YuRock, да да, ты прав, но я чуть не дописал, "не учить - не материал", а не учить других, у меня это получается плохо, а изучать и практиковать предметную область это моё, но иногда требуется мнение, может быть просто трёп, из которого некоторые кирпичики потом складываются правильно ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.03.2021, 12:44 |
|
||
|
пустой Service кушает до 15% ресурсов CPU
|
|||
|---|---|---|---|
|
#18+
yemets63, начни с того, что убери злосчастный sleep, а дальше эксперты научат ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.03.2021, 13:06 |
|
||
|
пустой Service кушает до 15% ресурсов CPU
|
|||
|---|---|---|---|
|
#18+
а разжуйте мне пожалуйста, чем так плох sleep? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.03.2021, 15:34 |
|
||
|
пустой Service кушает до 15% ресурсов CPU
|
|||
|---|---|---|---|
|
#18+
cptngrb а разжуйте мне пожалуйста, чем так плох sleep? 2. Постоянным ненужным пробуждением/засыпанием потока каждые 100 миллисекунд (или сколько там передали в цикле со слипом), что влияет негативным образом на остальные потоки. Издевательство над машиной. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.03.2021, 15:41 |
|
||
|
пустой Service кушает до 15% ресурсов CPU
|
|||
|---|---|---|---|
|
#18+
cptngrbчем так плох sleep? Тем, что он ничего не делает. Программа, которая ничего не делает, бесполезна. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.03.2021, 15:41 |
|
||
|
пустой Service кушает до 15% ресурсов CPU
|
|||
|---|---|---|---|
|
#18+
asutp2 yemets63, начни с того, что убери злосчастный sleep, а дальше эксперты научат Barmaley57 А давайте поговорим о использовании ресурсов процессора)) Почему sleep(100)? Почему не 1,10,1000,10000....? Откуда эта цифра взялась? Давайте посмотрим на переключения контекста в счетчиках производительности. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.03.2021, 15:53 |
|
||
|
пустой Service кушает до 15% ресурсов CPU
|
|||
|---|---|---|---|
|
#18+
YuRock cptngrb а разжуйте мне пожалуйста, чем так плох sleep? В качестве простейшего решения было предложено использовать sleep, что в реальной эксплуатации привело к заниманию 0% процессорного ресурса у сервиса. Отзывчивость сервиса при этом не упала и ОС не ругалась грязными словами вида "служба не отвечает". Но, как оказалось, эксперты увидели в этом сатанинское деяние. Не вопрос, автор ТС может спокойно удалить этот самый sleep и вернуться к исходной ситуации. Правда ни один из этих экспертов не показал реальный код, который бы позволил автору и не пользоваться sleep, и иметь 0% использование проца его службой. YuRock 2. Постоянным ненужным пробуждением/засыпанием потока каждые 100 миллисекунд (или сколько там передали в цикле со слипом), что влияет негативным образом на остальные потоки. Издевательство над машиной. Barmaley57 asutp2 yemets63, начни с того, что убери злосчастный sleep, а дальше эксперты научат Barmaley57 А давайте поговорим о использовании ресурсов процессора)) Почему sleep(100)? Почему не 1,10,1000,10000....? Откуда эта цифра взялась? Давайте посмотрим на переключения контекста в счетчиках производительности. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.03.2021, 16:33 |
|
||
|
пустой Service кушает до 15% ресурсов CPU
|
|||
|---|---|---|---|
|
#18+
asutp2, что тебе непонятно в словах "счетчики производительности" и "переключения контекста"? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.03.2021, 16:38 |
|
||
|
пустой Service кушает до 15% ресурсов CPU
|
|||
|---|---|---|---|
|
#18+
И ещё имеешь наглость здесь рассказывать про экономию ресурсов процессора...смех и только) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.03.2021, 16:39 |
|
||
|
пустой Service кушает до 15% ресурсов CPU
|
|||
|---|---|---|---|
|
#18+
Barmaley57, ты опять ничего не понял - я предлагаю именно тебе произвести подобные измерения, чтобы быть объективным. А то я намеряю, накручу показания и никакой им веры))) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.03.2021, 16:41 |
|
||
|
пустой Service кушает до 15% ресурсов CPU
|
|||
|---|---|---|---|
|
#18+
asutp2 произвести соответствующие измерения и выложить здесь итоговую статистику и аналитику. Будет интересно сравнить ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.03.2021, 16:41 |
|
||
|
пустой Service кушает до 15% ресурсов CPU
|
|||
|---|---|---|---|
|
#18+
Barmaley57 Давайте посмотрим на переключения контекста в счетчиках производительности. Barmaley57 Мне это не интересно сравнивать ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.03.2021, 16:45 |
|
||
|
пустой Service кушает до 15% ресурсов CPU
|
|||
|---|---|---|---|
|
#18+
asutp2, удачи!) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.03.2021, 16:47 |
|
||
|
пустой Service кушает до 15% ресурсов CPU
|
|||
|---|---|---|---|
|
#18+
cptngrb а разжуйте мне пожалуйста, чем так плох sleep? Типа эстетически не красиво и не идеально эффективно. Хотя "проблемы" от нормально вставленного слипа в сервисе в реальной жизни яйца выеденного не стоят. Подумаешь сервис на максимум секунду дольше останавливаться будет. Фигня. Зато поставить sleep в разы проще и надежней чем городить огороды с event-ами. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.03.2021, 16:48 |
|
||
|
пустой Service кушает до 15% ресурсов CPU
|
|||
|---|---|---|---|
|
#18+
asutp2 Правда ни один из этих экспертов не показал реальный код, который бы позволил автору и не пользоваться sleep Неоднократно предлагалось несколько нормальных решений этой проблемы: 1. Отказаться от ServiceExecute; 2. Использовать вместо Sleep MsgWait. asutp2 Действительно, постоянные 0% это издевательство над машиной Да, ведь это округленно. asutp2 Я пользовался эмпирическим путем Ты пользуешься методом пальцем в небо. Говорят, научно этот подход называется "Судорожное программирование". ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.03.2021, 16:49 |
|
||
|
пустой Service кушает до 15% ресурсов CPU
|
|||
|---|---|---|---|
|
#18+
rgreat Хотя "проблемы" от нормально вставленного слипа в сервисе в реальной жизни яйца выеденного не стоят. Подумаешь сервис на максимум секунду дольше останавливаться будет. Фигня. Будет самый настоящий говнокодище. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.03.2021, 16:51 |
|
||
|
пустой Service кушает до 15% ресурсов CPU
|
|||
|---|---|---|---|
|
#18+
YuRock Если так делать всегда и везде - это будет не фигня. Будет самый настоящий говнокодище. Говнокод к слипу не имеет отношения. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.03.2021, 16:51 |
|
||
|
пустой Service кушает до 15% ресурсов CPU
|
|||
|---|---|---|---|
|
#18+
rgreat К слипу это не имеет отношения. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.03.2021, 16:53 |
|
||
|
пустой Service кушает до 15% ресурсов CPU
|
|||
|---|---|---|---|
|
#18+
YuRock Неоднократно предлагалось несколько нормальных решений этой проблемы: 1. Отказаться от ServiceExecute; YuRock 2. Использовать вместо Sleep MsgWait. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.03.2021, 16:57 |
|
||
|
пустой Service кушает до 15% ресурсов CPU
|
|||
|---|---|---|---|
|
#18+
asutp2 еще раз, а где пруфы на подобные решения, например на стековерфлоу? на тикеты или хотя бы темы на форуме у Эмбы? asutp2 Написание собственного аналога TServiceThread? Ошуительно, с учетом того, что получим аналогичный результат. Бред какой. Не нужно ничего писать, никакого TServiceThread. Достаточно пустого потомка от TThread, в Execute которого - только работа, без всяких слипов и дебильной выкрутки никому не нужных сообщений. asutp2 YuRock2. Использовать вместо Sleep MsgWait. Я лично противник этого подхода (не отрицая, при этом, что он существует). Потому искать такой рабочий код, а тем более писать - мне лень. Ты же хочешь сравнить для общего развития - ты и пиши. Для меня это бесполезно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.03.2021, 17:03 |
|
||
|
пустой Service кушает до 15% ресурсов CPU
|
|||
|---|---|---|---|
|
#18+
YuRock Ну конечно. Секунда моей жизни стоит дорого, я лично не хочу ее ждать при закрытии потока. Ты как хочешь. Так и вижу как ты весь рабочий день вручную, на сервере перезапускаешь сервисы, прямо вот аж каждые 5 минут. С учетом потраты ~6 секунд в час за рабочий день будет "бесцельно потрачено" менее 1-й минуты времени. Подозреваю что прикручивание к сервису эвентов по времени обойдется тебе дороже. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.03.2021, 17:05 |
|
||
|
пустой Service кушает до 15% ресурсов CPU
|
|||
|---|---|---|---|
|
#18+
rgreat YuRock Ну конечно. Секунда моей жизни стоит дорого, я лично не хочу ее ждать при закрытии потока. Ты как хочешь. Так и вижу как ты весь рабочий день вручную, на сервере перезапускаешь сервисы, аж каждые 5 минут. С учетом потраты ~6 секунд в час за рабочий день будет "бесцельно потрачено" менее 1-й минуты времени. Таки ждать секунду - раздражает (когда знаешь, что можно было бы не ждать), хоть раз в неделю. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.03.2021, 17:09 |
|
||
|
пустой Service кушает до 15% ресурсов CPU
|
|||
|---|---|---|---|
|
#18+
YuRock, ну вот видишь - дошли до пруфов и до конкретики, так опять сразу "ничего нет" и "лениво". А вот если бы кто нибудь из экспертов привел простейший код службы, с одним потоком и без TServiceThread, и который кошерно работает - то и проблема у ТС была бы решена, и для других полезный навык. А иначе это всё лишь треп ниочем. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.03.2021, 17:10 |
|
||
|
пустой Service кушает до 15% ресурсов CPU
|
|||
|---|---|---|---|
|
#18+
asutp2 который кошерно работает - то и проблема у ТС была бы решена Кошерный код для такой задачи пишется так: File-New-Service. Копипастить не вижу смысла. asutp2 А иначе это всё лишь треп ниочем. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.03.2021, 17:21 |
|
||
|
пустой Service кушает до 15% ресурсов CPU
|
|||
|---|---|---|---|
|
#18+
работает в службах на разных серверах 24/7, загрузка ЦП 0%, это плохо, да? Код: pascal 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.03.2021, 17:26 |
|
||
|
пустой Service кушает до 15% ресурсов CPU
|
|||
|---|---|---|---|
|
#18+
cptngrb, ты что, меня за sleep(100) обвинили во всех грехах, какие только возможны))) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.03.2021, 17:27 |
|
||
|
пустой Service кушает до 15% ресурсов CPU
|
|||
|---|---|---|---|
|
#18+
cptngrb работает в службах на разных серверах 24/7, загрузка ЦП 0%, это плохо, да? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.03.2021, 17:28 |
|
||
|
пустой Service кушает до 15% ресурсов CPU
|
|||
|---|---|---|---|
|
#18+
cptngrbзагрузка ЦП 0%, это плохо, да? Да, это плохо. Смотреть загрузку ЦП исключительно таск менеджером это как минимум непрофессионально. Так же непрофессионально как ничего не делающая программа. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.03.2021, 17:32 |
|
||
|
пустой Service кушает до 15% ресурсов CPU
|
|||
|---|---|---|---|
|
#18+
YuRock asutp2 который кошерно работает - то и проблема у ТС была бы решена Кошерный код для такой задачи пишется так: File-New-Service. Копипастить не вижу смысла. asutp2 А иначе это всё лишь треп ниочем. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.03.2021, 17:33 |
|
||
|
пустой Service кушает до 15% ресурсов CPU
|
|||
|---|---|---|---|
|
#18+
Dimitry Sibiryakov, переключение контекста тоже в норме вроде. Где еще смотрят? Я ProcessExplorer'ом смотрю ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.03.2021, 17:35 |
|
||
|
пустой Service кушает до 15% ресурсов CPU
|
|||
|---|---|---|---|
|
#18+
Dimitry Sibiryakov cptngrbзагрузка ЦП 0%, это плохо, да? Да, это плохо. Смотреть загрузку ЦП исключительно таск менеджером это как минимум непрофессионально. Так же непрофессионально как ничего не делающая программа. Конспектируем: 1. TService.Execute использовать нельзя, только собственная реализация. В Эмбе криворуки. 2. Диспетчер задач Windows использовать нельзя. В Microsoft криворуки. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.03.2021, 17:35 |
|
||
|
пустой Service кушает до 15% ресурсов CPU
|
|||
|---|---|---|---|
|
#18+
Dimitry Sibiryakov Так же непрофессионально как ничего не делающая программа. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.03.2021, 17:38 |
|
||
|
пустой Service кушает до 15% ресурсов CPU
|
|||
|---|---|---|---|
|
#18+
asutp2, последний вопрос: синица, воробей, птица, утка. Что лишнее? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.03.2021, 17:40 |
|
||
|
пустой Service кушает до 15% ресурсов CPU
|
|||
|---|---|---|---|
|
#18+
YuRock Ты забываешь, что нервы с возрастом - ни к черту ;) Таки ждать секунду - раздражает (когда знаешь, что можно было бы не ждать), хоть раз в неделю. Вообще-то, при Sleep(1000) лишнее ожидание составит в среднем пол секунды. Но если это сложно, легким движением руки меняем Sleep(1000) на Sleep(100) и получаем "ожидание" в 50 мс. Даже очень мнительный человек этого уже не заметит. Ни в сервис менеджере, ни в таск менеджере. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.03.2021, 18:04 |
|
||
|
пустой Service кушает до 15% ресурсов CPU
|
|||
|---|---|---|---|
|
#18+
Я так понимаю, что православно использовать Event , но со sleep читать код проще и если у тебя не высоко-глубоко нагруженная система и никто из профессионалов не будет оценивать твой код, то нормально ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.03.2021, 18:07 |
|
||
|
пустой Service кушает до 15% ресурсов CPU
|
|||
|---|---|---|---|
|
#18+
cptngrb Я так понимаю, что православно использовать Event , но со sleep читать код проще и если у тебя не высоко-глубоко нагруженная система и никто из профессионалов не будет оценивать твой код, то нормально Прекрасно работать будет что так что так, если ошибок в коде не наделать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.03.2021, 18:11 |
|
||
|
пустой Service кушает до 15% ресурсов CPU
|
|||
|---|---|---|---|
|
#18+
asutp2 YuRock пропущено... ТС не озвучил задачу. У него в бесконечном цикле ничего не происходит. Кошерный код для такой задачи пишется так: File-New-Service. Копипастить не вижу смысла. пропущено... Если человек не способен воспринимать информацию и делать выводы - то для него - всё трёп. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.03.2021, 18:33 |
|
||
|
пустой Service кушает до 15% ресурсов CPU
|
|||
|---|---|---|---|
|
#18+
rgreat Вообще-то, при Sleep(1000) лишнее ожидание составит в среднем пол секунды. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.03.2021, 18:35 |
|
||
|
пустой Service кушает до 15% ресурсов CPU
|
|||
|---|---|---|---|
|
#18+
asutp2ТС на первой странице темы написал, что в первом сообщении ошибочно вырезал полезную нагрузку Если сервис работает и что-то делает, то потребление процессора это нормально. Если сервис ничего не делает, то его работа ждать внешних воздействий. Sleep не вписывается ни в первый вариант (поскольку мешает дело делать), ни во второй (поскольку мешает реагировать на эти самые воздействия). Если кому-то нравится разогревать воздух крутя холостой цикл, то это действительно его религиозные проблемы. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.03.2021, 18:57 |
|
||
|
пустой Service кушает до 15% ресурсов CPU
|
|||
|---|---|---|---|
|
#18+
YuRock asutp2 пропущено... Другими словами, реального кода ты предоставить не можешь... Да и вообще показательно, что никто из тех, кто яростно поливает использование sleep(), не смогли предоставить работающее решение ТС-у. Чтобы человек смог доработать свой код, получив в результате работающий сервис с оптимальной нагрузкой на проц и работающий по кошерному. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.03.2021, 19:52 |
|
||
|
пустой Service кушает до 15% ресурсов CPU
|
|||
|---|---|---|---|
|
#18+
asutp2Да и вообще показательно, что никто из тех, кто яростно поливает использование sleep(), не смогли предоставить работающее решение ТС-у. Ты серьёзно пропустил ВСЕ упоминания WaitForXXXObjects в этом топике или просто настолько тупо троллишь мстя за топик где из тебя так и не смогли вытрясти пример беспроблемной работы с PNG в FMX?.. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.03.2021, 20:06 |
|
||
|
пустой Service кушает до 15% ресурсов CPU
|
|||
|---|---|---|---|
|
#18+
Dimitry Sibiryakov, Ну так-то нормальных рабочих примеров как работать иначе тут и не было. Максимально близкий к реальности "пример" вот: 22294712 Но он, скажем так, не полон. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.03.2021, 20:16 |
|
||
|
пустой Service кушает до 15% ресурсов CPU
|
|||
|---|---|---|---|
|
#18+
Dimitry Sibiryakov asutp2Да и вообще показательно, что никто из тех, кто яростно поливает использование sleep(), не смогли предоставить работающее решение ТС-у. Ты серьёзно пропустил ВСЕ упоминания WaitForXXXObjects в этом топикеВот как раз и хочется увидеть реальное использование WaitForXXXObjects в рамках задачи ТС. Ты видимо тоже не можешь привести работающий пример?) Dimitry Sibiryakov просто настолько тупо троллишь мстя за топик где из тебя так и не смогли вытрясти пример беспроблемной работы с PNG в FMX?.. А вообще, если кто нибудь всё таки сподобится и выложит работающий кошерный код в рамках задачи ТС, то не вопрос, покажу код работы с png в fmx. Там действительно все элементарно, в fmx работа с графикой хоть и тормознее, но проще. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.03.2021, 20:20 |
|
||
|
пустой Service кушает до 15% ресурсов CPU
|
|||
|---|---|---|---|
|
#18+
asutp2Ты видимо тоже не можешь привести работающий пример?) А ничего, что свой пример на несколько страниц раньше, я практически скопипастил с реально работающего проекта?.. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.03.2021, 20:36 |
|
||
|
пустой Service кушает до 15% ресурсов CPU
|
|||
|---|---|---|---|
|
#18+
asutp2 А вообще, если кто нибудь всё таки сподобится и выложит работающий кошерный код в рамках задачи ТС, то не вопрос, покажу код работы с png в fmx. Там действительно все элементарно, в fmx работа с графикой хоть и тормознее, но проще. Код: pascal 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55. 56. 57. 58. 59. 60. 61. 62. 63. 64. 65. 66. 67. 68. 69. 70. 71. 72. 73. 74. 75. 76. 77. 78. 79. 80. 81. 82. 83. 84. 85. 86. 87. 88. Гони код. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.03.2021, 20:36 |
|
||
|
пустой Service кушает до 15% ресурсов CPU
|
|||
|---|---|---|---|
|
#18+
rgreat, так это же не сервис, а просто оконное приложение с доп потоком))) здесь как раз вопросов нет интересует реализация в сервисе. upd: проверку загрузки ЦП я буду проверять в первую очередь) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.03.2021, 20:45 |
|
||
|
пустой Service кушает до 15% ресурсов CPU
|
|||
|---|---|---|---|
|
#18+
Dimitry Sibiryakov asutp2Ты видимо тоже не можешь привести работающий пример?) А ничего, что свой пример на несколько страниц раньше, я практически скопипастил с реально работающего проекта?.. дай ссылку на это сообщение, чтобы я ничего не перепутал... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.03.2021, 20:46 |
|
||
|
пустой Service кушает до 15% ресурсов CPU
|
|||
|---|---|---|---|
|
#18+
asutp2 rgreat, так это же не сервис, а просто оконное приложение с доп потоком))) здесь как раз вопросов нет интересует реализация в сервисе Вместо TThread используешь TService. Остальное по аналогии. Там даже функции почти так же называются. И даже проще, ибо не надо городить свой конструктор с деструктором. У TService изначально события такие есть. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.03.2021, 20:48 |
|
||
|
пустой Service кушает до 15% ресурсов CPU
|
|||
|---|---|---|---|
|
#18+
asutp2 А вообще, если кто нибудь всё таки сподобится и выложит работающий кошерный код в рамках задачи ТС cptngrb Код: pascal 1. Dimitry Sibiryakov Если сервис работает и что-то делает, то потребление процессора это нормально. Если сервис ничего не делает, то его работа ждать внешних воздействий. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.03.2021, 21:17 |
|
||
|
пустой Service кушает до 15% ресурсов CPU
|
|||
|---|---|---|---|
|
#18+
rgreat Гони код. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.03.2021, 21:30 |
|
||
|
пустой Service кушает до 15% ресурсов CPU
|
|||
|---|---|---|---|
|
#18+
asutp2, Как уже ранее заметили - это не тот код. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.03.2021, 21:32 |
|
||
|
пустой Service кушает до 15% ресурсов CPU
|
|||
|---|---|---|---|
|
#18+
_Vasilisk_, если ты про мой пример, то я проверяю ошибки в группах потоков, где флаг это байт, 0-все хорошо, 1-плохо, в других потоках я просто присваиваю при критической ошибке флагу = 1, а в службе проверяю. в зависимости от ошибок, либо перезапускаю службу, либо перезапускаю пул потоков. в самом коде это выглядит примерно так Код: pascal 1. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.03.2021, 21:41 |
|
||
|
пустой Service кушает до 15% ресурсов CPU
|
|||
|---|---|---|---|
|
#18+
rgreat asutp2, Как уже ранее заметили - это не тот код. И вообще достаточно интересно - в текущей теме никто, кроме тебя не соизволил привести работающий код (и то твой код далеко не про сервис и далеко не полный, так ведь :-) ) А я должен написать полноценный метод, решающий все проблемы в отрисовке? ))) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.03.2021, 21:50 |
|
||
|
пустой Service кушает до 15% ресурсов CPU
|
|||
|---|---|---|---|
|
#18+
asutp2, Заметь ты это сам начал. ;) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.03.2021, 21:51 |
|
||
|
пустой Service кушает до 15% ресурсов CPU
|
|||
|---|---|---|---|
|
#18+
asutp2 Bitmap.SetSize и т.д... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.03.2021, 21:59 |
|
||
|
пустой Service кушает до 15% ресурсов CPU
|
|||
|---|---|---|---|
|
#18+
_Vasilisk_ asutp2 Bitmap.SetSize и т.д... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.03.2021, 22:06 |
|
||
|
пустой Service кушает до 15% ресурсов CPU
|
|||
|---|---|---|---|
|
#18+
cptngrb я проверяю ошибки в группах потоков, где флаг это байт, 0-все хорошо, 1-плохо, в других потоках я просто присваиваю при критической ошибке флагу = 1, Два события сервиса Код: pascal 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. Код: pascal 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. Код: pascal 1. 2. 3. 4. 5. 6. 7. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.03.2021, 22:24 |
|
||
|
пустой Service кушает до 15% ресурсов CPU
|
|||
|---|---|---|---|
|
#18+
... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.03.2021, 23:04 |
|
||
|
пустой Service кушает до 15% ресурсов CPU
|
|||
|---|---|---|---|
|
#18+
_Vasilisk_, это рабочий код или из нотепада? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.03.2021, 23:18 |
|
||
|
пустой Service кушает до 15% ресурсов CPU
|
|||
|---|---|---|---|
|
#18+
классс тема, вы чего курсовой делаете, одна тема на всю группу и кто лучше, у меня оба варианта сервиса уже третий день в тестировании. у обоих полет нормальный, не нашел критичных сбоев при разрывах. пока работа идет дальше, расширяются задания сервисов и тут же тестируются, судя по тексту, многие готовы инвестировать свое время для обсуждения решений, при том читаю, почти одно и тоже в обоих стаканах, Thread или Sleep в цикле. я все прочитал, реально круто, реально все очень много знают, но к сожалению создают не все и реально в "каки" прыгают не все, т.е. с заказчиками ни как, но и даже они тоже молодцы. вот думаю, чтобы еще такого подкинуть, что у меня под вопросом времени лежит ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.03.2021, 23:21 |
|
||
|
пустой Service кушает до 15% ресурсов CPU
|
|||
|---|---|---|---|
|
#18+
Zelius это рабочий код или из нотепада? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.03.2021, 23:27 |
|
||
|
пустой Service кушает до 15% ресурсов CPU
|
|||
|---|---|---|---|
|
#18+
_Vasilisk_ Zelius это рабочий код или из нотепада? еd убрать ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.03.2021, 23:30 |
|
||
|
пустой Service кушает до 15% ресурсов CPU
|
|||
|---|---|---|---|
|
#18+
YuRock TM_TERMINATE: Terminated; еd убрать ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.03.2021, 23:32 |
|
||
|
пустой Service кушает до 15% ресурсов CPU
|
|||
|---|---|---|---|
|
#18+
_Vasilisk_ Прямо здесь писал с выдержками из реальных проектов. В чем-то проблема? Если сразу после создания отправить потоку сообщение, он выдаст ошибку. Т.к. цикл выборки создается после первого PeekMessage тынц ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.03.2021, 10:06 |
|
||
|
пустой Service кушает до 15% ресурсов CPU
|
|||
|---|---|---|---|
|
#18+
_Vasilisk_ Код: pascal 1. почему не так? Код: pascal 1. или Код: pascal 1. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.03.2021, 10:29 |
|
||
|
пустой Service кушает до 15% ресурсов CPU
|
|||
|---|---|---|---|
|
#18+
Uridian почему не так? Код: pascal 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. Fr0sT-Brutal Если сразу после создания отправить потоку сообщение, он выдаст ошибку Fr0sT-Brutal Т.к. цикл выборки создается после первого PeekMessage У меня это делается так Код: pascal 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.03.2021, 11:41 |
|
||
|
пустой Service кушает до 15% ресурсов CPU
|
|||
|---|---|---|---|
|
#18+
Вставлю свои 5 копеек насчёт использования Sleep. Я считаю, что плох не сам факт использования Sleep(10 / 100 / 1000), а непонимание многими программистами того, к каким проблемам он приводит. В штатном менеджере памяти ожидание блокировки блока выполняется через Sleep(1), что убивает масштабируемость многопоточного приложения. Важно знать, что Sleep(1) в менеджере памяти - это плохо, но практически в любой нашей программе он есть. Причем в данном случае плох Sleep(1) не тем, что приводит в увеличению счётчика переключения контекста (это ерунда), а тем, что в реальности Sleep(1) обычно длится 16 мс. Да и 1 миллисекунда - это жутко долго для менеджера памяти. Если ожидание реализовано не через Sleep, а через объект ядра, то при переходе объекта ядра в сигнальное состояние функция WaitForXXX завершается намного быстрее, чем Sleep(1). Работа ждущего потока возобновляется за время от 5 до 50 микросекунд. Но при этом нужно понимать, что во многих задачах не требуется организации ожидания какого-то события с точностью до микросекунды. Тогда Sleep(10 / 100) вполне может быть подходящим вариантом. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.03.2021, 12:46 |
|
||
|
пустой Service кушает до 15% ресурсов CPU
|
|||
|---|---|---|---|
|
#18+
Я так скажу: тот, кто использует WaitForXXX - заводит будильник. Тот, кто использует Sleep - просыпается каждую минуту чтобы посмотреть на часы. Это вопрос личных привычек, конечно, но по-моему, первый выспится лучше. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.03.2021, 13:51 |
|
||
|
пустой Service кушает до 15% ресурсов CPU
|
|||
|---|---|---|---|
|
#18+
DmSer Если ожидание реализовано не через Sleep, а через объект ядра, то при переходе объекта ядра в сигнальное состояние функция WaitForXXX завершается намного быстрее, чем Sleep(1). Работа ждущего потока возобновляется за время от 5 до 50 микросекунд. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.03.2021, 14:21 |
|
||
|
пустой Service кушает до 15% ресурсов CPU
|
|||
|---|---|---|---|
|
#18+
Barmaley57 DmSer Если ожидание реализовано не через Sleep, а через объект ядра, то при переходе объекта ядра в сигнальное состояние функция WaitForXXX завершается намного быстрее, чем Sleep(1). Работа ждущего потока возобновляется за время от 5 до 50 микросекунд. Я в прошлом году этому вопросу уделил очень много времени (во время написания статьи по многопоточному программированию). Поэтому я точно знаю, о чем пишу. "Квант времени в планировщике" - это вообще не в тему! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.03.2021, 14:56 |
|
||
|
пустой Service кушает до 15% ресурсов CPU
|
|||
|---|---|---|---|
|
#18+
DmSer, откуда взялись микросекунды? Что за магия происходит в ядре? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.03.2021, 15:04 |
|
||
|
пустой Service кушает до 15% ресурсов CPU
|
|||
|---|---|---|---|
|
#18+
При переводе объекта в сигнальное состояние ядро НЕМЕДЛЕННО предпринимает попытку возобновить работу ожидающего потока. Оно не ждёт миллисекунды или когда сработает системный таймер. Ядро ОС отыскивает наиболее свободное ядро процессора, ставит ожидающий поток в READY-очередь найденного ядра, а затем формирует программное прерывание для того, чтобы выполнить запуск потока из READY-очереди. Целевое ядро обрабатывает данное прерывание и передаёт контекст управления потоку, который находится в READY-очереди (там может уже и другой поток оказаться, как повезёт). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.03.2021, 15:49 |
|
||
|
пустой Service кушает до 15% ресурсов CPU
|
|||
|---|---|---|---|
|
#18+
. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.03.2021, 15:52 |
|
||
|
пустой Service кушает до 15% ресурсов CPU
|
|||
|---|---|---|---|
|
#18+
DmSer, да, ты прав! Проверил на Win7x64: задержка в среднем 3 мксек. Помнится, ковырял это дело на виндах постарей - там поток просто ставился в живую карусель и ждал своей очереди. Мелкомягкие переделали таки планировщик. Спасибо за инфу! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.03.2021, 16:20 |
|
||
|
пустой Service кушает до 15% ресурсов CPU
|
|||
|---|---|---|---|
|
#18+
Вот что плохо, нет функции типа SetEventAndWaitFor, поскольку довольно часто сразу после SetEvent приходится вставить в ожидание какого-то объекта ядра. Если бы такая функция была, то ожидающий поток можно было бы запускать в контексте текущего потока, а не планировать его на другое ядро и тратить время на программное прерывание. В этом случае многопоточность работала бы более эффективно. А может такая функция и есть. Но мне не попадалась. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.03.2021, 16:29 |
|
||
|
пустой Service кушает до 15% ресурсов CPU
|
|||
|---|---|---|---|
|
#18+
На всякий Код: pascal 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55. 56. 57. 58. 59. 60. 61. 62. 63. 64. 65. 66. 67. 68. 69. 70. 71. 72. 73. 74. 75. 76. 77. 78. 79. 80. 81. 82. 83. 84. 85. 86. 87. 88. 89. 90. 91. 92. 93. 94. 95. 96. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.03.2021, 16:32 |
|
||
|
пустой Service кушает до 15% ресурсов CPU
|
|||
|---|---|---|---|
|
#18+
DmSer В штатном менеджере памяти ожидание блокировки блока выполняется через Sleep(1), что убивает масштабируемость многопоточного приложения. Важно знать, что Sleep(1) в менеджере памяти - это плохо, но практически в любой нашей программе он есть. Посмотрел FastMM4 - там, как я понял, это включается/отключается дефайном NeverSleepOnThreadContention и возможно под линуксом, т.к. только для fpc, и там Sleep - это не виндовый Sleep, а из clib. Но я мог всё неправильно понять, конечно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.03.2021, 17:04 |
|
||
|
пустой Service кушает до 15% ресурсов CPU
|
|||
|---|---|---|---|
|
#18+
DmSer А может такая функция и есть. Но мне не попадалась. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.03.2021, 17:07 |
|
||
|
пустой Service кушает до 15% ресурсов CPU
|
|||
|---|---|---|---|
|
#18+
YuRock DmSer В штатном менеджере памяти ожидание блокировки блока выполняется через Sleep(1), что убивает масштабируемость многопоточного приложения. Важно знать, что Sleep(1) в менеджере памяти - это плохо, но практически в любой нашей программе он есть. Посмотрел FastMM4 - там, как я понял, это включается/отключается дефайном NeverSleepOnThreadContention и возможно под линуксом, т.к. только для fpc, и там Sleep - это не виндовый Sleep, а из clib. Но я мог всё неправильно понять, конечно. По умолчанию идет попытка захвата блокировки, затем Sleep(0), затем Sleep(1). Там используется модуль Windows. Мне кажется было бы эффективнее реализовать цикл хотя бы из сотни Sleep(0), а только потом Sleep(1). В принципе, любой желающий это может сделать в любой момент :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.03.2021, 17:28 |
|
||
|
пустой Service кушает до 15% ресурсов CPU
|
|||
|---|---|---|---|
|
#18+
Barmaley57 DmSer А может такая функция и есть. Но мне не попадалась. Супер! Спасибо! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.03.2021, 17:29 |
|
||
|
пустой Service кушает до 15% ресурсов CPU
|
|||
|---|---|---|---|
|
#18+
В нормальных менеджерах памяти этот цикл вообще без Sleep внутри. Но чисто потому, что там защищаемый кусок кода мал сам по себе и на каждый поток по мере возможности выделяется отдельная куча. Но мы же в разделе Дельфи, а он для "программ, которые работают хоть как-то". Что данный топик и доказывает. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.03.2021, 17:32 |
|
||
|
пустой Service кушает до 15% ресурсов CPU
|
|||
|---|---|---|---|
|
#18+
Dimitry Sibiryakov Но мы же в разделе Дельфи, а он для "программ, которые работают хоть как-то". Что данный топик и доказывает. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.03.2021, 09:39 |
|
||
|
пустой Service кушает до 15% ресурсов CPU
|
|||
|---|---|---|---|
|
#18+
Dimitry Sibiryakov Что данный топик и доказывает. Barmaley57 В других разделах что не программа - то произведение искусства))) - Дорогая, ты не права. ... - Мама, он меня сукой назвал! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.03.2021, 09:46 |
|
||
|
пустой Service кушает до 15% ресурсов CPU
|
|||
|---|---|---|---|
|
#18+
Barmaley57В других разделах что не программа - то произведение искусства))) Ну почему? Раздел C#, вон, для "программ, которые работают хотя бы иногда". Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.03.2021, 13:25 |
|
||
|
пустой Service кушает до 15% ресурсов CPU
|
|||
|---|---|---|---|
|
#18+
рубрика Сибирякова "языки программирования" ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.03.2021, 14:40 |
|
||
|
пустой Service кушает до 15% ресурсов CPU
|
|||
|---|---|---|---|
|
#18+
Из Сибирякова по фразе. (с) Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.03.2021, 16:15 |
|
||
|
пустой Service кушает до 15% ресурсов CPU
|
|||
|---|---|---|---|
|
#18+
всем привет. пишет автор топика, Да Всё классно и еще раз всем спасибо. Но раз уж тут многие ГУРУ, я себя таким не очень считаю, я просто пытаюсь сделать юзерам то что они хотят и как хотят с минимум БАГов, у меня вопрос по службам. Последние версиии XE, т.е. Delphi вроде как мультисистемны, а как мне собрать службу с минимумом запросов в рамках других систем, например под андроид, а лучше и под MAC. P.S. если про службу под Win мне хотелось профессиональное народное мнение, я его получил, то под Android и MAc, я хочу скопмпилировать всё из Delphi. Сейчас доступны три лицении Settle, Berlin и Sydney. СПАСИБО ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.03.2021, 19:12 |
|
||
|
|

start [/forum/topic.php?all=1&fid=58&tid=2037492]: |
0ms |
get settings: |
7ms |
get forum list: |
13ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
159ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
129ms |
get tp. blocked users: |
1ms |
| others: | 206ms |
| total: | 530ms |

| 0 / 0 |
