Python 的 print 为什么在 Mac 比 Win 快那么多?

2018-04-28 16:22:06 +08:00
 q9REUgpVVCU77pWj

小白问题哈,平时简单写点爬虫,Sublime 搞定。

但是发现在 Win 下 print,大一点的文本很容易就卡死了。直接在 cmd 里打,也好点有限。
在 Mac 下则完全顺畅。

网上搜过,也没见到靠谱的回答(而且 mac 比 win 快很容易搜出其他内容),单就 Python 的 print 论,这速度差异到底是为啥呢?

5060 次点击
所在节点    Python
14 条回复
nutting
2018-04-28 16:53:14 +08:00
i2ex 上问,mac 肯定本来就好啊,哈哈
wwqgtxx
2018-04-28 16:57:54 +08:00
控制台的问题吧
Qzier
2018-04-28 17:01:44 +08:00
用 powershell 试试
sleshep
2018-04-28 17:01:44 +08:00
可能是代码页转换 overhead
iwtbauh
2018-04-28 17:48:36 +08:00
win 的 console 是本地代码页,兼容 DOS 的设计,中文就是 GBK 系列
输出时 utf-8 转 gbk,啧啧
另外,就算 win 的 console 用现代 windows 的 UCS2 编码( UTF-16 ),也是需要 UTF-8 转 UTF-16
macos 的终端应该是默认 UTF-8,因为 BSD 的是 UTF-8,macos 基于 BSD
orangeade
2018-04-28 17:52:41 +08:00
换 WSL
goodryb
2018-04-28 19:09:42 +08:00
到底快多少,两边什么配置,测试方法或者代码是什么

什么都没有,就说 windows、Mac 怎么样
chinawrj
2018-04-28 19:23:58 +08:00
控制台问题吧。换掉 cmd,用 cmder 或者其他什么的。
crb912
2018-04-28 20:59:01 +08:00
print 的速度的差异,肉眼都能看出来了?
你大可以把代码的执行时间输出下来,比对一下。
这么黑 windows 也不太好吧,虽然我是 linux 用户。。

不过,window 确实没有好用的 shell,不论是 cmd 还是 powershell 都不太好用。建议你试试 powershell。个人认为:
git bash> powershell > cmd
ericls
2018-04-28 22:18:06 +08:00
你要是换 urxvt 或者 alacritty 会更快……

print 的速度 基本上是 终端模拟器的速度

我一般用 tree / 来测试
Arnie97
2018-04-29 12:48:10 +08:00
这是 cmd 的锅,如果不想换 Terminal 的话,可以选择重定向到文件。
比方说,我拿 print(end='.')作为简易进度条,在 cmd 上会立即输出,而在 Linux Terminal 上不会立即输出,需要 flush。

至于楼上说的 Shell,虽然我也觉得 Zsh / Bash 更好用,但单就这个问题而言,并无任何关系。
kojirou
2018-04-29 17:17:50 +08:00
这就是 windows 的生产力咯
用个 ffmpeg 结果因为 cmd 效率太低 都卡在 log 输出真的好笑
crb912
2018-04-29 19:50:41 +08:00
@kojirou 用 powershell 试试吧,我的 ffmpeg 正常输出。
wwqgtxx
2018-04-30 01:23:26 +08:00
@kojirou 不至于吧,我的 win10 1703 和 1709 下用 ffmpeg 压 h265 都很正常呀,也是用 cmd 做控制台的,并没有卡在 log 输出上呀

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

https://www.v2ex.com/t/450706

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

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

© 2021 V2EX