Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Delphi 7 на многопроцессорном компьютере
|
|||
|---|---|---|---|
|
#18+
Доброго дня! Имеется ли какая-либо возможность заставить многопоточное приложение, компилированное на Delphi 7 заставить работать на многопроцессорном компьютере, так, что-бы процессы работали на других ядрах, отличных от основного потока? Всего потоков - штук 60, реально работают 12 - 15. На картинке видно - загружается только 1 процессор, остальные еле-еле шевелятся. В главном окне мышь реагирует через 10-15 секунд :( ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.05.2021, 15:42 |
|
||
|
Delphi 7 на многопроцессорном компьютере
|
|||
|---|---|---|---|
|
#18+
24.05.2021 15:42, BorodaOleg пишет: > Имеется ли какая-либо возможность заставить многопоточное приложение, компилированное на Delphi 7 заставить работать на многопроцессорном компьютере, так, что-бы процессы работали на других ядрах, отличных от основного потока? Всего потоков - штук 60, реально работают 12 - 15. На картинке видно - загружается только 1 процессор, остальные еле-еле шевелятся. В главном окне мышь реагирует через 10-15 секунд :( Этим занимается планировщик Винды. Если есть непреодолимое желание ему помешать, играйся с SetThreadAffinityMask() Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.05.2021, 15:52 |
|
||
|
Delphi 7 на многопроцессорном компьютере
|
|||
|---|---|---|---|
|
#18+
BorodaOleg, Открой для себя потоки и TThread. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.05.2021, 15:53 |
|
||
|
Delphi 7 на многопроцессорном компьютере
|
|||
|---|---|---|---|
|
#18+
BorodaOleg> Имеется ли какая-либо возможность заставить BorodaOleg> многопоточное приложение ... работать на BorodaOleg> многопроцессорном компьютере, так, что-бы BorodaOleg> процессы работали на других ядрах, отличных от основного потока? Заставлять обычно нет нужды, планировщик ОС сам знает какой поток когда и куда кинуть. См. в коде, есть ли привязка к процессору (ну и может у тебя реально вся работа в основном потоке делается, а остальные ждут). Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.05.2021, 15:57 |
|
||
|
Delphi 7 на многопроцессорном компьютере
|
|||
|---|---|---|---|
|
#18+
Если в одном приложении куча потоков, которые занимаются вычислениями, то лучше поставить им приоритет Lower, тогда главный поток программы не будет подвисать. При этом приоритет Lower никак не будет мешать ходу вычислений (при таком количестве ядер). И желательно до минимума сократить работу с динамическими массивами, строками, как можно реже создавать/уничтожать объекты, вызывать GetMem, FreeMem. Или подключить многопоточный менеджер памяти, например tcMalloc (не знаю, как он прицепится к Delphi 7). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.05.2021, 16:08 |
|
||
|
Delphi 7 на многопроцессорном компьютере
|
|||
|---|---|---|---|
|
#18+
BorodaOleg, Ищи Synchronize, Люк! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.05.2021, 16:12 |
|
||
|
Delphi 7 на многопроцессорном компьютере
|
|||
|---|---|---|---|
|
#18+
BorodaOleg заставить работать на многопроцессорном компьютере, так, что-бы процессы работали на других ядрах Нельзя. Это делает операционная система. В теории, можно спуститься на более низкий уровень, но это не правильный путь. BorodaOleg Всего потоков - штук 60, реально работают 12 - 15. На картинке видно - загружается только 1 процессор Значит они реально не работают и написаны очень плохо. Напиши лабу с TStuppidThread и создай 10 потоков. Код: pascal 1. 2. 3. 4. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.05.2021, 16:15 |
|
||
|
Delphi 7 на многопроцессорном компьютере
|
|||
|---|---|---|---|
|
#18+
Valery_B Значит они реально не работают и написаны очень плохо. Ну я так и сказал, что человеку надо открыть для себя потоки. ;) Скриншот таск мэнеджера об этом говорит вполне очевидно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.05.2021, 16:26 |
|
||
|
Delphi 7 на многопроцессорном компьютере
|
|||
|---|---|---|---|
|
#18+
Юмористы, млин :) Synchronize нет, все делается через CriticalSection, TThreadList, Semaphore и пр. В потоках - коннект с COM/GSM/GPRS соединениями, несложная обработка (расшифровка HEX последовательностей от 15 до 1000 байт) и запись в БД firebird. Отдельным потоком лог - тут понятно, жрет не мелко. Если бы винда нормально распределила было бы как минимум 3 потока с "запредельными" нагрузками - Основной поток, лог и FB - сейчас только один и загружен по шею. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.05.2021, 16:38 |
|
||
|
Delphi 7 на многопроцессорном компьютере
|
|||
|---|---|---|---|
|
#18+
BorodaOleg В потоках - коннект с COM/GSM/GPRS соединениями, несложная обработка (расшифровка HEX последовательностей от 15 до 1000 байт) и запись в БД firebird. Отдельным потоком лог - тут понятно, жрет не мелко. А чему тут жрать-то? Если загрузки нет, ищи блокировки главного потока ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.05.2021, 16:46 |
|
||
|
Delphi 7 на многопроцессорном компьютере
|
|||
|---|---|---|---|
|
#18+
24.05.2021 16:38, BorodaOleg пишет: > и запись в БД firebird. какой коннект? какой протокол? сколько коннектов у процесса? Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.05.2021, 16:46 |
|
||
|
Delphi 7 на многопроцессорном компьютере
|
|||
|---|---|---|---|
|
#18+
BorodaOleg, Проблема не в винде а в твоем коде. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.05.2021, 16:46 |
|
||
|
Delphi 7 на многопроцессорном компьютере
|
|||
|---|---|---|---|
|
#18+
BorodaOleg Если бы винда нормально распределила BorodaOleg сейчас только один и загружен по шею. BorodaOleg В главном окне мышь реагирует через 10-15 секунд :( ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.05.2021, 16:50 |
|
||
|
Delphi 7 на многопроцессорном компьютере
|
|||
|---|---|---|---|
|
#18+
При создании каждого потока пишите в лог ThreadId и название класса объекта-потока. Потом откройте ProcessExplorer, откройте для Вашего процесса список потоков и смотрите на загрузку. По ID потока сможете определить, что это за поток и отдельно исследовать, почему он так грузит процессор. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.05.2021, 16:52 |
|
||
|
Delphi 7 на многопроцессорном компьютере
|
|||
|---|---|---|---|
|
#18+
авторОтдельным потоком лог - тут понятно, жрет не мелко. Нужно обязательно буферизовать данные перед записью в лог-файл. Т.е. не писать в лог-файл каждую строку отдельно, а сначала соединить все строки, которые требуется записать, и сохранить их в лог одним действием. У меня в программе очень большой объем записи в лог, но я не могу сказать, что в этом месте есть какая-то проблема с производительностью. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.05.2021, 16:56 |
|
||
|
Delphi 7 на многопроцессорном компьютере
|
|||
|---|---|---|---|
|
#18+
Битва экстрасенсов, мля... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.05.2021, 17:12 |
|
||
|
Delphi 7 на многопроцессорном компьютере
|
|||
|---|---|---|---|
|
#18+
DmSer, Спасибо за совет. ThreadId и ThreadHandle собираю в TList уже давно, не думал что они совпадают c системными. А с логом точно что-то делать нужно, и да, пишется он по 1 строчке ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.05.2021, 17:13 |
|
||
|
Delphi 7 на многопроцессорном компьютере
|
|||
|---|---|---|---|
|
#18+
ThreadId - глобальный, ThreadHandle - у каждого процесса независимая нумерация хэндлов. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.05.2021, 17:16 |
|
||
|
Delphi 7 на многопроцессорном компьютере
|
|||
|---|---|---|---|
|
#18+
BorodaOleg Если бы винда нормально распределила было бы как минимум 3 потока с "запредельными" нагрузками - Основной поток, лог и FB - сейчас только один и загружен по шею. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.05.2021, 17:17 |
|
||
|
Delphi 7 на многопроцессорном компьютере
|
|||
|---|---|---|---|
|
#18+
YuRock BorodaOleg Если бы винда нормально распределила было бы как минимум 3 потока с "запредельными" нагрузками - Основной поток, лог и FB - сейчас только один и загружен по шею. Попахивает "вредными советами" от Остера :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.05.2021, 17:24 |
|
||
|
Delphi 7 на многопроцессорном компьютере
|
|||
|---|---|---|---|
|
#18+
DarkMaster YuRock пропущено... Ну, чтож.. Переустанови винду, раз она плохо потоки менеджерит. Я бы так и сделал, будь у меня такие проблемы! Попахивает "вредными советами" от Остера :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.05.2021, 17:39 |
|
||
|
Delphi 7 на многопроцессорном компьютере
|
|||
|---|---|---|---|
|
#18+
YuRock Ну, чтож.. Переустанови винду, раз она плохо потоки менеджерит. Я бы так и сделал, будь у меня такие проблемы! Надо еще железо новое купить. Обязательно с NVidia RTX 3090, а то без рей-трейсинга многопоточность будет не полной. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.05.2021, 17:53 |
|
||
|
Delphi 7 на многопроцессорном компьютере
|
|||
|---|---|---|---|
|
#18+
24.05.2021 17:53, rgreat пишет: > > Обязательно с NVidia RTX 3090, а то без рей-трейсинга многопоточность будет не полной. кстати, да! поддерживаю. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.05.2021, 17:54 |
|
||
|
Delphi 7 на многопроцессорном компьютере
|
|||
|---|---|---|---|
|
#18+
BorodaOleg, Если нет Synchronize, то надо выяснить на чем тормозит главный поток: жми паузу (Run\Program Pause) и изучай стек главного и прочих потоков (View\Debug Windows\Threads) и возможно там увидешь скрытый Synchronize! от какого нить комопнента с свойством RunEventInMainThread ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.05.2021, 18:08 |
|
||
|
Delphi 7 на многопроцессорном компьютере
|
|||
|---|---|---|---|
|
#18+
Мимопроходящий 24.05.2021 17:53, rgreat пишет: > > Обязательно с NVidia RTX 3090, а то без рей-трейсинга многопоточность будет не полной. кстати, да! поддерживаю. Эх... Жаль у него D7, а не Лазарь + Дельфя :( Советов бы было больше...... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.05.2021, 18:32 |
|
||
|
Delphi 7 на многопроцессорном компьютере
|
|||
|---|---|---|---|
|
#18+
DarkMaster> Советов бы было больше...... Посоветовали бы клавиатуру поменять и монитор протереть? Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.05.2021, 22:20 |
|
||
|
Delphi 7 на многопроцессорном компьютере
|
|||
|---|---|---|---|
|
#18+
Приходит к Горбачёву министр сельского хозяйства и говорит: - Михаил Сергеевич, у нас проблема. По всей стране пошёл куринный мор. Все куры дохнут. Что нам делать? - Повесте в каждом курятнике зелёный круг. Сделали. Приходит тот же министр через несколько дней и говорит: - Михаил Сергеевич, всё равно куры продолжают дохнуть. Что нам делать? - Добавте в зелёный круг красный квадрат. Сделали. Опят приходит министр через несколько дней и говорит: - Не помогает, куры как дохли, так и дохнут. Что делать? - Раскрасте красный квадрат в белый горошек. Сделали и это. Приходит министр ещё через несколько дней и говорит: - Михаил Сергеевич, всё! Все куры в стране сдохли. - Жаль. А у меня ещё столько новых идей осталось. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.05.2021, 22:49 |
|
||
|
Delphi 7 на многопроцессорном компьютере
|
|||
|---|---|---|---|
|
#18+
Если приложение написано так, что потоки используют какой-то порт или прерывание то разнос их по отдельным ядрам или threads ничего не даст. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.05.2021, 22:59 |
|
||
|
Delphi 7 на многопроцессорном компьютере
|
|||
|---|---|---|---|
|
#18+
rgreat Обязательно с NVidia RTX 3090, а то без рей-трейсинга многопоточность будет не полной. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.05.2021, 23:07 |
|
||
|
Delphi 7 на многопроцессорном компьютере
|
|||
|---|---|---|---|
|
#18+
DarkMaster Эх... Жаль у него D7, а не Лазарь + Дельфя :( Советов бы было больше...... да и так тут филиал гадальной комнаты неплохо работает. А ТС молодец, стойко держится, ни строчки секретного кода не показалю ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.05.2021, 00:30 |
|
||
|
Delphi 7 на многопроцессорном компьютере
|
|||
|---|---|---|---|
|
#18+
Vizit0r А ТС молодец, стойко держится, ни строчки секретного кода не показал ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.05.2021, 00:32 |
|
||
|
Delphi 7 на многопроцессорном компьютере
|
|||
|---|---|---|---|
|
#18+
YuRock, Я бы показал, да в проекте ~ 1000000 строк :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.05.2021, 10:54 |
|
||
|
Delphi 7 на многопроцессорном компьютере
|
|||
|---|---|---|---|
|
#18+
BorodaOleg Я бы показал, да в проекте ~ 1000000 строк :) И все они выполняются в разных потоках? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.05.2021, 10:58 |
|
||
|
Delphi 7 на многопроцессорном компьютере
|
|||
|---|---|---|---|
|
#18+
Вообщем всё, вопрос закрыт. Проблема оказалась в логах - они находятся (как оказалось) в главном потоке. В лог летит порядка 50-100 строк в секунду, все это построчно пишется на диск и это всё еще отображается в Memo, причем аж в 2 штуки. Я в шоке. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.05.2021, 11:00 |
|
||
|
Delphi 7 на многопроцессорном компьютере
|
|||
|---|---|---|---|
|
#18+
wadman BorodaOleg Я бы показал, да в проекте ~ 1000000 строк :) И все они выполняются в разных потоках? Не понял... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.05.2021, 11:01 |
|
||
|
Delphi 7 на многопроцессорном компьютере
|
|||
|---|---|---|---|
|
#18+
У "взрослых" лог ведется в отдельным потоке и затраты на него - лишь на отправку сообщения, либо помещение сообщения в свою очередь. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.05.2021, 11:02 |
|
||
|
Delphi 7 на многопроцессорном компьютере
|
|||
|---|---|---|---|
|
#18+
25.05.2021 11:02, wadman пишет: > У "взрослых" лог ведется в отдельным потоке и затраты на него - лишь на отправку сообщения, либо помещение сообщения в свою очередь. ты чо! оно же потеряется!!! (С) зы: реально встречал такую аргументацию Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.05.2021, 11:15 |
|
||
|
Delphi 7 на многопроцессорном компьютере
|
|||
|---|---|---|---|
|
#18+
BorodaOleg Вообщем всё, вопрос закрыт. Проблема оказалась в логах - они находятся (как оказалось) в главном потоке. В лог летит порядка 50-100 строк в секунду, все это построчно пишется на диск и это всё еще отображается в Memo, причем аж в 2 штуки. Я в шоке. Лог в одном потоке - это не проблема. Проблема в том что он не буферизируется. И на каждые 100 строк в секунду формируется блокирование файловой системой (возможно это ожидание sync()) Сделай буферизацию и всё будет очень быстро. В идеале должно быть 2 потока. 1 - ресивер событий. 2 - врайтер в дисковую систему. Между ними - кольцевой буфер. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.05.2021, 11:25 |
|
||
|
Delphi 7 на многопроцессорном компьютере
|
|||
|---|---|---|---|
|
#18+
25.05.2021 11:25, mayton пишет: > В идеале должно быть 2 потока. 1 - ресивер событий. 2 - врайтер в дисковую систему. > Между ними - кольцевой буфер. папа, а ты сейчас с кем разговаривал? (С) Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.05.2021, 11:27 |
|
||
|
Delphi 7 на многопроцессорном компьютере
|
|||
|---|---|---|---|
|
#18+
Или использовать готовый буферизированный fileWriter если такой есть в Delphi. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.05.2021, 11:29 |
|
||
|
Delphi 7 на многопроцессорном компьютере
|
|||
|---|---|---|---|
|
#18+
DmSer Нужно обязательно буферизовать данные перед записью в лог-файл. Т.е. не писать в лог-файл каждую строку отдельно, а сначала соединить все строки, которые требуется записать, и сохранить их в лог одним действием. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.05.2021, 11:42 |
|
||
|
Delphi 7 на многопроцессорном компьютере
|
|||
|---|---|---|---|
|
#18+
В борьбе за перформанс должен быть какой-то компромисс. Возможно лучше потерять пару десятков TRACE-событий чем иметь просто тормознутое приложение. Кстати что в логах? Насколько оно важно? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.05.2021, 11:50 |
|
||
|
Delphi 7 на многопроцессорном компьютере
|
|||
|---|---|---|---|
|
#18+
_Vasilisk_ DmSer Нужно обязательно буферизовать данные перед записью в лог-файл. Т.е. не писать в лог-файл каждую строку отдельно, а сначала соединить все строки, которые требуется записать, и сохранить их в лог одним действием. Глупости! При построчной записи вероятность потерять часть лога при падении программы на порядки выше, чем при записи подготовленного буфера. Сейчас очень популярны безкэшевые SSD-шники. На них запись выполняется ооочень долго. Если писать по одной строчке, то эти строчки будут копиться в ОЗУ гораздо быстрее, чем они будут записываться в лог-файл. И точно часть данных потеряется при падении программы! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.05.2021, 11:54 |
|
||
|
Delphi 7 на многопроцессорном компьютере
|
|||
|---|---|---|---|
|
#18+
mayton Лог в одном потоке - это не проблема. Проблема в том что он не буферизируется. И на каждые 100 строк в секунду формируется блокирование файловой системой (возможно это ожидание sync()) Ничего себе! Не знаю, не сталкивался. А у меня в лог бывает и поболее потоков пишет и куда больше строчек. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.05.2021, 11:54 |
|
||
|
Delphi 7 на многопроцессорном компьютере
|
|||
|---|---|---|---|
|
#18+
Посмотрите как реализован простейший логгер (с комментариями) https://github.com/loginov-dmitry/multithread/blob/master/multithread_in_delphi_for_beginners.md#sync_obj_event_logger там нет ничего лишнего. Кто угодно может адаптировать под себя. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.05.2021, 12:12 |
|
||
|
Delphi 7 на многопроцессорном компьютере
|
|||
|---|---|---|---|
|
#18+
wadman mayton Лог в одном потоке - это не проблема. Проблема в том что он не буферизируется. И на каждые 100 строк в секунду формируется блокирование файловой системой (возможно это ожидание sync()) Ничего себе! Не знаю, не сталкивался. А у меня в лог бывает и поболее потоков пишет и куда больше строчек. И всё заканчивалось переполнением очереди и/или OOM. Помогла буфферизация и сброс в файл по таймауту (каждые 10 миллисекунд пишется то, что накопилось). Да, с таким подходом может что-то потеряться теоретически, да ну и хрен с ним. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.05.2021, 12:15 |
|
||
|
Delphi 7 на многопроцессорном компьютере
|
|||
|---|---|---|---|
|
#18+
wadman, Вот и я сейчас так делаю Дело в том, что проект не мой, я его дорабатываю ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.05.2021, 12:21 |
|
||
|
Delphi 7 на многопроцессорном компьютере
|
|||
|---|---|---|---|
|
#18+
mayton В борьбе за перформанс должен быть какой-то компромисс. Возможно лучше потерять пару десятков TRACE-событий чем иметь просто тормознутое приложение. Кстати что в логах? Насколько оно важно? "-Выходи в окно - Э, дарагой так 3-й этаж - Хочешь интернет - выходи - Э, дарагой мне настолько интернет не нужен" Процесс опроса электросчётчиков - если часть лога "рухнет", не страшно ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.05.2021, 12:26 |
|
||
|
Delphi 7 на многопроцессорном компьютере
|
|||
|---|---|---|---|
|
#18+
DmSer Посмотрите как реализован простейший логгер (с комментариями) https://github.com/loginov-dmitry/multithread/blob/master/multithread_in_delphi_for_beginners.md#sync_obj_event_logger там нет ничего лишнего. Кто угодно может адаптировать под себя. Спасибо, как-раз собирался спросить общество как лучше буферизировать ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.05.2021, 12:29 |
|
||
|
Delphi 7 на многопроцессорном компьютере
|
|||
|---|---|---|---|
|
#18+
25.05.2021 11:42, _Vasilisk_ пишет: > Так что ОС может что-то буферизировать сама при желании можно поиграться с FILE_FLAG_WRITE_THROUGH и FILE_FLAG_NO_BUFFERING Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.05.2021, 12:52 |
|
||
|
Delphi 7 на многопроцессорном компьютере
|
|||
|---|---|---|---|
|
#18+
BorodaOleg mayton В борьбе за перформанс должен быть какой-то компромисс. Возможно лучше потерять пару десятков TRACE-событий чем иметь просто тормознутое приложение. Кстати что в логах? Насколько оно важно? "-Выходи в окно - Э, дарагой так 3-й этаж - Хочешь интернет - выходи - Э, дарагой мне настолько интернет не нужен" Процесс опроса электросчётчиков - если часть лога "рухнет", не страшно Пишет в 1 файл или в несколько? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.05.2021, 13:03 |
|
||
|
Delphi 7 на многопроцессорном компьютере
|
|||
|---|---|---|---|
|
#18+
Товарищи, возвращаемся от обсуждения Delphi7 и личностей участников к обсуждению сабжа. Спасибо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.05.2021, 15:26 |
|
||
|
Delphi 7 на многопроцессорном компьютере
|
|||
|---|---|---|---|
|
#18+
mayton BorodaOleg пропущено... "-Выходи в окно - Э, дарагой так 3-й этаж - Хочешь интернет - выходи - Э, дарагой мне настолько интернет не нужен" Процесс опроса электросчётчиков - если часть лога "рухнет", не страшно Пишет в 1 файл или в несколько? В 1 файл. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.05.2021, 17:01 |
|
||
|
Delphi 7 на многопроцессорном компьютере
|
|||
|---|---|---|---|
|
#18+
25.05.2021 17:01, BorodaOleg пишет: > В 1 файл. при помощи чего обеспечивается сериализация? Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.05.2021, 17:04 |
|
||
|
Delphi 7 на многопроцессорном компьютере
|
|||
|---|---|---|---|
|
#18+
BorodaOleg mayton пропущено... Пишет в 1 файл или в несколько? В 1 файл. А записи - текстовые или двоичные? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.05.2021, 18:19 |
|
||
|
Delphi 7 на многопроцессорном компьютере
|
|||
|---|---|---|---|
|
#18+
BorodaOleg и это всё еще отображается в Memo, причем аж в 2 штуки. Вот тут-то и была ВСЯ засада ))) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.05.2021, 20:42 |
|
||
|
Delphi 7 на многопроцессорном компьютере
|
|||
|---|---|---|---|
|
#18+
Cobalt747 BorodaOleg и это всё еще отображается в Memo, причем аж в 2 штуки. Вот тут-то и была ВСЯ засада ))) Хоть в десять. Я логгер писал в расчете на каждый девайс один мемо и на все девайсы один файл. Ну нет проблем. Целероны 10-летней давности справлялись с 24, 48 и более девайсами, для которым плюс минус 100 мс критично для закрытия сессии. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.05.2021, 22:33 |
|
||
|
Delphi 7 на многопроцессорном компьютере
|
|||
|---|---|---|---|
|
#18+
wadman Cobalt747 пропущено... Вот тут-то и была ВСЯ засада ))) Хоть в десять. Я логгер писал в расчете на каждый девайс один мемо и на все девайсы один файл. Ну нет проблем. Целероны 10-летней давности справлялись с 24, 48 и более девайсами, для которым плюс минус 100 мс критично для закрытия сессии. формируешь сообщения в пул, потом его по таймеру закидываешь в мемо? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.05.2021, 02:08 |
|
||
|
Delphi 7 на многопроцессорном компьютере
|
|||
|---|---|---|---|
|
#18+
mayton BorodaOleg пропущено... В 1 файл. А записи - текстовые или двоичные? Текстовые ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.05.2021, 08:34 |
|
||
|
Delphi 7 на многопроцессорном компьютере
|
|||
|---|---|---|---|
|
#18+
Cobalt747 BorodaOleg и это всё еще отображается в Memo, причем аж в 2 штуки. Вот тут-то и была ВСЯ засада ))) Не вся, после того как одно мемо прибил - тормоза остались. Не такие, конечно, но есть ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.05.2021, 08:35 |
|
||
|
Delphi 7 на многопроцессорном компьютере
|
|||
|---|---|---|---|
|
#18+
Мне кажется тема данного топика неразрывно связана с конфигурацией железа и ОС того сервера где работает приложение по сбору сведений со счетчиков. Если мы исчерпали возможности софта - (сорян я не спец в Delphi и не знаю какие компоненты делают буферизированный вывод и где политики sync, через время или через переполнение буфера - хз) - то предлагаю посмотреть на дисковую подсистему в части свойств дисков. Вот как тут пишут https://winaero.com/disk-write-caching-windows-10/ и для соответсвующей версии сервера (может там 2003-2008). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.05.2021, 09:56 |
|
||
|
Delphi 7 на многопроцессорном компьютере
|
|||
|---|---|---|---|
|
#18+
Vizit0r wadman пропущено... Хоть в десять. Я логгер писал в расчете на каждый девайс один мемо и на все девайсы один файл. Ну нет проблем. Целероны 10-летней давности справлялись с 24, 48 и более девайсами, для которым плюс минус 100 мс критично для закрытия сессии. формируешь сообщения в пул, потом его по таймеру закидываешь в мемо? Очередью занимается ОС. Сообщения можно слать окнам и потокам без какой-либо блокировки и синхронизации. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.05.2021, 10:18 |
|
||
|
Delphi 7 на многопроцессорном компьютере
|
|||
|---|---|---|---|
|
#18+
BorodaOleg Не вся, после того как одно мемо прибил - тормоза остались. Не такие, конечно, но есть Можно попробовать завернуть запись в мемо в конструкцию типа Код: pascal 1. 2. 3. А еще лучше его вообще выкинуть. Очень оно тормозное, особенно на больших объемах данных. Как еще один вариант - просто ограничить число выводимых в мемо строк. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.05.2021, 10:19 |
|
||
|
Delphi 7 на многопроцессорном компьютере
|
|||
|---|---|---|---|
|
#18+
А вообще, нужны ли эти строки в Мемо? Кому они там потребовались? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.05.2021, 11:22 |
|
||
|
Delphi 7 на многопроцессорном компьютере
|
|||
|---|---|---|---|
|
#18+
26.05.2021 11:22, DmSer пишет: > А вообще, нужны ли эти строки в Мемо? Кому они там потребовались? а чтоб видно было, что программа РАБОТАЕТ! Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.05.2021, 11:29 |
|
||
|
Delphi 7 на многопроцессорном компьютере
|
|||
|---|---|---|---|
|
#18+
BorodaOleg Cobalt747 пропущено... Вот тут-то и была ВСЯ засада ))) Не вся, после того как одно мемо прибил - тормоза остались. Не такие, конечно, но есть ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.05.2021, 12:26 |
|
||
|
Delphi 7 на многопроцессорном компьютере
|
|||
|---|---|---|---|
|
#18+
Перенес запись лога в поток. Скорости заметно прибавило. Сделал возможность закрывать Memo, при его закрытии программа начинает работать почти как нужно, чуть-чуть подтормаживает. Но сообщения нужны, они и адресацию, и ошибки выводят, чтобы пользователь ориентироваться мог. Можно, разве что, попытаться уменьшить их количество при выводе на экран, только писать в файл. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.05.2021, 13:12 |
|
||
|
Delphi 7 на многопроцессорном компьютере
|
|||
|---|---|---|---|
|
#18+
BorodaOleg чуть-чуть подтормаживает. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.05.2021, 13:15 |
|
||
|
Delphi 7 на многопроцессорном компьютере
|
|||
|---|---|---|---|
|
#18+
BorodaOlegСделал возможность закрывать Memo Memo - крайне неудачный компонент для лога. Используй ListBox в виртуальном режиме. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.05.2021, 13:28 |
|
||
|
|

start [/forum/topic.php?all=1&fid=58&tid=2037296]: |
0ms |
get settings: |
10ms |
get forum list: |
13ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
158ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
88ms |
get tp. blocked users: |
2ms |
| others: | 265ms |
| total: | 557ms |

| 0 / 0 |
