高性能瓶颈
1.全局解释器
对于Python来说,充分利用多核性能的阻碍主要在于Python的全局解释器锁(GIL)。GIL确保Python进程一次只能执行一条指令,无论当前有多少个核心。这意味着即使某些Python代码可以使用多个核心,在任意时间点仅有一个核心在执行Python的指令。以前面调查的例子来说,即使我们有100位提问者,然而一次仅有一位可以提问和接受回答,并没有什么用!
2.Python的动态类型以及python并不是编译性语言
一些常用高效库
array
原始类型的高效数组。
math
基本数学操作,包括一些简单的统计数学。
collections
多种对象,包括双向队列、计数器和字典的变种。
numpy
一个Python数字库(矩阵运算的基石库)。
cipy
大量可信的科学库的集合,通常包含了广受尊重的C和Fortran库。
pandas
一个数据分析库,类似于R语言的数据框或Excel表格,基于scipy和numpy。
scikit-learn
正在快速成为默认的机器学习库,基于scipy。
tornado
一个提供了并发机制的库。