• Добро пожаловать на Форум пользователей ПО АСКОН. Пожалуйста, авторизуйтесь.
 

Уважаемые пользователи,

Хотим проинформировать вас о режиме работы регистрации на нашем сайте.

Зарегистрироваться возможно в рабочие дни, с 8:00 до 20:00 (мск).

Если у вас возникнут вопросы или потребуется дополнительная информация, не стесняйтесь обращаться к нашей службе поддержки. Вы можете связаться с нами по указанным контактным данным на нашем сайте.

Благодарим вас за понимание и сотрудничество. Мы ценим ваше терпение и стремимся предоставить вам лучший опыт использования нашего сервиса.

С уважением,
Команда Ascon

Как из скрипта Python обратится к глобальной области видимости консоли IPython?

Автор feron, 26.11.24, 22:10:59

« назад - далее »

0 Пользователи и 1 гость просматривают эту тему.

feron

Доброго вечера!

Есть объект на инициализацию которого уходит 15 минут и 20 ГБ памяти это при том что в системе 32 ГБ. Повторная его инициализация забивает всю память. После его работы память не сбрасывается и он там висит и к нему можно обратится из консоли. А как к нему можно обратится из скрипта ? Перезапускать ide не вариант тк он запускается почти 4 минуты + еще 15 минут.
Где то видел как можно обратится к переменным консоли IPython но не найду.


feron

Я не могу понять почему этой возможности не существует ? Это было бы очень удобно.
ИИ говорит использую globals() - но там не одной переменной нету

Doom2

Прежде чем говорить о доступе к переменным нужно понять как изначально они формируются и где(в выделенном процессе или в новой среде).
Взависимости от типа переменной есть различные формы их содержания. Например большие массивы в памяти работают куда медленней.
В контексте этого понимания приходим к их доступу и к гарантированному их высвобождению из памяти программы.

Прежде чем написать код с реализацией мне бы хотелось увидеть ответ от здешних форумчан как они борются с динамическим высвобождением памяти из приложения.



Doom2

UU, а по существу вопроса будет что то ? у нас времени не много..
Способ есть как сбрасывать именно ту память что была приобретена в ходе работы приложения, но программа после этого крашится  :afro:
Способ через WinApi - тоже вызывает краш но в другом месте.

Lemieux

Питон такой корявый или Вы что-то не то делаете? Кстати, что такое утечка памяти?

Doom2

Цитата: Lemieux от 25.01.25, 10:12:55Питон такой корявый или Вы что-то не то делаете?

Например, работаю через multiprocessing в процессе вся реализация переменных и по его завершению гарантированно они стираются с памяти, но вот у Компаса почему то растет память. После обработки 200 чертежей у меня достигается предел оперативной памяти.
Каждый раз вызываю сборщик мусора но безрезультатно
gc.collect()

Цитата: Lemieux от 25.01.25, 10:12:55Кстати, что такое утечка памяти?
Нет, такого нет у меня 100%.
tracemalloc

Lemieux

Цитата: Doom2 от 25.01.25, 10:20:16Например, работаю через multiprocessing в процессе вся реализация переменных и по завершению гарантированно они стираются с памяти но вот у Компаса почему то растет память. После обработки 200 чертежей у меня достигается предел оперативной памяти.
Каждый раз вызываю сборщик мусора но безрезультатно
gc.collect()
А Вы писали в ТП по этому поводу? А то похоже на корявую работу API КОМПАС.

Doom2

Цитата: Lemieux от 25.01.25, 10:22:09А Вы писали в ТП по этому поводу?

Они уже знают об этом.
И я хочу сам тоже разобраться -> в реализации своего приложения - я разобрался, а как работать со сторонним приложением тут косвенно написали что можно но как именно не написали.

lavgirb

Цитата: Doom2 от 25.01.25, 09:13:11Снимок13.PNG
У меня на сотовом такое же сообщение.
Еще бывают такие сообщения и в другие моменты на сотовом.
На настольном компьютере такие сообщения не появляются: нормально все отрабатывается.

Lemieux

Цитата: Doom2 от 25.01.25, 10:27:11Они уже знают об этом.
И я хочу сам тоже разобраться -> в реализации своего приложения - я разобрался, а как работать со сторонним приложением тут косвенно написали что можно но как именно не написали.
На последних своих проблемах я понял, что архитектура КОМПАС достаточно примитивна и не стабильна. Она многое не даёт сделать, но при этом выстрелить себе в ногу как два пальца.

Doom2

Цитата: Lemieux от 25.01.25, 10:38:31На последних своих проблемах я понял, что архитектура КОМПАС достаточно примитивна и не стабильна. Она многое не даёт сделать, но при этом выстрелить себе в ногу как два пальца.

Есть я и есть судьба и другого не дано.

Огородные огороды.
SetProcessWorkingSetSizeEx - ограничение использования памяти.

Хотя: функция SetProcessWorkingSetSize с параметрами -1, -1 вызывает TrimWorkingSet, который освобождает неиспользуемую память в рабочем наборе процесса. И вроде как не выгружает активные модули что и не вызывают разрушения приложения.
+ Благодарностей: 1

Doom2

Цитата: lavgirb от 25.01.25, 10:35:42На настольном компьютере такие сообщения не появляются: нормально все отрабатывается.
У меня с компьютера. Единственное что иногда эмулятор андройда играет роль прокси сервера но там как вроде не меняются заголовки запросов.


Цитата: feron от 26.11.24, 22:10:59Где то видел как можно обратится к переменным консоли IPython но не найду.

from IPython import get_ipython
ipython = get_ipython()
print(ipython.user_ns["b"])

user_ns - список всех переменных в памяти IPython