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

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

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

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


Python 的 print 为什么在 Mac 比 Windows 快那么多?
15 回复

i2ex 上问,mac 肯定本来就好啊,哈哈


我无法理解你的问题。

控制台的问题吧

用 powershell 试试

可能是代码页转换 overhead

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

到底快多少,两边什么配置,测试方法或者代码是什么

什么都没有,就说 windows、Mac 怎么样

控制台问题吧。换掉 cmd,用 cmder 或者其他什么的。

print 的速度的差异,肉眼都能看出来了?
你大可以把代码的执行时间输出下来,比对一下。
这么黑 windows 也不太好吧,虽然我是 linux 用户。。

不过,window 确实没有好用的 shell,不论是 cmd 还是 powershell 都不太好用。建议你试试 powershell。个人认为:
git bash> powershell > cmd

你要是换 urxvt 或者 alacritty 会更快……

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

我一般用 tree / 来测试

这是 cmd 的锅,如果不想换 Terminal 的话,可以选择重定向到文件。
比方说,我拿 print(end=’.’)作为简易进度条,在 cmd 上会立即输出,而在 Linux Terminal 上不会立即输出,需要 flush。

至于楼上说的 Shell,虽然我也觉得 Zsh / Bash 更好用,但单就这个问题而言,并无任何关系。

这就是 windows 的生产力咯
用个 ffmpeg 结果因为 cmd 效率太低 都卡在 log 输出真的好笑

用 powershell 试试吧,我的 ffmpeg 正常输出。

不至于吧,我的 win10 1703 和 1709 下用 ffmpeg 压 h265 都很正常呀,也是用 cmd 做控制台的,并没有卡在 log 输出上呀

回到顶部