Уменьшение памяти - PullRequest
       6

Уменьшение памяти

0 голосов
/ 15 декабря 2011

Я не программист, но столкнулся с проблемой программирования.Мне нужно уменьшить потребление памяти кода Python.Одним из вариантов является снижение переменной точности.В связи с этим:

  1. Определить плавающие точки (как мне кажется, типы данных назначаются на лету)?
  2. Python использует 64-битные или 32-битные плавающие точки?
  3. Любая функция, чтобы уменьшить плавающую точность или преобразовать в int?

Пожалуйста, помогите мне.Эти вопросы могут быть глупыми, но я очень мало знаю о программировании.

Спасибо ...

Ответы [ 2 ]

1 голос
/ 15 декабря 2011

Если вы уже используете numpy, вы можете установить для поля dtype требуемый тип ( документация ). Там вы получите немного больше гибкости при наборе текста, но в целом вы не собираетесь много контролировать точность переменных в Python. Вам также может повезти, если вы захотите пройти через структурные издержки использования статических типов из Cython , хотя, если вы новичок в программировании, это может быть не лучшим маршрутом.

Кроме того, вы не дали нам много работы с вашей реальной проблемой и почему вы чувствуете, что переменная точность - это лучшее место для оптимизации.

0 голосов
/ 15 декабря 2011

Pure CPython (без numpy и т. Д.) Реализованы как двойные Си. http://www.ibm.com/developerworks/opensource/library/os-python1/

Да, типы связаны со значениями, а не переменными. Вы можете проверить, является ли что-то поплавком Python с isinstance (что-то, float).

Возможно, вы могли бы попробовать objgraph, чтобы увидеть, что использует вашу память. http://mg.pov.lt/objgraph/

Существует также вероятность того, что вы теряете память или просто нуждаетесь в сборке мусора. И это может быть связано с тем, что на вашей машине недостаточно памяти - иногда дешевле выделить немного дополнительной оперативной памяти или даже немного больше места подкачки при проблеме с ограниченной памятью.

Возможно, что использование альтернативного числового представления с низкой точностью поможет - возможно, http://pypi.python.org/pypi/Simple%20Python%20Fixed-Point%20Module/0.6?.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...