pykka - Actors are slow?

В настоящее время я экспериментирую с 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
7
задан jodal 21 October 2012 в 19:54
поделиться