繁体   English   中英

同时运行多个 Python 脚本的性能

[英]Performance running multiple Python scripts simultaneously

这里是一个相当新的“程序员”,试图了解当多个不相关的脚本同时运行时 Python 如何与 Windows 交互,例如从任务管理器或只是从 IDLE 手动启动它们。 脚本只是进行 http 调用并将文件写入磁盘,环境为 3.6。

解释器是否能够独立地从操作系统(处理器/内存/磁盘)中提取资源,以便完成每个脚本的时间与它是唯一运行的脚本的时间大致相同(假设脚本累积无处可去)接近耗尽所有 CPU 或内存)? 如果是这样,限制是什么(脚本数量等)。

请原谅术语上的错误。 请注意“程序员”上的引号。

Python 如何与 Windows 交互

Python 是一个可执行文件,一个程序。 当一个程序被执行时,一个新的进程被创建。

python myscript.py启动一个新的python.exe进程,其中第一个参数是您的脚本。

当多个不相关的脚本同时运行时

它们是多个进程。

解释器是否能够独立地从操作系统(处理器/内存/磁盘)中提取资源?

是的。 每个进程都可以根据自己的意愿访问 OS API,并在可能的范围内进行。

有哪些限制?

最有可能的内存。 与任何其他进程可能遇到的限制相同。

这些问题很难回答,部分原因在于它们取决于:

  • 您的操作系统:您的操作系统可以在需要时安排和运行任务,而 Python 程序员通常无法控制这些任务。

  • 您的脚本实际在做什么:如果您的脚本都试图写入同一个驱动器,则它们的执行可能比没有写入任何设备时更频繁地停止。 或者,如果只有一个脚本写入驱动器,脚本可能会运行得更快,因为 CPU 可以让一个脚本计算另一个脚本何时写入。 (没有基准测试很难说。)

  • 您使用的 CPU数量:中央处理单元的数量可以改进程序的并行处理——但也许不能。 如果您的程序不断地从同一个磁盘读写,更多的 CPU 可能不是一个好处。

  • 你的 Python 版本:(我只是为了完整性而添加这个。)

最终,您要获得有关此的任何真实信息的唯一方法是进行自己的基准测试——即便如此,您也应该记住,您找到的那些数字仅适用于您当前的设置。 也就是说,如果您转到别处的另一台计算机,您可能会发现得到不同的结果。

如果您不熟悉 Python 的timeit模块,我建议您查看它。 (我很确定它是一个标准模块,所以您应该已经拥有它。)它将帮助您进行基准测试,并让您为您的平台获得一些明确的答案。

通过提出像您这样的问题,您可能很快就会听说 Python 的 GIL(全局解释器锁)。 它与Python线程有关,有人认为是福,也有人认为是祸。 无论哪种方式,此页面:

https://realpython.com/python-gil/

对它何时可以正常工作以及何时可能无法正常工作有一个很好的高级解释。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM