|
Недокументированная $zu(88,...)
|
|||
---|---|---|---|
#18+
Добрый день всем! Кто знает особенности применения этой недокументированной функции, как получения списка локальных переменных чужого процесса, так и их значений? Судя по всему, как она непредсказуемо работала в старых версиях, так и продолжает в том же духе в последних версиях... ... |
|||
:
Нравится:
Не нравится:
|
|||
24.05.2016, 11:38 |
|
Недокументированная $zu(88,...)
|
|||
---|---|---|---|
#18+
Никогда не было необходимости лезть в чужой процесс, да и не понимаю для чего это может быть нужно можете рассказать как вы это используете ? а вы сами пользуетесь этой zu напрямую, или используете код ISC для этого, я нашел как минимум 2 места которых может быть вполне достаточно, без необходимости использовать zu напрямую, это запросы %SYS.ProcessQuery - VariableByJobNumber %Studio.Global - LocalList ... |
|||
:
Нравится:
Не нравится:
|
|||
24.05.2016, 12:03 |
|
Недокументированная $zu(88,...)
|
|||
---|---|---|---|
#18+
AlexKB , Не используйте недокументированные функции в новых версиях, когда есть документированные %SYSTEM.Memory.VariableStats(), %SYS.ProcessQuery.VariableByJobNumber, исходники которых прилагаются. В них можете посмотреть как правильно использовать $zu(88) в том числе для старых версий. ... |
|||
:
Нравится:
Не нравится:
|
|||
24.05.2016, 12:05 |
|
Недокументированная $zu(88,...)
|
|||
---|---|---|---|
#18+
Да мне как раз нужно использование $z(88,...) в старых версиях, где нету доступа к переменным чужого процесса через объектные методы. Но дело даже не в том. Как Вы обратили внимание, даже использование этой функции в классах от разработчика продукта, имеет место довольно таки странное ...ммм. Читаем переменную один раз, и если равно пусто, то читаем второй раз с манюсенькой задержкой, а почему не три раза..? Все работы с $zu(88,...) обрамляются обработчиками ошибок, так как не обрамляются использование других $ZU(...) функций... Даже где-то в их комментариях прочитал, чтобы исключить случайную ложную ошибку... А уже то, что в некоторых случаях эти функции могут о-очень долго возвращать результат... или возвращать пустое значение переменной, когда на самом деле там уже определена переменная... Или возвращает ошибку что нету процесса, а он на самом деле есть... ...да-а-а. А функция то хорошая. А для чего это нужно, ну это уже третий вопрос - мне вот нужно. Кому-то 300 лет это не нужно. ... |
|||
:
Нравится:
Не нравится:
|
|||
24.05.2016, 12:35 |
|
Недокументированная $zu(88,...)
|
|||
---|---|---|---|
#18+
AlexKBА для чего это нужно, ну это уже третий вопрос - мне вот нужноВ этом то ваша и проблема, так как это практически никому не нужно, поэтому и нет никаких оптимизаций в этом плане. поэтому вам прямая дорога в WRC, и там просите чтобы это заработало лучше. Ах-да, у вас же поддержка старых версий, что тогда вам это даст ? а может вы все таки расскажете как вы это используете ? если это очень большая история, это тоже будет интересно почитать ... |
|||
:
Нравится:
Не нравится:
|
|||
24.05.2016, 12:40 |
|
Недокументированная $zu(88,...)
|
|||
---|---|---|---|
#18+
Думаю, Вы ошибаетесь, это не только меня касается. В портале управления есть функционал - посмотреть переменные выбранного процесса. Этот функционал общедоступен, но базируется он как раз на этих самых функциях. А значит работать должен стабильно, безупречно, или должен быть закрытым от общего пользования. Используя такой функционал я хочу получить список локальных переменных выбранного процесса и их значения, но увы, доступ к переменным некоторых процессов затягивается на многие десятки секунд, а то и на минуты... И все это благодаря неустойчивому механизму работы функции $zu(88,...). Так что это не только моя проблема... А зачем это мне нужно - после обеда напишу. ... |
|||
:
Нравится:
Не нравится:
|
|||
24.05.2016, 12:48 |
|
Недокументированная $zu(88,...)
|
|||
---|---|---|---|
#18+
AlexKBА значит работать должен стабильно, безупречноЗначит нужно точно написать в WRC, чтобы они все пофиксили ... |
|||
:
Нравится:
Не нравится:
|
|||
24.05.2016, 12:54 |
|
Недокументированная $zu(88,...)
|
|||
---|---|---|---|
#18+
DAiMor, В моем случае это уже поздно, поскольку версия Каше еще 4-ка, так что никто ничем уже не поможет... А вот то, что в новых версиях похожие проблемы(если это можно назвать проблемой а не особенностью) все-таки остались, немножко помрачает настроение... ... |
|||
:
Нравится:
Не нравится:
|
|||
24.05.2016, 13:31 |
|
Недокументированная $zu(88,...)
|
|||
---|---|---|---|
#18+
AlexKBДа мне как раз нужно использование $z(88,...) в старых версиях, где нету доступа к переменным чужого процесса через объектные методы.Сделайте свои объектные методы, если конечно позволяет API у старых DLL.AlexKBКак Вы обратили внимание, даже использование этой функции в классах от разработчика продукта, имеет место довольно таки странное ...ммм. Читаем переменную один раз, и если равно пусто, то читаем второй раз с манюсенькой задержкой, а почему не три раза..?Вы наверное смотрели VariableByJobNumber, где логика завязана на множестве входных данных. Посмотрите VariableStats: компактный код, чтение один раз и никаких доп.задержек (по крайней мере в 2016.3).AlexKBВ портале управления есть функционал - посмотреть переменные выбранного процесса. Этот функционал общедоступен, но базируется он как раз на этих самых функциях. А значит работать должен стабильно, безупречно, или должен быть закрытым от общего пользования.Не замечал проблем: показывает быстро и стабильно. Вы при подключении используете SSL/TLS? Так как были задержки с отображением именно при SSL. Но это было давно, ещё в 2009. С тех пор исправили. ^JOBEXAM тоже тормозит и глючит?AlexKBА вот то, что в новых версиях похожие проблемы(если это можно назвать проблемой а не особенностью) все-таки остались, немножко помрачает настроение...И Вы конечно же уже писали в WRC и Вам там что-то ответили. Что именно Вам ответили? ... |
|||
:
Нравится:
Не нравится:
|
|||
24.05.2016, 13:46 |
|
Недокументированная $zu(88,...)
|
|||
---|---|---|---|
#18+
servit, У меня нет возможности посмотреть на версии иной, чем 2015.1, в данный момент. Не спорю, может в новой все уже улучшено, при случае посмотрю. Тут все зависит от инспектируемого процесса и в каком он находится состоянии. А Вы попробуйте посмотреть переменные у процесса, который является конкурирующим TCP сервером и в данный момент ждет входящего соединения. для отображения 3-5 переменных проходит секунд 20... А вот другие процессы отображают список переменных быстро, даже довольно таки большой список. Такие же задержки происходят и при сканировании локальных переменных процесса, который находится на ожидании блокировки, да и еще в каких-то случаях... В WRC я не писал - функция не документирована и они вправе не отвечать на мой вопрос. Вот попробовал Ensemble 2016.2 то же самое - задержки. Нет, проблема, или особенность остается прежней!!! ... |
|||
:
Нравится:
Не нравится:
|
|||
24.05.2016, 14:11 |
|
Недокументированная $zu(88,...)
|
|||
---|---|---|---|
#18+
Ensemble 2016.2 --- 50 сек для отображения 4 переменных грустно, девицы - говорил О.Бендер. Похоже, что это все-таки некая особенность, разработчики просто не могли бы этого не заметить... ... |
|||
:
Нравится:
Не нравится:
|
|||
24.05.2016, 14:20 |
|
Недокументированная $zu(88,...)
|
|||
---|---|---|---|
#18+
AlexKBEnsemble 2016.2 --- 50 сек для отображения 4 переменных AlexKB, возможно представить минимальный код TCP сервера/чего угодно требующего подобного времени на отображение? ... |
|||
:
Нравится:
Не нравится:
|
|||
24.05.2016, 14:35 |
|
Недокументированная $zu(88,...)
|
|||
---|---|---|---|
#18+
AlexKBВ WRC я не писал - функция не документирована и они вправе не отвечать на мой вопрос.Недокументирована $zu(88), про неё писать и не нужно. Достаточно указать воспроизводимый пример с Порталом. Поскольку не писали в WRC, постольку и не будет исправлено. ... |
|||
:
Нравится:
Не нравится:
|
|||
24.05.2016, 14:35 |
|
Недокументированная $zu(88,...)
|
|||
---|---|---|---|
#18+
eduard93, найдите в портале процесс с параметрами устройство-|TCP|1972-или другое область-%SYS программа-%SYS.SERVER, посмотрите список переменных этого процесса. код от разработчика. смотрите, засекайте время, делайте выводы. ... |
|||
:
Нравится:
Не нравится:
|
|||
24.05.2016, 14:46 |
|
Недокументированная $zu(88,...)
|
|||
---|---|---|---|
#18+
servit, я почему-то склонен думать, что разработчики знают об этом. Слишком уж очевидно. Также анализ кода от разработчика, в данном контексте, наводит меня на мысль, что они знают об этом. Поэтому я склонен считать, что это все таки особенность. А жаль... ... |
|||
:
Нравится:
Не нравится:
|
|||
24.05.2016, 14:49 |
|
Недокументированная $zu(88,...)
|
|||
---|---|---|---|
#18+
Ну так что, неужто ни у кого не проявилось нечто подобное? Я эту картину наблюдаю примерно с 2000 года... Пока без изменений... ... |
|||
:
Нравится:
Не нравится:
|
|||
24.05.2016, 15:08 |
|
Недокументированная $zu(88,...)
|
|||
---|---|---|---|
#18+
AlexKBЯ эту картину наблюдаю примерно с 2000 года...Картину Вы наблюдаете, но не потрудились до сих пор сообщить в WRC. Зачем же тогда писать сюда?AlexKBя почему-то склонен думать, что разработчики знают об этом. Слишком уж очевидно.Нет, не знают, потому что используют английский.AlexKBнайдите в портале процесс с параметрами устройство-|TCP|1972-или другое область-%SYS программа-%SYS.SERVER, посмотрите список переменных этого процессаIt's impossible! Попробуйте в Портале поменять "Предпочтительный язык для этой сессии" на английский и повторить попытку. Ничего не замечаете? PS: в WRC уже написал (если гора не идёт к ...). ... |
|||
:
Нравится:
Не нравится:
|
|||
24.05.2016, 15:34 |
|
Недокументированная $zu(88,...)
|
|||
---|---|---|---|
#18+
servit, Разработчики знали об этом даже тогда, когда портала не было. Это было очевидно по их коду использующему функцию $zu(88,...). Достаточно поработать в терминале. А переключение языка всего лишь вскрывает очередную недоработку (для русского языка). А писал я сюда, с надеждой узнать - использует ли кто данную функцию, если использует, то каким образом учитывает ее особенности (помимо того, как их учитывает разработчик), было бы очень интересно узнать... Похоже, что не использует ее подавляющее большинство...Вот разве что А.Маслов..? ... |
|||
:
Нравится:
Не нравится:
|
|||
24.05.2016, 15:52 |
|
Недокументированная $zu(88,...)
|
|||
---|---|---|---|
#18+
AlexKBА писал я сюда, с надеждой узнать - использует ли кто данную функцию, если использует, то каким образом учитывает ее особенности (помимо того, как их учитывает разработчик), было бы очень интересно узнать... Похоже, что не использует ее подавляющее большинство...А Вы на DC напишите: там аудитория побольше. ... |
|||
:
Нравится:
Не нравится:
|
|||
24.05.2016, 16:47 |
|
Недокументированная $zu(88,...)
|
|||
---|---|---|---|
#18+
AlexKBПохоже, что не использует ее подавляющее большинство...Вот разве что А.Маслов..?Угадал. Ситуации есть, когда это надо. Например, выводится список процессов пользователей, и необходимо показать их имена, которые хранятся (surprise!) в переменных процессов. Но я давно подменил её прямое использование вызовом следующего метода (публикую несколько упрощая): Код: 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.
Как видно по коду, "танцы с бубном" возникли именно в связи с развитием модели безопасности Cache; не припомню проблем в старых версиях. ... |
|||
:
Нравится:
Не нравится:
|
|||
24.05.2016, 16:56 |
|
Недокументированная $zu(88,...)
|
|||
---|---|---|---|
#18+
Alexey Maslov, Хоть кто-то использует подобное... Дело в том, что я хотел быстрым образом автоматически сканировать фоновые процессы и по значениям локальных переменных процессов судить об их активности, интенсивности, других моментах их текущего рабочего состояния. При этом я мог бы делать определенные выводы, давать указания процессам на снижение своей активности, приостанавливать и возобновлять их работу, давать указания на прекращение их работы (мягкое, самостоятельное прекращение), запускать аналогичные процессы и многое другое. Но увы, нестабильная работа функции $zu(88,...) не позволяет мне этого делать, задержки в несколько десятков секунд для получения значения нескольких переменных, а иногда и возврат пустых значений этих переменных (когда я точно знаю, что там есть значения), не говоря уже о других приколах работы функции, не позволяет мне пользоваться таким приемом. ...такова печалька... ... |
|||
:
Нравится:
Не нравится:
|
|||
25.05.2016, 09:03 |
|
Недокументированная $zu(88,...)
|
|||
---|---|---|---|
#18+
AlexKB, а заставить процессы мониторить в глобаль ежеминутно. (пусть сами про себя пишут) ... |
|||
:
Нравится:
Не нравится:
|
|||
25.05.2016, 10:47 |
|
Недокументированная $zu(88,...)
|
|||
---|---|---|---|
#18+
AlexKB, по идее, задержки при опросе процесса не должны превышать длительности кванта ОС. У нас данная функция используется относительно редко, негативных отзывов пока не было. А следить за производительностью процессов, пожалуй, лучше/проще, используя те же метрики, что и ^PERFMON. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.05.2016, 10:48 |
|
Недокументированная $zu(88,...)
|
|||
---|---|---|---|
#18+
А мне как раз нужно было интенсивное использование $zu(88,...) Понятное дело, что я буду теперь искать другие способы, благо в Каше есть запас на этот случай. Жалко, что такая хорошая функция и так неустойчиво работает, может поэтому она так и осталась в разряде недокументированных для внутреннего использования разработчиками продукта... На этом собственно и все на этот счет... Всем спасибо! ... |
|||
:
Нравится:
Не нравится:
|
|||
25.05.2016, 11:01 |
|
|
start [/forum/topic.php?fid=39&msg=39242171&tid=1556471]: |
0ms |
get settings: |
9ms |
get forum list: |
14ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
39ms |
get topic data: |
10ms |
get forum data: |
3ms |
get page messages: |
49ms |
get tp. blocked users: |
1ms |
others: | 278ms |
total: | 409ms |
0 / 0 |