|
|
|
пустой 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?fid=58&msg=40054681&tid=2037492]: |
0ms |
get settings: |
10ms |
get forum list: |
20ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
196ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
52ms |
get tp. blocked users: |
1ms |
| others: | 246ms |
| total: | 544ms |

| 0 / 0 |
