|
виснет экранная форма
|
|||
---|---|---|---|
#18+
Mizer73, правильно вам сказали вы смотрели реализацию Lines у Memo? как вы думаете, быстро идёт запрос к окну в другом потоке? ... |
|||
:
Нравится:
Не нравится:
|
|||
27.10.2021, 22:12 |
|
виснет экранная форма
|
|||
---|---|---|---|
#18+
shalamyansky YuRock обновлять глобальную переменную через критическую секцию, а в главном потоке - через нее же читать эту переменную по таймеру. Читать-то зачем через критическую секцию? Если читать только для того, чтобы прочитать, не надо себя ограничивать. Вот если читать для того, чтобы по результату обновить, а-ля транзакция, тогда, конечно, да. И заключить в скобки всю транзакцию. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.10.2021, 22:24 |
|
виснет экранная форма
|
|||
---|---|---|---|
#18+
kealon(Ruslan) Mizer73, правильно вам сказали вы смотрели реализацию Lines у Memo? как вы думаете, быстро идёт запрос к окну в другом потоке? очень быстро. у меня в потоке, при отправке и получении данных по сети, идет визуальное отбражение "лампочек" на главной форме. все мигает на ура. гигантские объёмы информации обмена с базой данных в онлайне - ничего не висит. еще обмен данными с принтерами... и т.д. - ничего не висит. все зависание начинается с отрисовки окошек... ... |
|||
:
Нравится:
Не нравится:
|
|||
27.10.2021, 22:37 |
|
виснет экранная форма
|
|||
---|---|---|---|
#18+
wadman Тут и своя очередь не поможет. Причем все происходит, как говориться, in-house, а не где-то в черном ящике системы, за пределами процесса. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.10.2021, 22:42 |
|
виснет экранная форма
|
|||
---|---|---|---|
#18+
Mizer73 не висит. все зависание начинается с отрисовки окошек... тогда и смотрите отрисовку окошек, может у вас GDI объекты не удаляются? (в диспетчере задач можно посмотреть использование GDI-объектов) ... |
|||
:
Нравится:
Не нравится:
|
|||
28.10.2021, 00:03 |
|
виснет экранная форма
|
|||
---|---|---|---|
#18+
wadman 10000 сообщений в очереди. Все висят. Этим не хвастаться нужно, а исправлять. Отправлять запросы в другой поток и ждать ответа и между делом работать с очередью. Когда я понимал, что в очереди 100 сообщений висят, то этого было достаточно для понимания, что проблема не в очередях. 10000 сообщений, Карл! Этого мало. :( Тут и своя очередь не поможет. Если выборка медленней добавления - раскидывать смысла нет, по крайней мере, в моём случае это лишь сильно усложнит процесс. Вообще можно блокировать добавление по достижению лимита, но ситуация с переполнением нештатная, и делать ей отдельную обработку не особо нужно. Но уточню - именно в моём случае. Вот чем виндовые очереди неудобны, так это невозможностью итерации. Можно вычерпать определенный диапазон, да, но проверить количество сообщений в ней уже нельзя. ... |
|||
:
Нравится:
Не нравится:
|
|||
28.10.2021, 10:57 |
|
виснет экранная форма
|
|||
---|---|---|---|
#18+
Mizer73, AQTime тральный думаю поможет понять самые узкие места. Или другой профайлер. Иначе никак, гадать можно бесконечно... ... |
|||
:
Нравится:
Не нравится:
|
|||
28.10.2021, 12:26 |
|
виснет экранная форма
|
|||
---|---|---|---|
#18+
если использовался мемо то вполне возможно автор не знает про beginupdate и endupdate, а без этого добавление строк может превратиться в тот еще тормоз ... |
|||
:
Нравится:
Не нравится:
|
|||
28.10.2021, 12:38 |
|
виснет экранная форма
|
|||
---|---|---|---|
#18+
Оно в любом случае тормоз, поскольку в EDIT принципе не имеет способа добавить строку. Это делается через получение целого текста, его модификацию и посылку обратно. Поэтому TMemo для лога - один из наихудших вариантов. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
28.10.2021, 12:44 |
|
виснет экранная форма
|
|||
---|---|---|---|
#18+
Dimitry Sibiryakov, ну в край то уже не нагоняй, давно не копал, есть в нём добавление правда за 3 вызова оконной функции ... |
|||
:
Нравится:
Не нравится:
|
|||
28.10.2021, 14:38 |
|
виснет экранная форма
|
|||
---|---|---|---|
#18+
kealon(Ruslan)есть в нём добавление правда за 3 вызова оконной функции Вот только TMemo.Lines.Add работает именно как SetText(GetText + Str); Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
28.10.2021, 14:48 |
|
виснет экранная форма
|
|||
---|---|---|---|
#18+
Dimitry Sibiryakov Оно в любом случае тормоз, поскольку в EDIT принципе не имеет способа добавить строку. Это делается через получение целого текста, его модификацию и посылку обратно. Поэтому TMemo для лога - один из наихудших вариантов. я уже давно переписал обмен без TMemo, о чем писал выше. однако - это все ловля блох, не меняющая сути проблемы. ... |
|||
:
Нравится:
Не нравится:
|
|||
29.10.2021, 00:20 |
|
виснет экранная форма
|
|||
---|---|---|---|
#18+
kealon(Ruslan) Mizer73, правильно вам сказали вы смотрели реализацию Lines у Memo? как вы думаете, быстро идёт запрос к окну в другом потоке? уже нет мемо, а суть не поменялась ... |
|||
:
Нравится:
Не нравится:
|
|||
29.10.2021, 00:21 |
|
виснет экранная форма
|
|||
---|---|---|---|
#18+
Mizer73однако - это все ловля блох, не меняющая сути проблемы. Естественно, исходники-то есть только у тебя и только ты можешь разобраться почему они работают так как работают. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
29.10.2021, 00:23 |
|
виснет экранная форма
|
|||
---|---|---|---|
#18+
Mizer73 Dimitry Sibiryakov Оно в любом случае тормоз, поскольку в EDIT принципе не имеет способа добавить строку. Это делается через получение целого текста, его модификацию и посылку обратно. Поэтому TMemo для лога - один из наихудших вариантов. я уже давно переписал обмен без TMemo, о чем писал выше. однако - это все ловля блох, не меняющая сути проблемы. Код: 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.
... |
|||
:
Нравится:
Не нравится:
|
|||
29.10.2021, 00:25 |
|
виснет экранная форма
|
|||
---|---|---|---|
#18+
Dimitry Sibiryakov Mizer73однако - это все ловля блох, не меняющая сути проблемы. Естественно, исходники-то есть только у тебя и только ты можешь разобраться почему они работают так как работают. однако, у меня есть пара процессов в отдельных потоках, которые успешно работают с к компортами - принимают сообщения. оттуда и взял мысль - вынести в отдельный поток обмен данными по сети. скорость обмена- 1-2 сообщения 3-байтовых в секунду. это что, нагрузка? ... |
|||
:
Нравится:
Не нравится:
|
|||
29.10.2021, 00:29 |
|
виснет экранная форма
|
|||
---|---|---|---|
#18+
Mizer73это что, нагрузка? Нет, с этим справился бы и компьютер прошлого века, причём не выходя из энергосберегающего режима. Если ЭТО у тебя тормозит, значит что-то у тебя совершенно запредельно криво и никто на этом форуме даже в пьяном бреду не сможет угадать что именно. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
29.10.2021, 00:33 |
|
виснет экранная форма
|
|||
---|---|---|---|
#18+
Dimitry Sibiryakov Mizer73это что, нагрузка? Нет, с этим справился бы и компьютер прошлого века, причём не выходя из энергосберегающего режима. Если ЭТО у тебя тормозит, значит что-то у тебя совершенно запредельно криво и никто на этом форуме даже в пьяном бреду не сможет угадать что именно. а я не говорю о том, что ЭТО тормозит. я спрашиваю, что может так затормаживать экранные элементы. ... |
|||
:
Нравится:
Не нравится:
|
|||
29.10.2021, 00:50 |
|
виснет экранная форма
|
|||
---|---|---|---|
#18+
ну мы так можем долго гадать на кофейной гуще, ответ - "что-то в основном потоке" тебя устроит? ... |
|||
:
Нравится:
Не нравится:
|
|||
29.10.2021, 01:33 |
|
виснет экранная форма
|
|||
---|---|---|---|
#18+
Mizer73, Так тебе ответили - запредельная? кривизна твоего кода. Имхо, ты взялся за непосильную пока для тебя задачу. Не хватает элементарных знаний по потокам и пользованию профайлером/дебаггером. Другой бы уже давно отпрофилировал и нашёл все бутылочные горлышки, а ты всё сеанс спиритизма на форуме пытаешься устроить ... |
|||
:
Нравится:
Не нравится:
|
|||
29.10.2021, 01:36 |
|
виснет экранная форма
|
|||
---|---|---|---|
#18+
Mizer73 я спрашиваю, что может так затормаживать экранные элементы. ... |
|||
:
Нравится:
Не нравится:
|
|||
29.10.2021, 02:24 |
|
виснет экранная форма
|
|||
---|---|---|---|
#18+
2 Mizer73 А вы так и не показали свой код, который в основном потоке принимает/читает данные из СОМ-порта. Вы стесняетесь его показывать или что? ... |
|||
:
Нравится:
Не нравится:
|
|||
29.10.2021, 02:47 |
|
виснет экранная форма
|
|||
---|---|---|---|
#18+
northener 2 Mizer73 А вы так и не показали свой код, который в основном потоке принимает/читает данные из СОМ-порта. Вы стесняетесь его показывать или что? Изначально было ясно, что проблема в неконсистенции ее. Ну, так мой шар показывает. ... |
|||
:
Нравится:
Не нравится:
|
|||
29.10.2021, 03:27 |
|
виснет экранная форма
|
|||
---|---|---|---|
#18+
Mizer73 а я не говорю о том, что ЭТО тормозит. я спрашиваю, что может так затормаживать экранные элементы. 22389174 - с утечками то всё в порядке, проверили? ... |
|||
:
Нравится:
Не нравится:
|
|||
29.10.2021, 09:31 |
|
виснет экранная форма
|
|||
---|---|---|---|
#18+
Mizer73 Код: 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.
Я извиняюсь, плюсы не очень знаю, но что-то тут полный треш.. При Delete у вас данные уничтожаются, но переменные Count и CountAll не сбрасываются. В итоге это может привести к попытке доступа к несуществующему полю. При Remore у вас уменьшается количество, но кроме того, что затирается Data[y], у вас затирается Data[Count-1]. ... |
|||
:
Нравится:
Не нравится:
|
|||
29.10.2021, 09:49 |
|
|
start [/forum/topic.php?fid=58&msg=40107903&tid=2036886]: |
0ms |
get settings: |
8ms |
get forum list: |
15ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
39ms |
get topic data: |
11ms |
get forum data: |
2ms |
get page messages: |
67ms |
get tp. blocked users: |
1ms |
others: | 266ms |
total: | 415ms |
0 / 0 |