V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
推荐学习书目
Learn Python the Hard Way
Python Sites
PyPI - Python Package Index
http://diveintopython.org/toc/index.html
Pocoo
值得关注的项目
PyPy
Celery
Jinja2
Read the Docs
gevent
pyenv
virtualenv
Stackless Python
Beautiful Soup
结巴中文分词
Green Unicorn
Sentry
Shovel
Pyflakes
pytest
Python 编程
pep8 Checker
Styles
PEP 8
Google Python Style Guide
Code Style from The Hitchhiker's Guide
q9REUgpVVCU77pWj
V2EX  ›  Python

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

  •  
  •   q9REUgpVVCU77pWj · 2018-04-28 16:22:06 +08:00 · 5147 次点击
    这是一个创建于 2410 天前的主题,其中的信息可能已经有所发展或是发生改变。

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

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

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

    第 1 条附言  ·  2018-04-29 06:27:18 +08:00
    不好意思各位,是我没说明白。
    卡主要是在 sublime text 打印会卡,刚重装了一下系统,直接 cmd 里打印好点了。
    但平时还是觉得直接用 sublime 方便,因为还有点前端东西要写。并且打印出来有 python 的对应颜色主题,看起来比较清楚。
    而且 mac 下的 sublime 就挺快的。

    配置嘛,win 是 3.4G*2/24G 内存,我是美术,这台平时修图做 3D 妥妥地;
    mac 则是 2011 年中的残电 MBA,扔那儿跑 mongodb 的,偶尔改改代码。
    14 条回复    2018-04-30 01:23:26 +08:00
    nutting
        1
    nutting  
       2018-04-28 16:53:14 +08:00
    i2ex 上问,mac 肯定本来就好啊,哈哈
    wwqgtxx
        2
    wwqgtxx  
       2018-04-28 16:57:54 +08:00 via iPhone
    控制台的问题吧
    Qzier
        3
    Qzier  
       2018-04-28 17:01:44 +08:00 via iPhone
    用 powershell 试试
    sleshep
        4
    sleshep  
       2018-04-28 17:01:44 +08:00 via Android
    可能是代码页转换 overhead
    iwtbauh
        5
    iwtbauh  
       2018-04-28 17:48:36 +08:00 via Android
    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
        6
    orangeade  
       2018-04-28 17:52:41 +08:00 via Android
    换 WSL
    goodryb
        7
    goodryb  
       2018-04-28 19:09:42 +08:00 via iPhone
    到底快多少,两边什么配置,测试方法或者代码是什么

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

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

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

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

    至于楼上说的 Shell,虽然我也觉得 Zsh / Bash 更好用,但单就这个问题而言,并无任何关系。
    kojirou
        12
    kojirou  
       2018-04-29 17:17:50 +08:00
    这就是 windows 的生产力咯
    用个 ffmpeg 结果因为 cmd 效率太低 都卡在 log 输出真的好笑
    crb912
        13
    crb912  
       2018-04-29 19:50:41 +08:00
    @kojirou 用 powershell 试试吧,我的 ffmpeg 正常输出。
    wwqgtxx
        14
    wwqgtxx  
       2018-04-30 01:23:26 +08:00
    @kojirou 不至于吧,我的 win10 1703 和 1709 下用 ffmpeg 压 h265 都很正常呀,也是用 cmd 做控制台的,并没有卡在 log 输出上呀
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   3529 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 22ms · UTC 10:57 · PVG 18:57 · LAX 02:57 · JFK 05:57
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.