在内存中有耗时的对象

时间:2014-12-09 02:56:52

标签: python

以下代码是我的主要功能的一部分

def main():
    model = GoodPackage.load_file_format('hello.bin', binary=True)
    do_stuff_with_model(model)

def do_stuff_with_model(model):
    do something~

假设hello.bin的大小是几千兆字节,加载它需要一段时间。方法do_stuff_with_model仍然不稳定,我必须做很多迭代,直到我有一个稳定的版本。换句话说,我必须多次运行main函数才能完成调试。但是,由于每次运行代码都需要几分钟才能加载模型,因此很费时间。有没有办法让我将模型对象存储在其他地方,这样每次我通过在控制台中键入python my_code.py来运行代码时我都不必等待?我认为使用pickle也无济于事,因为文件仍然很大。

1 个答案:

答案 0 :(得分:2)

如何创建ramdisk?如果您有足够的内存,则可以将整个文件存储在RAM中。这将大大加快速度,但每次重新启动计算机时都可能需要这样做。

在linux上创建ramdisk非常简单。只需创建一个目录:

mkdir ramdisk

并将其挂载为tempsramfs文件系统:

mount -t tmpfs -o size=512m tmpfs ./ramdisk

从那里你可以简单地将你的大文件复制到ramdisk。除了简单地更改大文件的路径之外,这样做的好处是您的代码保持完全相同。文件访问就像通常那样发生,但现在它的速度要快得多,因为它从RAM加载它。