Python / Pycharm内存和CPU分配可以加快运行时间吗?

时间:2018-01-17 07:49:21

标签: python performance runtime

我正在尝试运行一个容量非常大的python程序,该程序使用NLP方法处理文本以执行不同的分类任务。

程序的运行时需要几天,因此,我正在尝试为程序分配更多容量。但是,如果我做了正确的事情,我真的不明白,因为使用我的新配置,python代码的速度并不快。

以下是有关我的笔记本的一些信息:

我的笔记本电脑运行的是带有4核(8个逻辑处理器)@ 2.5 GHZ和32 gb物理内存的intel核心i7的Windows 10。

我做了什么:

我在vmoptions文件中更改了一些参数,所以它现在看起来像这样:

-Xms30g
-Xmx30g
-Xmn30g
-Xss128k
-XX:MaxPermSize=30g
-XX:ParallelGCThreads=20
-XX:ReservedCodeCacheSize=500m
-XX:+UseConcMarkSweepGC
-XX:SoftRefLRUPolicyMSPerMB=50
-ea
-Dsun.io.useCanonCaches=false
-Djava.net.preferIPv4Stack=true
-XX:+HeapDumpOnOutOfMemoryError
-XX:-OmitStackTraceInFastThrow

我的问题:

但是,正如我所说,我的代码运行速度不是很快。最重要的是,如果我正在调用taskmanager,我可以看到pycharm使用了大约80%的内存,但是使用了0%的CPU,而python使用了20%的CPU和0%的内存。

我的问题:

我需要做什么才能使我的python代码的运行时变得更快? 是否有可能需要为pycharm或python分配更多的CPU? 内存分配到pycharm和python解释器的运行时有什么联系?

非常感谢=)

1 个答案:

答案 0 :(得分:0)

您无法手动增加CPU使用率。尝试以下解决方案之一:

  1. 尝试将您的算法重写为 多线程 。那么你可以使用 更多的CPU。请注意,并非所有程序都可以从中受益 多核。在这些情况下,计算将分步进行,其中 下一步取决于上一步的结果,将不会 使用更多内核更快。可以向量化的问题(应用 对大型数据进行相同的计算)相对容易 之所以使用多个核,是因为各个计算是 独立的。
  2. 使用 numpy 。它是用C编写的扩展,可以使用优化的 线性代数库,例如ATLAS。它可以加快数值 计算与标准python相比显着。