Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/performance/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何管理项目周转时间?_Python_Performance - Fatal编程技术网

Python 如何管理项目周转时间?

Python 如何管理项目周转时间?,python,performance,Python,Performance,我刚刚编写了一个脚本,打算全天候运行以更新一些文件。但是,如果更新一个文件需要3分钟,那么更新100个文件需要300分钟 是否可以运行n个脚本实例来管理n个单独的文件以加快周转时间 是的,这是可能的。使用该模块启动多个并发进程。这样做的好处是,您不会因为全局解释器锁和线程而遇到问题,如手册页面中所述。手册页面包括使脚本并行执行所需的所有示例。当然,如果流程不必交互,这一点效果最好,如您的示例所示。是的,这是可能的。使用该模块启动多个并发进程。这样做的好处是,您不会因为全局解释器锁和线程而遇到问题

我刚刚编写了一个脚本,打算全天候运行以更新一些文件。但是,如果更新一个文件需要3分钟,那么更新100个文件需要300分钟


是否可以运行n个脚本实例来管理n个单独的文件以加快周转时间

是的,这是可能的。使用该模块启动多个并发进程。这样做的好处是,您不会因为全局解释器锁和线程而遇到问题,如手册页面中所述。手册页面包括使脚本并行执行所需的所有示例。当然,如果流程不必交互,这一点效果最好,如您的示例所示。

是的,这是可能的。使用该模块启动多个并发进程。这样做的好处是,您不会因为全局解释器锁和线程而遇到问题,如手册页面中所述。手册页面包括使脚本并行执行所需的所有示例。当然,如果进程不必交互,这一点效果最好,正如您的示例所示。

我建议您首先找出是否有任何方法可以减少单个线程中的3分钟。 我用来发现加速机会的方法是

这也将告诉您是否纯粹受I/O约束。 如果您完全受I/O限制,并且所有文件都在一个磁盘上,那么并行性将不会有帮助。 在这种情况下,可能将文件存储在固态驱动器上会有所帮助

另一方面,如@hochl所说,如果您受到CPU的限制,并行性将有所帮助。 无论如何,找到加速机会并加以解决。 我从未见过没有一个或几个这样的程序的好程序。
这将给你一个加速因子,并行性将给你另一个加速因子,总加速因子将是这两个因子的乘积。

我建议你首先找出是否有任何方法可以减少单个线程中的3分钟。 我用来发现加速机会的方法是

这也将告诉您是否纯粹受I/O约束。 如果您完全受I/O限制,并且所有文件都在一个磁盘上,那么并行性将不会有帮助。 在这种情况下,可能将文件存储在固态驱动器上会有所帮助

另一方面,如@hochl所说,如果您受到CPU的限制,并行性将有所帮助。 无论如何,找到加速机会并加以解决。 我从未见过没有一个或几个这样的程序的好程序。
这将给您一个加速因子,并行将给您另一个加速因子,总加速因子将是这两个因子的乘积。

Threads…..如果文件和更新确实是分开的。程序I/O绑定了吗?如果是这样,那么添加更多进程就没有意义了。如果它是CPU限制的,那么可能。你知道是什么限制了你的程序的速度吗?我想我的程序运行如此缓慢的原因是因为我使用python+imacros全天候更新我的网站。因为我用了很多for循环。在循环完成之前,需要分别循环每个路径。我在想,如果页面数量增加到100页,那么更新将需要很长时间。我现在主要担心的是,同时更新网站可能会在数据传输方面造成一些冲突(即数据混淆)。为什么您要不断更新网站上的文件?您是否考虑过在请求时生成它们并缓存它们?您是否可以访问托管网站的服务器?如果是这样,你应该更新那里的页面。如果没有,您应该下载一份网站副本,在本地处理,然后一次性将其发送回。您不应该做的是像编辑本地网站一样编辑远程网站。如果文件和更新是真正分开的。程序I/O绑定了吗?如果是这样,那么添加更多进程就没有意义了。如果它是CPU限制的,那么可能。你知道是什么限制了你的程序的速度吗?我想我的程序运行如此缓慢的原因是因为我使用python+imacros全天候更新我的网站。因为我用了很多for循环。在循环完成之前,需要分别循环每个路径。我在想,如果页面数量增加到100页,那么更新将需要很长时间。我现在主要担心的是,同时更新网站可能会在数据传输方面造成一些冲突(即数据混淆)。为什么您要不断更新网站上的文件?您是否考虑过在请求时生成它们并缓存它们?您是否可以访问托管网站的服务器?如果是这样,你应该更新那里的页面。如果没有,您应该下载一份网站副本,在本地处理,然后一次性将其发送回。你不应该做的是像编辑本地网站一样编辑远程网站。hochl,我必须重写整个脚本才能进行多重处理吗?该脚本正在登录到一个私人网站,以检索数据并对其进行更新。那么,脚本的多个实例会发生冲突吗?如果有人有类似的经验,请分享。当然,有可能有几个进程同时访问日志网站。如果可以同时进行日志记录,则没有问题,但这取决于您的实现,我们不知道。但是,如
17.2.1.3所述,可以同步这些过程。进程之间的同步
,因此对于那些关键部分,您可以同步代码。引文:“例如,一个人可以使用一个锁来确保一次只有一个进程打印到标准输出”。霍克勒,我必须重写整个脚本才能进行多个处理吗?该脚本正在登录到一个私人网站,以检索数据并对其进行更新。那么,脚本的多个实例会发生冲突吗?如果有人有类似的经验,请分享。当然,有可能有几个进程同时访问日志网站。如果日志记录可以