これについてもっと知りたいので、私は現在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