【发布时间】:2019-08-01 06:23:05
【问题描述】:
我编写了一个脚本,它使用了一个非常大的对象。我用泡菜加载对象,但这样做需要几秒钟。如果它必须发生一次或两次,这没什么大不了的,但我希望代码可以使用数百或数千次!
我认为我的问题是我想几乎“让”对象保持活动状态,然后能够在需要时从命令行调用它。我对 Python 相当陌生,所以我不确定这有多大可能;抱歉,如果我在我的问题中没有使用正确的术语。我目前正在 Spyder 中编写和运行我的 python,但最终我想在服务器上运行它,并在需要时调用代码。
【问题讨论】:
-
您需要一个可索引的数据存储。您可以使用内存数据存储,例如 redis,或者如果您希望数据更持久,请使用 sqlite 或 mysql 等数据库。
-
@blhsing 你能用一些伪代码来回答我如何使用 mysql/sqlite.. 看来这可能是我问题的答案!
-
请查看 Python 的 documentation 中针对
sqlite3模块的示例,并在您的实现遇到特定问题时发布新问题。 -
“我的脚本使用了一个非常大的对象” 是一种攻击症状而不是问题。请给我们一些背景信息。您的脚本最终在做什么,为什么对象实际上那么大,您如何将其重新架构为更小?它是交易数据库吗?视频压缩?别的东西?本质上,当你分析它时,你的代码的内部循环在做什么,它接触到什么数据?
-
@smci 基本上是一个非常大的矩阵。它不是一个稀疏矩阵,所以我不能那样减少它,而且由于我需要对整个矩阵执行和操作,所以我不能只加载矩阵的一部分。我在矩阵上运行的操作相当普通。
标签: python python-3.x architecture