最近研究 python 的一个小失落

2016 年 8 月 1 日
 SlipStupig

python 有一个很-O 选项我一直很好奇这个选项是干嘛的, help 写的是:

 -O     : optimize generated bytecode slightly; also PYTHONOPTIMIZE=x
-OO    : remove doc-strings in addition to the -O optimizations

python 优化选项可以产生更小的 bytecode 文件,我试着选了一下,确实小了一点,但是对性能提升并没有什么用,后来看官方邮件是这么回复的:


> Py_NoSiteFlag = 1...assuming you don't need to load site.py 
>
>     for example:</br>
>
> extern int Py_OptimizeFlag;
> extern int Py_NoSiteFlag;
> ...
> if( !Py_IsInitialized() ) {
>     Py_OptimizeFlag = 2;
>     Py_NoSiteFlag = 1;
>     Py_Initialize();

最后结论是 python 优化选项并没有什么用,想加速换 pypy

33575 次点击
所在节点    Python
268 条回复
Feiox
2016 年 8 月 18 日
@FrankHB @serial 哎。

贴一段维基百科的解释,单就谁对谁错不就结了么。如果说维基百科在这种词条上都不具有权威性,那,好吧,我服。

编译器( Compiler ),是一种计算机程序,它会将用某种编程语言写成的源代码(原始语言),转换成另一种编程语言(目标语言)。

它主要的目的是将便于人编写,阅读,维护的高级计算机语言所写作的源代码程序,翻译为计算机能解读、运行的低阶机器语言的程序,也就是可执行文件。编译器将原始程序( Source program )作为输入,翻译产生使用目标语言( Target language )的等价程序。源代码一般为高阶语言( High-level language ),如 Pascal 、 C 、 C++、 C# 、 Java 等,而目标语言则是汇编语言或目标机器的目标代码( Object code ),有时也称作机器代码( Machine code )。 一个现代编译器的主要工作流程如下: 源代码( source code )→ 预处理器( preprocessor )→ 编译器( compiler )→ 汇编程序( assembler )→ 目标代码( object code )→ 链接器( Linker )→ 可执行文件( executables ), 最后打包好的文件就可以给电脑去判读运行了。

哎。
FrankHB
2016 年 8 月 18 日
@andyL 一坨判定性问题给否定还叫没深入的正解,你还想怎么深入?对正在没人提什么代码自顾自跑题的神棍要怎么不流氓?
@xieyudi1990 一开始喝茶看戏偶尔吐槽,某人跳到藐视群众智商的程度就没办法了。
那个映射我也没懂。感觉是不知道与非门之外的门,或者不知道与非门比等效的其它门好在哪(一般意义下的硬件成本)。跟什么映射扯不上关系。
@Feiox 喂鸡也说不上多权威,但否定源语言就是为了设计得接近自然语言以及目标语言就只能用二进制表示的神棍理论倒也差强人意。
只是看他脸皮厚到被贴了喂鸡条目直接打脸都能无视就兴味索然了。对后排群众有提示看“ source code ”这个词条。
R4rvZ6agNVWr56V0
2016 年 8 月 20 日
@andyL 前因后果观察不够仔细,所以你不太理解大家为啥辩跑题了
R4rvZ6agNVWr56V0
2016 年 8 月 20 日
@FrankHB
@wizardforcel
@dzhou121

你们对处理器架构、编译器、操作系统知识的掌握,跟那个被删号的家伙以及簇拥们彼此都不在一个层次上,辩论也没意义。这好比现代外科大夫给部落巫医簇拥们治病一样。

所以么,别去“治疗” “装睡的人” 以及 “根本醒不来的人” 了 。
FrankHB
2016 年 8 月 20 日
@GeekGao “请尽量让自己的回复能够对别人有帮助”,我想如果能提供一点不那么常被引用到的关键词,大概也算……当然,建立在这里的大部分读者不是 “装睡的人” 以及 “根本醒不来的人” 的假设上。
onlyForFun
2016 年 8 月 22 日
@serial 对于你这种逗比,我也是醉了,而且特么明显用的是小号。。。

还是建议大家,忽视这种没逼格的人
onlyForFun
2016 年 8 月 22 日
@Livid 做得好,给赞,👍
mutalisk
2016 年 11 月 8 日
@serial
干嘛这么纠结 pymongo, pymysql, paramiko 。
不是还有 txmongo, txmysql, twisted/conch 。
对于那些用 python select 的 module, 也可以 monkey patch 一把嘛。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://study.congcong.us/t/296233

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX