gpt4 book ai didi

python - 处理 Python 内存使用的可能修复

转载 作者:太空宇宙 更新时间:2023-11-04 09:18:23 24 4
gpt4 key购买 nike

我有以下类(class):

 class C1:
STORE = []
TYPE = []
ITEMS = []
PRICE = []


def __init__(self,STORE,TYPE,ITEMS,PRICE):
self.STORE = STORE
self.TYPE = TYPE
self.ITEMS = ITEMS
self.PRICE = PRICE

该类的目的是存储不同商店中的所有商品及其价格。商品按字母数字顺序排列,如果商品在商店中不存在,它会将价格显示为 0。我正在从数据库中的表中检索数据,如下所示:

           S1  S2  S3 .... S29000
item1 15 2 30 .... 100
item2 0 1 0 .... 5
.
.
.
item600 30 190 10 .... 25

相应地,STORE 和 ITEMS 列表如下所示:

存储:['S1','S2',...,'S29000']项目:['item1','item2',....,'item600']

对于 PRICE 列表,它是一个多维列表,通过指定商店索引和商品索引,它会为您提供指定商店中指定商品的价格(例如 price[0][0] 将为您提供S1 处的 item1 为 15)。

将所有这些数据放在一个类中,我运行包含一些“复杂”计算的“报告”。

我遇到了从不同表创建类对象的问题,根据 Windows 任务管理器,python 的内存使用量几乎达到 1.8 GB。

我知道我的对象是内存消耗的主要原因,这让我想到了两个问题:

  1. 我在使用它们和 gc 后“删除”每个类对象,看起来 python 即使在脚本完成后也不想释放内存。有没有暴力破解的方法?

  2. 除了列表之外,是否存在消耗更少内存并提高性能的数据结构?我注意到 Numpy 是一个选项,但我被迫使用 Python 2.3,它似乎与 Numpy 不兼容。

我以前每次想计算一些东西时都会尝试读取数据库,这会使我的程序运行将近 3 个小时,但现在将数据存储到类中时需要 40 分钟。所以我的“客户”不想走老路。

提前致谢。

编辑:原始数据看起来像我之前描述的表格,但它只能通过供应商提供的 API 访问。

EDIT2:我的意图是为多个“数据源”创建 C1 类型的各种对象。所以我最终会得到 6 个 C1 类型的对象,每个对象都包含不同的数据

EDIT3:为了访问每家商店的商品价格列表,API 有一个函数,其形式为 GetPrices('Store Name')。所以有必要为每个商店调用这个函数。因此,目前,我生成 C1 对象的代码有一个巨大的 For 循环,它为每个 Store 调用此函数。

最佳答案

您可以试试 array 模块,它在 Python 2.3 中出现。除此之外,您可能需要考虑为这些内容使用合适的数据库。

关于python - 处理 Python 内存使用的可能修复,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5722872/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com