小智 15
主要实现是用C语言编写的,并且编译为机器代码(即汇编使CPU可读).所以编写它的程序集当然是可能的,如果它可以用于编译器,那么在理论上它对人类是可能的.实际上,它甚至都不实用.不仅asm比C更低级(显着增加开发时间,甚至可能与项目大小成比例),它也是高度特定于平台的,因此每个端口都需要大量工作(并且维护数量乘以数字)支持的平台 - 在CPython的情况下相当多.
除此之外,如果这会产生显着的速度加成,这是非常值得怀疑的.把它写得更接近金属并不会让事情变得更加神奇(相反的情况可能就是这样 - 你很难找到一个能比一四个或五个众所周知的C编译器更好地编写更好的程序集的程序员) .Python的许多缓慢来自于语言所包含的许多抽象和间接,而不是来自这些的粗略实现.
一个更有前途的方法(确实遵循几个替代实现)是一个聪明的Just In Time-Compiler(JIT),它保留了所有的动态性,但利用了大多数Python程序通过识别最常见的方式很少使用该动态的事实.运行时的路径并优化这些路径.这些复杂的程序再次不是用asm编写的.
归档时间: |
|
查看次数: |
1287 次 |
最近记录: |