Python中多进程 多线程 单进程执行相同的IO操作和CPU 操作的时间 效率测试

#计算密集型
def count(x,y):
    c = 0
    while c < 6000000:
        c += 1
        x += 1
        y += 1
#IO密集函数
def write():
    f = open('test.txt','w')
    for i in range(1000000):
        f.write("hello world\n")
    f.close() 

def read():
    f = open('test.txt')
    lines = f.readlines()
    f.close()  

单线程cpu密集型

from test import *
import time

t = time.time()
for i in range(10):
    count(1,1)
print("Line cpu:",time.time() - t)    #7.5比多线程执行时间还短 

单线程IO密集型

from test import *
import time
t =time.time()
for i in range(10):
    write()
    read()
print("Line io:",time.time() - t)  #3.9

多线程cpu密集型

from test import *
import threading
import time
# 多线程cpu密集型
counts = []
t = time.time()
for x in range(10):
    th = threading.Thread(target = count,args = (1,1))
    counts.append(th)
    th.start()
    
for i in counts:
    i.join()
print("thread cpu:",time.time() - t)      #9.5  

多线程io密集型

from test import *
import threading
import time
# 多线程io密集型
def io():
    write()
    read()
counts = []
t = time.time()
for x in range(10):
    th = threading.Thread(target=io)
    counts.append(th)
    th.start()
for i in counts:
    i.join()
print("thread i0:",time.time() - t)      #4.6

多进程io密集型

from test import *
import multiprocessing
import time
# 多进程io密集型
def io():
    write()
    read()
counts = []
t = time.time()
for x in range(10):
    p = multiprocessing.Process(target=io)
    counts.append(p)
    p.start()

for i in counts:
    i.join()
print("process i0:",time.time() - t)      #2.4

多进程cpu密集型

from test import *
import multiprocessing
import time
# 多进程cpu密集型

counts = []
t = time.time()
for x in range(10):
    p = multiprocessing.Process(target=count,args=(1,1))
    counts.append(p)
    p.start()

for i in counts:
    i.join()
print("process i0:",time.time() - t)      #3.84

单线程 cpu 7.5
单线程io 3.9

多线程cpu 9.5
多线程io 4.6

多进程cpu 3.84
多进程io 2.4

猜你喜欢

转载自blog.csdn.net/qq_34237321/article/details/84660937
今日推荐