Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Как узнать объекты ссылающиеся на нужный объект
|
|||
|---|---|---|---|
|
#18+
Здравствуйте! Подскажите, пожалуйста, как можно увидеть объекты ссылающихся на нужный объект. Система имеет уже больше 200 классов, и очень сложно порой отследить почему у одного объекта не вызвался %OnClose, либо не вызывается %OnOpen, так как элемент уже кем, то держится. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.02.2008, 09:15 |
|
||
|
Как узнать объекты ссылающиеся на нужный объект
|
|||
|---|---|---|---|
|
#18+
Если Вы хотите увидеть объекты в памяти, то есть $system.OBJ.Dump, $system.OBJ.ShowObjects(). Если нужно посмотреть параметры классов, то либо через документацию, либо самостоятельно через %Dictionary ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.02.2008, 13:01 |
|
||
|
Как узнать объекты ссылающиеся на нужный объект
|
|||
|---|---|---|---|
|
#18+
Maksim UMЕсли Вы хотите увидеть объекты в памяти, то есть $system.OBJ.Dump, $system.OBJ.ShowObjects(). Если нужно посмотреть параметры классов, то либо через документацию, либо самостоятельно через %Dictionary $system.OBJ.ShowObjects() - Выдаст мне список объектов и их свойства. А где ссылки? И если например объект А ссылается на объект Б, а объект Б в свою очередь ссылается на объект А, то максимум что выдаст этот метод будет 2 объекта. Объект А имеет свойство по типу объекта Б и ореф объекта Б. А про объект Б вообще промолчит, что у него есть свойство типа А. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.02.2008, 03:34 |
|
||
|
Как узнать объекты ссылающиеся на нужный объект
|
|||
|---|---|---|---|
|
#18+
У вас недокументированные классы - и вы в них разбираетесь что ле ? Открываете документацию от туда в Cache Class Reference - там выбираете вашу область - потом жмете кнопку Search в правом верхнем углу. В поиске выбираете тип поиска - All clases that REFERENCE - и указываете какой класс вас интересует - жмете [Search] - через пару секунд он вам выдат все классы и поля в них что ссылаются на указанный вами класс. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.02.2008, 08:31 |
|
||
|
Как узнать объекты ссылающиеся на нужный объект
|
|||
|---|---|---|---|
|
#18+
2Ptn причем тут описание классов и работа самой системы? Я спрашиваю как можно во время работы системы посмотреть какие объекты держат мой объект. Потому как открываю объекты методом OpenId, а OnOpen у них не вызвается, т.к. он уже кем-то держится в памяти! Как посмотреть? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.02.2008, 08:23 |
|
||
|
Как узнать объекты ссылающиеся на нужный объект
|
|||
|---|---|---|---|
|
#18+
=Dimon=2Ptn ... Я спрашиваю как можно во время работы системы посмотреть какие объекты держат мой объект. ... Как посмотреть? А вы не находите логичным - тот факт что ваш объект, по большому счету, могут держать обьекты которые содержать в своем описании поля ссылки на ваш ? Это если конечно у вас не практикуется описывать поле одного типа объектов, а пихать в него объекты совершенно другого типа... Описание классов вам даст те места где вообще могут появиться ссылки на ваш объект - и соответсвенно вооруженным этим знанием вы можете проинспектировать код на предмет утечек ссылок. Если вы хотите это выполнять в рунтайм - то как уже советовали $System.OBJ.Dump([var]) и возможно некоторые $zobjxxx функции.... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.02.2008, 11:12 |
|
||
|
Как узнать объекты ссылающиеся на нужный объект
|
|||
|---|---|---|---|
|
#18+
Что такое OnOpen ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.02.2008, 11:13 |
|
||
|
Как узнать объекты ссылающиеся на нужный объект
|
|||
|---|---|---|---|
|
#18+
ага... по всей видимости имеется в виду %onOpen и он действительно не вызывается .... Тогда - если конечно предпочитаете метод тыка.... Код: 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. либо соотвественно как варивант поочередно килять переменные и проверять ссылки Но все таки куда спродручнее это делать кагда структуру классов ясна Либо делаете Код: 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. Находите желаемый объект , например с ID=2 ( строка содержит OID: (2,"User.T2") ) - оттуда выбираете верхнюю строку oref value: 2 - и соотвественно потом ищете все в тела остальных объектов ссылки вхождения "2@User.T2".... В принципе если взять у каратаева перехватчик ввода вывода - то можно сделать автомат - дамп сбросить в файл или глобал и потом его пропарсить. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.02.2008, 15:41 |
|
||
|
|

start [/forum/topic.php?fid=39&msg=35131629&tid=1558996]: |
0ms |
get settings: |
10ms |
get forum list: |
17ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
89ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
53ms |
get tp. blocked users: |
2ms |
| others: | 251ms |
| total: | 441ms |

| 0 / 0 |
