Добро пожаловать в форум, Guest >> Войти | Регистрация | Поиск | Правила | | В избранное | Подписаться | ||
Все форумы / Delphi |
![]() ![]() |
Топик располагается на нескольких страницах: ←Ctrl назад 1 2 3 4 [5] 6 вперед Ctrl→ все |
Док Member Откуда: Казань Сообщений: 7001 |
146%! И на старых машинах иногда завешивает проц вусмерть.
если только в таймере. Интересно, сколько таймеров можно запустить без заметного вреда для софтины? Сообщение было отредактировано: 7 авг 20, 08:30 |
||||||||
7 авг 20, 08:32 [22178915] Ответить | Цитировать Сообщить модератору |
cptngrb Member Откуда: Сообщений: 679 |
мне кажется эта статья описывает многопоточность достаточно хорошо, многое оттуда взять можно [url=]https://forum.vingrad.ru/topic-60076.html[/url] |
7 авг 20, 08:45 [22178921] Ответить | Цитировать Сообщить модератору |
DmSer Member Откуда: Пенза Сообщений: 1347 |
Да, я с нею знакомился. Она не для начинающих. Писалась в те времена, когда программирование было уделом гениев. Очень тяжело усваивается. Думаю, мало кто осилит дочитать более 30% (до БАБ врядли дело дойдет :) |
||||
7 авг 20, 10:36 [22178972] Ответить | Цитировать Сообщить модератору |
s62 Member Откуда: Жуковский Сообщений: 1299 |
|
||||
7 авг 20, 18:50 [22179383] Ответить | Цитировать Сообщить модератору |
roschinspb Member Откуда: С-Пб Сообщений: 1641 |
|
||||
9 авг 20, 04:16 [22179720] Ответить | Цитировать Сообщить модератору |
DmSer Member Откуда: Пенза Сообщений: 1347 |
Добавлен раздел планирование потоков |
9 авг 20, 10:56 [22179749] Ответить | Цитировать Сообщить модератору |
ART-CODE Member Откуда: Сообщений: 1092 |
Может пригодиться и такая инфа: CAS https://ru.wikipedia.org/wiki/Сравнение_с_обменом FAA https://en.wikipedia.org/wiki/Fetch-and-add |
9 авг 20, 18:01 [22179855] Ответить | Цитировать Сообщить модератору |
ART-CODE Member Откуда: Сообщений: 1092 |
spinlock https://ru.wikipedia.org/wiki/Спин-блокировка I/O Completion Ports https://docs.microsoft.com/en-us/windows/win32/fileio/i-o-completion-ports ------ Не всем, и не всегда нужна кроссплатформенность. Бывает, что важнее выжать по-максимуму из возможностей ОС и процессора. |
9 авг 20, 18:15 [22179858] Ответить | Цитировать Сообщить модератору |
Zelius Member Откуда: Россия, Москва Сообщений: 1542 |
s62, Использовал чтото высокоуровневое, просто урл передавал, под капот потока не смотрел |
9 авг 20, 21:11 [22179891] Ответить | Цитировать Сообщить модератору |
DmSer Member Откуда: Пенза Сообщений: 1347 |
Док,
Рано! Кучу материалов изучаю по многопоточности. Что-нибудь получится! :) |
||
13 авг 20, 18:10 [22182112] Ответить | Цитировать Сообщить модератору |
s62 Member Откуда: Жуковский Сообщений: 1299 |
На мой взгляд неплохо или просто хорошо :) написано у Пачеко и Тексейры https://www.for-stydents.ru/informatika/delphi/uchebniki/delphi-5-rukovodstvo-razrabotchika-tom-1-osnovnye-metody-i-tehnologii-programmirovaniya.html Хотя книжка старая, 2000 года. Глава 11 "Создание многопоточных приложений". По-моему довольно простое, понятное изложение, при этом затронуты разные темы, в том числе многопоточный доступ к БД, графика. Сообщение было отредактировано: 14 авг 20, 13:31 |
||||||||
14 авг 20, 13:31 [22182540] Ответить | Цитировать Сообщить модератору |
DmSer Member Откуда: Пенза Сообщений: 1347 |
Переработан раздел Планирование потоков Пришлось убрать раздел "Роль кэшей процессора", т.к. выяснилось, что кэши процессора практически не играют никакой роли в планировании потоков и переключении контекста, а парить читателю мозги лишней информацией я не хочу. Кто в теме разбирается, посмотрите на предмет того, чтобы не было дезинформации. |
15 авг 20, 14:56 [22183011] Ответить | Цитировать Сообщить модератору |
Kazantsev Alexey Member Откуда: Сообщений: 5091 |
DmSer,
![]()
|
||||
15 авг 20, 15:25 [22183020] Ответить | Цитировать Сообщить модератору |
DmSer Member Откуда: Пенза Сообщений: 1347 |
Я взял это несколько недель назад из их официальной документации, по той же ссылке. Видимо, уже успели поменять. Сообщение было отредактировано: 15 авг 20, 16:31 |
||||||||
15 авг 20, 16:32 [22183034] Ответить | Цитировать Сообщить модератору |
Kazantsev Alexey Member Откуда: Сообщений: 5091 |
Сходи по ссылке и посмотри дату последней модификации страницы. |
||||
15 авг 20, 16:37 [22183035] Ответить | Цитировать Сообщить модератору |
Kazantsev Alexey Member Откуда: Сообщений: 5091 |
Дока от Delphi 2006:![]() |
15 авг 20, 16:44 [22183038] Ответить | Цитировать Сообщить модератору |
DmSer Member Откуда: Пенза Сообщений: 1347 |
Kazantsev Alexey, Такой значит у них бардак в документации. Хорошо что заметили и поправили. |
15 авг 20, 17:09 [22183052] Ответить | Цитировать Сообщить модератору |
DmSer Member Откуда: Пенза Сообщений: 1347 |
Измерил, как зависит количество запущенных потоков на производительность. Запускал 100000 потоков (64-битный компилятор), в каждом лишь такой код: while not Terminated do Sleep(30000) Т.е. потоки тупо ничего не делают. Измерял число операций на 4-х ядрах до запуска и после запуска этих потоков. Выяснилось, что падение производительности составляет 6%. Хотя я думал, что будет намного хуже. Замеры делал с помощью "CalcTimeQuant.exe". Выяснилось, что 3 из 4-х ядер вообще не замечают этих спящих потоков и выдают максимальную производительность. Производительность падает грубо говоря только на одном ядре (видимо на нем и работает планировщик). |
15 авг 20, 20:57 [22183121] Ответить | Цитировать Сообщить модератору |
DmSer Member Откуда: Пенза Сообщений: 1347 |
Ошибся. Ссылка не та все-таки. Использовал эту ссылку |
||||
15 авг 20, 22:33 [22183150] Ответить | Цитировать Сообщить модератору |
DmSer Member Откуда: Пенза Сообщений: 1347 |
Последний эксперимент дал новые идеи :) Я ещё раз переработал этот раздел! |
||||
16 авг 20, 00:05 [22183179] Ответить | Цитировать Сообщить модератору |
s62 Member Откуда: Жуковский Сообщений: 1299 |
DmSer,
Руссинович и Соломон пишут вот тут https://www.microsoftpressstore.com/articles/article.aspx?p=2233328&seqNum=7 ,
что, начиная с Windows server 2003 данные об очереди готовых к исполнению потоков у каждого процессора своя, так что они могут проверять каждый свою очередь, не блокируя очереди на уровне всей системы. Сообщение было отредактировано: 16 авг 20, 12:37 |
||||
16 авг 20, 12:38 [22183233] Ответить | Цитировать Сообщить модератору |
DmSer Member Откуда: Пенза Сообщений: 1347 |
Классная статья! По ней убеждаюсь, что информация в моей статье в разделе "планирование потоков" более-менее корректная. |
||||||||
16 авг 20, 18:31 [22183285] Ответить | Цитировать Сообщить модератору |
Bred eFeM Member Откуда: Сообщений: 566 |
Просто у этих ребят было добро на публикацию "инсайдерской" инфы от MыSы. Вот ты её же по кусочкам раньше и насобирал. |
||||
17 авг 20, 00:54 [22183322] Ответить | Цитировать Сообщить модератору |
didgik Member Откуда: Сообщений: 967 |
А я вот не понял п4.1 Зачем Sleep() обертывать в WaitTimeout ?
И что тогда использовать вместо Sleep? |
||
4 сен 20, 14:40 [22192161] Ответить | Цитировать Сообщить модератору |
wadman Member Откуда: Санкт-Петербург Сообщений: 27063 |
Например в WaitFor*Object, у которого в аргументах событие, которому можно посигналить извне. |
||||
4 сен 20, 15:24 [22192183] Ответить | Цитировать Сообщить модератору |
Топик располагается на нескольких страницах: ←Ctrl назад 1 2 3 4 [5] 6 вперед Ctrl→ все |
Все форумы / Delphi | ![]() |