Python的缺点就是运行特别慢,比其他语言慢2-10倍
原因:它是GIL(Global interpreter lock 全局解释器锁)===cpython,其他语言实现的Python可以没有如jpython,为解释型语言,为动态型语言
$\textcolor{red}{静态语言:}$数据类型需要先声明
$\textcolor{red}{动态语言:}$即语言无需声明数据类型直接可以使用的语言
Python写起来方便,简短的代价为执行速度
GIL:使得在同一进程内任何时刻仅有一个线程在执行(Cpython)
Python的解析器 ——
含有GIL的有:CPython、PyPy、Psyco;
没有GIL的有:JPython,IronPython。
multiprocessing库的出现很大程度上是为了弥补thread库因为GIL而低效的缺陷
方便将来$\textcolor{orange}{量化}$或者别的应用场景中的一些$\textcolor{green}{重计算的部分}$单独取出来,然后用Cython改写,独立成模块来提高运算速度
$\textcolor{red}{cpu密集型}$:也叫计算密集型,,指的是系统的硬盘、内存性能相对CPU要好很多,此时,系统运作大部分的状况是CPU Loading 100%,CPU要读/写I/O(硬盘/内存),I/O在很短的时间就可以完成,而CPU还有许多运算要处理,CPU Loading很高。
$\textcolor{red}{io密集型}$:IO密集型指的是系统的CPU性能相对硬盘、内存要好很多,此时,系统运作,大部分的状况是CPU在等I/O (硬盘/内存) 的读/写操作,此时CPU Loading并不高。
$\textcolor{red}{Cpython}$
1 | 1.cpython和ipython的区别: |
$\textcolor{red}{Cython}$
1 | 1.在 Cython 中,类型标注对于提升速度是至关重要的 |
$\textcolor{red}{速度快慢}$:纯Python版本<Python+c混合<C实现Python调用<纯c(C实现C调用)
https://www.jianshu.com/p/9410db8fbf50
$\textcolor{red}{Cython语句和表达式}$
1 | 1.Cython的语句和表达式遵循Python的语法 |