【问题标题】:Why does Jupyter Notebook suddenly slow down so much?为什么 Jupyter Notebook 突然变慢了这么多?
【发布时间】:2019-08-15 06:05:29
【问题描述】:

我正在 Jupyter Notebook 上处理客户和购买数据。 我在上面轻松地编写和执行代码,但突然之间,它变慢了,甚至需要很长时间才能执行一个简单的代码,比如print('A')。最糟糕的是它没有显示任何错误,所以我完全不知道 Jupyter Notebook 或我的代码出了什么问题。

原始数据有点大。我合并了两个数据集,分别有 424,699 行和 22 列,总共 4,308,392 行和 39 列。

The versions:
Python → 3.7.4
Jupyter Notebook → 6.0.0
windows 10 pro

我只是想提高 Jupyter Notebook 的执行速度。

【问题讨论】:

  • 你确定它没有启动一些同步过程吗?
  • 您可能已达到内存限制,现在正在进行大量磁盘内存交换;很难说。如果您已完成当前会话,您可能想要退出笔记本并开始一个新的。使用新的,您可以仔细测试读取和合并所有数据是否会导致您的速度变慢。
  • 谢谢你,0 0!我会在新笔记本上再试一次!

标签: python jupyter-notebook


【解决方案1】:

可能你的内存使用率很高,然后 jupyter notebook 变慢了,因为它在你的硬盘上运行。风险还在于它可能很快崩溃。

尝试清理所有不再需要的数据。如果合并后不需要数据集,请将其删除。 How to delete multiple pandas (python) dataframes from memory to save RAM?

a, b, c = pd.DataFrame(), pd.DataFrame(), pd.DataFrame()
lst = [a, b, c]
del a, b, c # dfs still in list
del lst     # memory release now

在这个帖子中,您可以了解如何在 python 中跟踪您的内存和 cpu 使用情况: How to get current CPU and RAM usage in Python?

#!/usr/bin/env python
import psutil
# gives a single float value
psutil.cpu_percent()
# gives an object with many fields
psutil.virtual_memory()
# you can convert that object to a dictionary 
dict(psutil.virtual_memory()._asdict())

这里还概述了不同数据类型对内存的使用程度,具体取决于您的系统: In-memory size of a Python structure

【讨论】:

  • 谢谢你的回答,PV8!!!我执行了您提供的代码,并得到以下结果。 {'total': 34128306176, 'available': 9679208448, 'percent': 71.600, 'used': 24449097728, 'free': 9679208448} 从这个结果你知道什么?我用了这么多内存???
  • 是的,您已经使用了 24GB 内存,您可以查看文档了解更多详细信息:psutil.readthedocs.io/en/latest
  • 好的,谢谢!!我试图通过写'del cst,trn,trn_tmp,cst2'来删除笔记本上的四个数据框,但我写的最后一个代码仍然没有通过。我尝试的方式是错误的,你觉得呢?还是有其他方法可以解决???
  • 如果你真的需要使用这个数据框,你可以尝试将它转换为不同的类型:stackoverflow.com/questions/1331471/… 根据他们的内存使用,但你真的需要 22 列吗?尝试删除一些列
  • 嗨!我只是尝试了一些方法来释放内存,并且能够将使用的内存减少 6 GB。但是,代码仍然无法通过。对于这种情况你怎么看???我不认为我可以减少更多。
猜你喜欢
  • 2018-08-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-08-24
  • 2020-06-16
  • 1970-01-01
相关资源
最近更新 更多