Народ, а кто скажет, ваще возможно контролировать память в <python>? Типа ручками освободить память после использования датафраме?
А то я столкнулась с задачей, которая умирает с сообщением <memory error>. Хотя при етом не только много паняти используется (87.4%), но и <CPU 97%>. Я накатала письмо менегеры, что типо наши ваши <VM laptos> не подходят для таких задач, а потом решила у умной публики спросить может можно как-то облегчит жизнь етой задаче.
Memory management in Python?
-
- Уже с Приветом
- Posts: 12065
- Joined: 15 Feb 2002 10:01
- Location: TX
-
- Уже с Приветом
- Posts: 19924
- Joined: 30 Aug 2000 09:01
- Location: WA
Re: Memory management in Python?
CPU возможно используется за счет swapping, что является следствием большого потребления памяти. Похоже на классический memory leak (для языков имеющих garbage collection). Если оценка требуемого объема памяти сильно расходится с реальным потреблением, надо искать откуда берется это потребление, и почему объекты не могут удалиться - возможно где-то остаются паразитные ссылки и т.п.Likenew wrote:Народ, а кто скажет, ваще возможно контролировать память в <python>? Типа ручками освободить память после использования датафраме?
А то я столкнулась с задачей, которая умирает с сообщением <memory error>. Хотя при етом не только много паняти используется (87.4%), но и <CPU 97%>. Я накатала письмо менегеры, что типо наши ваши <VM laptos> не подходят для таких задач, а потом решила у умной публики спросить может можно как-то облегчит жизнь етой задаче.
-
- Уже с Приветом
- Posts: 12017
- Joined: 08 Sep 2006 20:07
- Location: Силиконка
Re: Memory management in Python?
А какой именно Питон у вас?
В CPython вообще-то не "настоящий" GC, а reference-counting, так что всё 100% детерминированно должно быть.
Если действительно течёт, что скорее-всего какая-то СИшная библиотека.
В CPython вообще-то не "настоящий" GC, а reference-counting, так что всё 100% детерминированно должно быть.
Если действительно течёт, что скорее-всего какая-то СИшная библиотека.
Мир Украине. Свободу России.
-
- Ник закрыт за хамство.
- Posts: 357
- Joined: 16 Feb 2014 18:34
Re: Memory management in Python?
А вы команду del то используете, вообще? Простите за вопрос.
-
- Уже с Приветом
- Posts: 12065
- Joined: 15 Feb 2002 10:01
- Location: TX
Re: Memory management in Python?
Спасибо всем , так, по очереди. Код не мой, при етом написан на программистом, а физиком, и переделан с матлаба. Мне надо чтобы код заработал, а он никак. Команду < del > не помню, т.е., похоже ее там нет. В случае расчетов для набора данных в 500К рецордс, все работало, а вот как 1.6млн привалило, так и загибается программа. Я не большой <python> знаток, начинающий тока, и мне пока трудно оценить, были бы такие проблемы при другом подходе. Я имею в виду, что все данные, т.е.1.6млн, записаны в дата фраме. Вот пока етот дата фраме формировался, то <CPU> был в ~97%, а меморы в ~38%. Когда дело дошло до расчетов, научных расчетов, стат. моделей, то все значения начали доходить до верхних пределов.
Мне интересно, было ли бы легче, если бы был использовал <DB API>, открыт курсор и данные считывались бы по 30К рецордс и те же модели применялись? Было ли бы такое более еффективно? Ето для будущего переписа. Я на днях говорила о дополнителном модуле, так очередной физик показывал мне матлаб код, который надо на <Python> переписать, так сразу бросилось в глаза, что у него в <loop> каждый раз находилось <max> значениеиз того же набора данных . Т.е., вполне возможно там где-то и такое найти.
Бисусловно, спарк бы подошел на такое лучше всего, но ето не мне решать....
Мне интересно, было ли бы легче, если бы был использовал <DB API>, открыт курсор и данные считывались бы по 30К рецордс и те же модели применялись? Было ли бы такое более еффективно? Ето для будущего переписа. Я на днях говорила о дополнителном модуле, так очередной физик показывал мне матлаб код, который надо на <Python> переписать, так сразу бросилось в глаза, что у него в <loop> каждый раз находилось <max> значениеиз того же набора данных . Т.е., вполне возможно там где-то и такое найти.
Бисусловно, спарк бы подошел на такое лучше всего, но ето не мне решать....
-
- Уже с Приветом
- Posts: 19924
- Joined: 30 Aug 2000 09:01
- Location: WA
Re: Memory management in Python?
Безусловно - выкачали часть данных, обработали, и забыли - для минимизации используемой памяти - в самый раз.Likenew wrote:Мне интересно, было ли бы легче, если бы был использовал <DB API>, открыт курсор и данные считывались бы по 30К рецордс и те же модели применялись? Было ли бы такое более еффективно?
Если только это единственный критерий оптимизации.
-
- Ник закрыт за хамство.
- Posts: 357
- Joined: 16 Feb 2014 18:34
Memory management in Python?
Вообще-то задача процессора - работать а не сидеть без дела. Так что загрузка процессора 100% - это хорошо, если по делу. И если дополнительная память помогает ускорить расчёты, то её тоже надо использовать как только можно больше. Переписывайте программу, только если ей действительно уже не хватает памяти, т.е. она падает с ошибкой памяти. Иначе там скорее всего все очень даже правильно и оптимально сделано.
-
- Уже с Приветом
- Posts: 12065
- Joined: 15 Feb 2002 10:01
- Location: TX
Re: Memory management in Python?
а кстати вспомнила, таки используем для удаления нескольких колонок.Deckel wrote:А вы команду дел то используете, вообще? Простите за вопрос.
-
- Уже с Приветом
- Posts: 63430
- Joined: 03 Nov 2004 05:31
- Location: RU -> Toronto, ON
Re: Memory management in Python?
Ну а что вы хотите? Эти языки не были написаны для "экономных" машинок. Воткните памяти в два раза больше.
Not everyone believes what I believe but my beliefs do not require them to.
-
- Уже с Приветом
- Posts: 2264
- Joined: 17 Jun 2003 04:41
- Location: Just like US
Re: Memory management in Python?
Нет препятствий патриотам!Снежная Королева wrote:У меня точно такая же проблема в R.
Код работает 5 раз, и довольно быстро, на 6й раз просто crash без всяких ошибок. Точно такой же код.
(А SAP HANA интегрируется с R)
...а мы такой компанией, возьмем, да и припремся к Элис!