Изменения кода при сохранении больших объектов в памяти в Python - PullRequest
2 голосов
/ 05 февраля 2010

У меня есть приложение, которое запускается с загрузки большого замаринованного дерева (173M) с диска, а затем использует его для некоторой обработки. Я часто делаю изменения в обрабатывающей части, что неудобно, потому что загрузка дерева занимает около 15 минут. Я ищу способ устранить повторную загрузку во время тестирования, так как трия никогда не меняется.

Одна вещь, которую я не могу сделать, это использовать уменьшенную версию дерева.

Идеи, которые у меня были до сих пор, записываются в memcached и превращают trie в веб-сервис, который принимает запрос и возвращает нужные мне данные.

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

Ответы [ 2 ]

2 голосов
/ 05 февраля 2010

Вы можете попробовать использовать встроенный в Pythons метод reload или проект livecoding .

0 голосов
/ 05 февраля 2010

Обычная проблема с reload состоит в том, что экземпляры остаются привязанными к старой версии класса. Если вы не храните старые экземпляры, reload прост и работает очень хорошо.

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