|
|
|
Нужна параллельная непараллельность.
|
|||
|---|---|---|---|
|
#18+
Вот такой выходит у меня лог работы 4 процессов. Код: plaintext 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. Код: pascal 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. Работает все как надо... параллельно... но вот нумерация строк в логе не последовательная. И что делать? Заводить очередь сообщений в лог? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.08.2019, 23:36 |
|
||
|
Нужна параллельная непараллельность.
|
|||
|---|---|---|---|
|
#18+
Использовать синхронизацию ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.08.2019, 23:43 |
|
||
|
Нужна параллельная непараллельность.
|
|||
|---|---|---|---|
|
#18+
В каком месте? При генерации событий в процессах? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.08.2019, 23:49 |
|
||
|
Нужна параллельная непараллельность.
|
|||
|---|---|---|---|
|
#18+
Если очень надо в файл и он нужен один, то заводите диспетчер. Ваши процессы логируют в него, а он пишет и следит за нумерацией.. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.08.2019, 00:07 |
|
||
|
Нужна параллельная непараллельность.
|
|||
|---|---|---|---|
|
#18+
Ну да, действительно надо было сделать так: Код: pascal 1. 2. 3. 4. 5. Теперь все выводит как надо. Код: plaintext 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. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.08.2019, 00:11 |
|
||
|
Нужна параллельная непараллельность.
|
|||
|---|---|---|---|
|
#18+
Нет, так неправильно. Я таким образом свел на нет работу потоков. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.08.2019, 00:24 |
|
||
|
Нужна параллельная непараллельность.
|
|||
|---|---|---|---|
|
#18+
Нет, это я неправильно делаю. Нельзя использовать событие в потоке и потом его обрабатывать в основном приложении, смысл потока просто теряется, надо видимо через систему сообщений это делать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.08.2019, 01:15 |
|
||
|
Нужна параллельная непараллельность.
|
|||
|---|---|---|---|
|
#18+
СтрадалецъВ каком месте? При генерации событий в процессах? при использовании разделяемого ресурса Код: pascal 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. Log - если это VCL объект из главного потока, то напрямую к нему добавлять строки из дополнительных потоков нельзя ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.08.2019, 08:45 |
|
||
|
Нужна параллельная непараллельность.
|
|||
|---|---|---|---|
|
#18+
Zelius, описка Код: pascal 1. 2. 3. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.08.2019, 08:48 |
|
||
|
Нужна параллельная непараллельность.
|
|||
|---|---|---|---|
|
#18+
Если задача только в наращивании счетчика, то InterlockedIncrement. Доступ к файлу система сама разрулит ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.08.2019, 10:33 |
|
||
|
Нужна параллельная непараллельность.
|
|||
|---|---|---|---|
|
#18+
Правильное логирование должно быть асинхронным, неблокирующим вызывающего, и сведенным к нулю накладные расходы на вызовы. Иначе лог покажет филькину грамоту почти в прямом смысле этого выражения :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.08.2019, 10:43 |
|
||
|
Нужна параллельная непараллельность.
|
|||
|---|---|---|---|
|
#18+
Вообще да, поток-логгер и очередь записей в него. Только не забыть метки времени генерить при добавлении в очередь, а не при извлечении) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.08.2019, 14:42 |
|
||
|
Нужна параллельная непараллельность.
|
|||
|---|---|---|---|
|
#18+
Или я чего-то не понимаю или лыжи не едут. Переделал на сообщения и теперь параллельность испарилась. Специально замедлил обработку одним процессом и наблюдаю теперь картину последовательного выполнения процессов. Почему плин? Запускаю 6 процессов. Каждый процесс отсылает сообщение и ждет в интервале от 50 до 500 мс. И вот что я вижу. Так отправляю из процесса: Код: pascal 1. 2. 3. 4. 5. а так обрабатываю сообщение: Код: pascal 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.08.2019, 17:03 |
|
||
|
Нужна параллельная непараллельность.
|
|||
|---|---|---|---|
|
#18+
Вам лог куда выводить в файл, на форму в мемо, в бд и т.п. Из готовых можете поставить CodeSiteExpress он в GetIt есть и поможет визуально в реалтайм посмотреть, что происходит... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.08.2019, 21:33 |
|
||
|
Нужна параллельная непараллельность.
|
|||
|---|---|---|---|
|
#18+
СтрадалецъПочему плин? Тут главное код процесса/потока не показывать, чтоб было о чем поугадывать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.08.2019, 08:56 |
|
||
|
Нужна параллельная непараллельность.
|
|||
|---|---|---|---|
|
#18+
Лог, как и индикатор, сейчас мне нужны только для отладки работы класса. Нашел я слона в своем коде: Код: pascal 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. Я обработку зафигачил в критическую секцию и естественно, пока у меня обработка не завершилась, все остальные процессы смирно ждали своей очереди. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.08.2019, 21:33 |
|
||
|
Нужна параллельная непараллельность.
|
|||
|---|---|---|---|
|
#18+
Страдалецъ, Силен, бродяга. Надо будет для студентов в качестве контрпримера запомнить. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.08.2019, 22:04 |
|
||
|
Нужна параллельная непараллельность.
|
|||
|---|---|---|---|
|
#18+
Vlad FСтрадалецъ, Силен, бродяга. Надо будет для студентов в качестве контрпримера запомнить. И даже без try-finally. Вдвойне силён ))) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.08.2019, 08:39 |
|
||
|
Нужна параллельная непараллельность.
|
|||
|---|---|---|---|
|
#18+
И как только раньше без try ecxept/finale писали код? Теперь не кашерно без него. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.08.2019, 13:05 |
|
||
|
Нужна параллельная непараллельность.
|
|||
|---|---|---|---|
|
#18+
СтрадалецъИ как только раньше без try ecxept/finale писали код? Теперь не кашерно без него. когда не было механизмов обработки, тогда и не писали. А TRY-EXCEPT-FINALLY появились в Дельфи, начиная с Delphi 1 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.08.2019, 13:12 |
|
||
|
Нужна параллельная непараллельность.
|
|||
|---|---|---|---|
|
#18+
СтрадалецъИ как только раньше без try ecxept/finale писали код? Теперь не кашерно без него. раньше и на электрогитарах без резиновых перчаток играли :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.08.2019, 16:42 |
|
||
|
Нужна параллельная непараллельность.
|
|||
|---|---|---|---|
|
#18+
СтрадалецъИ как только раньше без try ecxept/finale писали код? Теперь не кашерно без него. Есть элементарная логика и голова на плечах.. Если у вас между Enter и Leave выскочит исключение, то блокировка останется висеть.. Ну а какие "специалисты" так и писали... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.08.2019, 17:44 |
|
||
|
|

start [/forum/topic.php?fid=58&msg=39850861&tid=2039122]: |
0ms |
get settings: |
9ms |
get forum list: |
19ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
147ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
61ms |
get tp. blocked users: |
1ms |
| others: | 224ms |
| total: | 478ms |

| 0 / 0 |
