大家好!有一个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)
相关问题
- how to define constructor for Python's new Nam
- streaming md5sum of contents of a large remote tar
- How to get the background from multiple images by
- Evil ctypes hack in python
- Correctly parse PDF paragraphs with Python
可以使用协程啊,绝对的省时,而且占用系统资源还小
改C++
萨德撒多撒啊
首先看下硬件处理能力,然后代码考虑下优化,各种循环看看有没有提高性能的地方,考虑使用多线程试试,或者把调用很多的脚本压力分散开