[python]请问频繁调用子程序如何改善性能?

2019-01-02 22:17发布

大家好!有一个main.py和几千个sub_x.py文件,main.py会频繁调用这几千个sub_x.py文件并获得返回结果。
但是现在问题是调用子程序的次数太频繁,导致main.py运行起来非常慢。
查看了耗时的地方,主要是下面这几个地方消耗时间:
{built-in method builtins.exec}
subprocess.py:372(run)
{built-in method _codecs.utf_8_encode}
{built-in method _pickle.load}
subprocess.py:586(init)
subprocess.py:952(_execute_child)
{built-in method _winapi.CreateProcess}
请问有什么方法可以在调用子程序的时候节约时间吗?

main.py的内容如下:

cmdLst = ['sub_1','sub_2','sub_3','sub_4']#实际上是有几千个sub_x.py文件,这里只列出4个

for i in range(len(cmdLst)):
#创建命令行内容
commandLine = 'python ' + cmdLst[i] + '.py'
#执行命令
proc = subprocess.run(commandLine.split(),stdout = subprocess.PIPE, stderr = subprocess.PIPE)
#获取子程序返回的内容
stdResult = proc.stdout.decode()

sub_x.py的内容如下:

一系列操作,获得stdLine

输出stdLine

print(stdLine)

3条回答
SAY GOODBYE
2楼-- · 2019-01-02 22:26

可以使用协程啊,绝对的省时,而且占用系统资源还小

查看更多
走好不送
3楼-- · 2019-01-02 22:34

改C++
萨德撒多撒啊

查看更多
你好瞎i
4楼-- · 2019-01-02 22:44

首先看下硬件处理能力,然后代码考虑下优化,各种循环看看有没有提高性能的地方,考虑使用多线程试试,或者把调用很多的脚本压力分散开

查看更多
登录 后发表回答