假设我有很多(数百个)大 python词典。腌制文件大小约为2Mb。我想使用这个词典中的数据绘制图表,所以我必须加载它们。存储数据的最有效(第一速度,第二存储器)方式是什么?可能是我应该使用另一种缓存工具?这就是我现在如何解决这个问题:
当用户需要图表时,我正在创建数组并用redis中的unpickled数据填充它。就像那样:
array = []
for i in range(iteration_count):
array.append(unpickle(redis.get(key)))
现在我有两个问题:带内存,导致我的阵列非常大,但它不重要且易于解决。主要问题 - 速度。许多物体破坏超过0.3秒。我甚至有超过1秒的破解时间的瓶颈。从redis获得这个字符串相当昂贵(超过0.01秒)。当我有很多对象时,我的用户必须等待很长时间。
答案 0 :(得分:1)
如果可以假设您在Web应用程序的上下文中询问并且您在浏览器中显示图表,我肯定会建议您将字典存储为redis中的JSON。
同样,您没有提供太多关于您的应用程序的详细信息,但我之前已经在非常大的数据集上实现了图表(在几分钟内每秒传输100,000个传感器数据点)。为了在渲染数据集时提高性能,我将每种类型的数据存储到自己的字典或“系列”中。此策略允许您根据需要仅呈现部分数据。
如果您分享有关您的特定应用程序的更多信息,我们可能会提供更多帮助。