初学python,以前搞过java和cpp。早就知道解释型的脚本语言肯定不快。但心存疑惑python和php,js,ruby等类型的语言,单从运行效率上来讲哪个更快一些?另外,python也能像java一样编译成字节码,是不是速度会提升很多?python能编译成机器码吗?
回复内容:
python是慢,但是慢在特定的场景,两个最主要的: 1,全局执行锁GIL所以无法用多核 2,所有东西都是对象且内部实现导致计算慢。如果你想写CPU密集的程序,建议别用py,如果是IO密集的程序,pyhton毫无问题。
PS:
1,除非明确业务场景,否则干讨论效率问题没意义,实际上,开发的绝大部分时候,效率永远不是第一位的问题
2,就算效率是问题,那绝大部份时候也不是语言问题
3,就算是语言问题,综合衡量成本等各方面因素,绝大部份时候换语言也不是最好的选择
"快"和"慢"都是看场景的
Java 也有比 Python 慢的地方, 例如做大矩阵运算没有 NumPy 效率高, 启动很慢等
Python效率比Java差很多,而且有了HHVM以后,PHP的效率都比Python高了。
所以建议在性能要求比较高的场合不要用Python。
=============== 以下吐槽 ==================
性能要求要多高才算高呢?如果是做网站的话,至少注册用户和PV要超过知乎或者豆瓣。
昨天看见一个注册用户只有一千多的网站在讨论性能问题。
先说说字节码。python编译成字节码几乎不会变快。python的执行过程是,先编译你的代码到字节码,然后虚拟机加载字节码执行。因此提前编译到字节码只能省一点编译时间,大部分时候这点时间都可以忽略。
就官方实现来说,python效率要比ruby高(php和js不太了解),但高的有限。如果真想用python追求效率,可以试试pypy,这个带jit的实现有些时候速度和c有一拼(当然jit能提速多少还得看应用场景)
另外,对于性能瓶颈不在计算速度的程序来说,python带来的性能损失还是很小很小的
Déclaration:Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn