主题:Lua 语言? -- GUNXU
Python的作者Guido van Rossum 在2007年9月写过一篇Blog: It isn't Easy to Remove the GIL
GIL一方面使得GC(引用计数)容易实现,一方面限制了多线程只能同时使用一个核。
在Python早期,尚未会有现在这么广泛严肃的应用需求,当时个人电脑使用多CPU也还罕见,因此问题尚不严重,后来在1999年Greg Stein 等人进行了尝试去除GIL,虽然实现了GIL去除,但是性能反而下降了(至少对于单线程的应用来说是下降的)。
现在新的GIL实现相对旧的性能有所改进,另外Python的C扩展、磁盘IO、网络IO也会释放GIL,因此主要影响计算密集型应用,这类应用Python本来相对C、C++、Fortran速度也差很多,可以考虑密集运算部分写为C扩展,即提高了速度,也不受GIL限制。Cython也是提高性能相关的工具。
另外,还可以通过多进程来利用多核/CPU。
- 相关回复 上下关系8
🙂luajit+ffi 数值运算快过gcc o2 优化一倍 1 GUNXU 字1340 2011-02-26 08:59:36
🙂作为数值运算的语言 --- Lua, LuaJIT FF GUNXU 字0 2011-02-18 05:45:41
🙂文本及数值负载都很重? 金口玉言 字370 2011-02-09 19:55:28
🙂去除GIL比较困难
🙂python不错,Lua也很好 1 GUNXU 字977 2011-02-10 21:02:33
🙂请教什么是再入式编译器和非侵入性的扩展原语言? 金口玉言 字121 2011-02-11 06:42:11
🙂再入式编译器和非侵入性扩展 GUNXU 字305 2011-02-11 17:26:14
🙂能不能具体介绍一下 pastebt 字46 2011-02-11 22:18:06