|  |      1pyKun      2014-09-23 16:44:55 +08:00 楼主测的什么case? | 
|  |      2geew OP 照着网上的例子随意跑的,开始没觉得差距这么大 例子: https://gist.github.com/anonymous/31c99d0ce30080a158f2 结果: :~$ python t.py total run time: 14.747013092 :~$ pypy t.py total run time: 1.07921886444 | 
|  |      3awanabe      2014-09-23 17:16:15 +08:00 这个也就是pypy的JIT的作用了吧... | 
|  |      4awanabe      2014-09-23 17:16:53 +08:00 再加一句...重IO的就不太适用了...重计算的还是可以尝试的 | 
|  |      6eriale      2014-09-23 17:30:01 +08:00 重IO的瓶颈不在计算上,Livid换过,瓶颈不在python解释器,而是mysql | 
|  |      8CMGS      2014-09-23 17:37:15 +08:00 CPU bound的有效,IO bound的……少侠还是 tornado + pypy吧…… | 
|      10mengzhuo      2014-09-23 19:04:25 +08:00 pypy请看看内存用量 3倍 | 
|  |      12CMGS      2014-09-23 22:32:40 +08:00 | 
|  |      13awanabe      2014-09-23 23:36:18 +08:00  2 @geew  只是举个例子, 描述下大致运作的规则.  你的例子中, 重复1000000次, JIT处理的时候, 就会缓存这段代码. 节省了字节流->机器码的转换. 类似于这样的, 对于计算, 细粒度的比如 1+1之类, 可以缓存结果. 那就省了很多CPU, 所以快在这里面. 对于web服务器, 很多是对于DB, 缓存读取. 遇到这样的IO请求, 就会阻塞. 这个时候只能等待. 可以看下 @CMGS 提供的 tornado + pypy, 虽然tornado主打异步, 不过tornado的mysql也是阻塞的, 如果用到mysql, 瓶颈还在mysql. 以上差不多, 就是解释下 "重IO的就不太适用了...重计算的还是可以尝试的" | 
|  |      16nooper      2014-09-28 17:11:45 +08:00 cython 需要内存管理和gil 机制。 |