|
Насколько критично долбить по таймеру функцией SendMessage?
|
|||
---|---|---|---|
#18+
Ну, т.е. разобрался я SendMessage/GetMessage с opal.dll Теперь могу контролировать ее из VB6 непосредственно, это хорошо. Но возник вопрос. Есть некий процесс, выполняемый внутри dll. Он описывается структурой из ряда параметров, его суть характерезующих. {m_param1,m_param2, ...mparamN} ========================= Не умея нормально работать через Dll, я отслеживал основные фазы процесса PhaseA, PhaseB, PhaseC, в C++ коде генерировал файлы, а в VB6 их ловил: Код: plaintext 1. 2. 3.
Код: vbnet 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16.
Естественно файлы генерировались только в критические моменты (при изменениях описывающих процесс параметров) =========================== Обладая "новой технологией" я могу сделать так: Код: vbnet 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.
С одной стороны, я могу получать более точную статистику легкой ценой. С другой стороны, я теперь не знаю, в какие ключевые моменты статистика меняется (те моменты когда я генерировал файлы, потому как теперь m_параметры меняются внутри dll). Т.е. если я например хочу отслеживать как и раньше только ключевые моменты... Самый простой способ приведенный выше: по таймеру долбим SendMessage и получаем в ответ указатель на структуру с тек. параметрами. По хорошему нужны всякие CallBack внутри Opal на интересующую меня тему, но их нет, а писать самому ...C++... я не уверен. Тем более там параметры возвращаются из плагина - другая dll. Т.е. мой вопрос: насколько безобидно посылать SendMessage и обрабатывать результат каждые напр. 0,5 сек . А если процессов не 1, а штук 50-100 параллельных? И намного ли это лучше кидания файлов? С другой стороны непрерывный опрос м.б. даже лучше, т.к. позволит получить индикатор процесса (имеется в виду доступ к более тонким параметрам, кот. меняются непрерывно с отображением ProgressBar например). Вопрос насколько это НЕ ГРУЗИТ? ... |
|||
:
Нравится:
Не нравится:
|
|||
20.08.2012, 05:50 |
|
Насколько критично долбить по таймеру функцией SendMessage?
|
|||
---|---|---|---|
#18+
Что такой сложный вопрос задал? ... |
|||
:
Нравится:
Не нравится:
|
|||
20.08.2012, 18:07 |
|
Насколько критично долбить по таймеру функцией SendMessage?
|
|||
---|---|---|---|
#18+
Ну, разработчик Opal считает что это в порядке вещей. Developer"Normal" depends on who you ask. :-) For something like statistics, I prefer a pull model (timer and call something to get info) to a push model (system calls you back with info) due to all sorts of complicated reasons to do with application writers and possible deadlocks. Use one timer, and thread, for all calls. And if you are using any PC manufactured in the last couple of years, you really have to do a LOT to slow it down. Some low power embedded ARM thing might have a problem, but generally anything desktop or rack mount is incredibly fast, and something like this should not cause an issue. ... |
|||
:
Нравится:
Не нравится:
|
|||
21.08.2012, 20:07 |
|
|
start [/forum/topic.php?fid=60&msg=37922427&tid=2157496]: |
0ms |
get settings: |
10ms |
get forum list: |
14ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
43ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
43ms |
get tp. blocked users: |
2ms |
others: | 16ms |
total: | 145ms |
0 / 0 |