我目前正在尝试使用 Actor-concurreny(在 Python 上),因为我想了解更多相关信息。因此我选择pykka
了 ,但是当我测试它时,它的速度是正常功能的一半以上。
该守则只是看它是否有效;它并不意味着优雅。:)
也许我做错了什么?
from pykka.actor import ThreadingActor
import numpy as np
class Adder(ThreadingActor):
def add_one(self, i):
l = []
for j in i:
l.append(j+1)
return l
if __name__ == '__main__':
data = np.random.random(1000000)
adder = Adder.start().proxy()
adder.add_one(data)
adder.stop()
这运行得不是那么快:
time python actor.py
real 0m8.319s
user 0m8.185s
sys 0m0.140s
现在是虚拟的“正常”功能:
def foo(i):
l = []
for j in i:
l.append(j+1)
return l
if __name__ == '__main__':
data = np.random.random(1000000)
foo(data)
给出这个结果:
real 0m3.665s
user 0m3.348s
sys 0m0.308s