python的用途越来越广泛,很受欢迎,必然因为其有很多优点,但是python也拥有一大缺点,相比于c语言,
python运行效率低,那么是什么原因导致的呢?
1. python是动态语言
动态语言是一类在运行时可以改变其结构的语言,如新的函数、对象、代码可以被引入,已有的函数可以被删除或其他结构上的变化等,该类语言更具有活性,但是不可避免的因为运行时的不确定性也影响运行效率。
2. python是解释执行
相比于c语言编译性语言编写的程序,python是解释执行语言,其运行过程是python运行文件程序时,python解释器将源代码转换为字节码,然后再由python解释器来执行这些字节码。其每次运行都要进行转换成字节码,然后再有虚拟机把字节码转换成机器语言,最后才能在硬件上运行,与编译性语言相比,其过程更复杂,性能肯定会受影响。
3. python中一切都是对象
python是一门面向对象的编程语言,其设计理念是一切皆是对象,如数字、字符串、元组、列表、字典、函数、方法、类、模块等都是对象,包括代码,每个对象都需要维护引用计数,因此,增加了额外工作,影响了性能。
4. python gil
gil是python最为诟病的一点,因为gil,python中的多线程并不能真正的并发,即使在单线程,gil也会带来很大的性能影响,因为python每执行100个opcode就会尝试线程的切换,因此,影响python运行效率。
5. 垃圾回收
python采用标记和分代的垃圾回收策略,每次垃圾回收的时候都会中断正在执行的程序,造成所谓的顿卡,影响运行效率。
以上就是python 为什么效率低的详细内容。