bla*_*ora 7 c python sockets multithreading pypy
与手写的C相比,pypy能否快速处理线程和套接字?与普通的蟒蛇相比?
我只是尝试一下,但有问题的python代码是为一小群计算机编写的,我不是管理员.我在这里问,因为我的谷歌尝试只提供了与cython,unladen swallow等的比较,如果这不太可行,我不想让管理员知道它.
我实际上并不需要pypy来擅长C; 我正在寻找使用它,因为现在解释器的开销完全掩盖了我想要计算的计算.我只需要pypy让我在手写的C附近.
Mat*_*ner 12
与手写的C相比,pypy能否快速处理线程和套接字?
不,它通常是相同或更糟.
PyPy保留了CPython所拥有的全局解释器锁(GIL).这意味着本机线程无法并行运行Python代码.Python线程还有额外的语义,需要付出代价.围绕Python线程启动,关闭和跟踪线程对象的同步很多.相比之下,C线程启动速度更快,使用起来更便宜,并且可以完全并行运行.
高效的套接字处理需要最小化等待下一个套接字事件所花费的时间.由于PyPy的线程模型仍然受GIL的约束,这意味着从阻塞套接字调用返回的线程在获取GIL之前无法继续.等效的C代码通常执行得更快,并且可以更快地返回等待套接字事件.
与普通的蟒蛇相比?
是.但并不多.
由于上述原因,除了由于JIT和其他开销导致的偶然峰值之外,PyPy将需要较少的CPU时间用于等效代码.因此,线程和套接字处理都更快,响应更快.
我只是尝试一下,但有问题的python代码是为一小群计算机编写的,我不是管理员.我在这里问,因为我的谷歌尝试只提供了与cython,unladen swallow等的比较,如果这不太可行,我不想让管理员知道它.
如果您的代码受CPU限制,PyPy只会显着改善性能.PyPy是我所知道的最快的 Python实现,它本身运行.您可以调查其他一些实现,或者考虑编写C扩展,如果真正的线程并行性是您的高优先级.
我实际上并不需要pypy来擅长C; 我正在寻找使用它,因为现在解释器的开销完全掩盖了我想要计算的计算.我只需要pypy让我在手写的C附近.
与C关闭性能差距是目前PyPy的最大特色.我强烈建议你试一试.
归档时间: |
|
查看次数: |
2620 次 |
最近记录: |