大家好,
我目前正在使用Python从API程序中检索数据。我将数据存储到以下类中:
class c1:
STORE = []
ITEMS = []
PRICES = []
def __init__(self, STORE, ITEMS,PRICES):
self.STORE = STORE
self.ITEMS = ITEMS
self.PRICES = PRICES
列表STORE包含STORES列表,其中可能有的项目位于ITEMS下。列表应如下所示:
商店 - ['S1','S2',......,'S30000']
ITEMS - ['item1','item2',...,'item800']
列表价格是一个多维列表,其中包含商店中商品的价格(例如,价格[0] [0]将获得'S1'的'item1'的价格,以及价格[20] [4 ]会在'S4'得到'item20'的价格。
我正在使用此类创建多个对象,最多6个。每个对象将包含太多30,000个商店,超过800个项目,以及价格矩阵800到30,000。
这样做的目的是创建一个报告,显示有关商店定价过高,价格基于位置等的不同指标。
我遇到了导致内存泄漏的问题,看着Windows任务管理器,我似乎使用了高达1.8 GB的内存。
大家可能建议我使用API单独读取每个价格,商品和商店,而不是将任何内容存储在内存中,但这是不可能的。我已经开发了代码,运行大约需要3个小时,这对于当前需求来说不是一个选项。
所以我有两个非常简单的问题:
我正在使用gc,但似乎我的代码在gc之后没有“释放”内存。是否有一种“释放”记忆的强力方法?或者扩展python使用的允许内存?
是否有其他数据结构可能比列表更轻量级? STORE和ITEMS下的实例是字符串,PRICES下的实例是双倍的。已经看过Numpy,但我被迫使用Numpy不兼容的Python 2.3。
提前谢谢。