为什么感觉同样的软件 在 mac 上使用比 win 上使用要慢或者卡顿?

2021-08-23 11:53:34 +08:00
 icebear0

本人用的 macbook pro15 寸的 配置 16+256 的

同样的软件 比如 ps wps 有道云笔记 网易云音乐 Office vscode 这些 感觉 win 上能秒开 拖哪里到哪里,但是 mac 上使用的话就会感觉有种莫名的卡顿,是我的错觉吗?

 win 配置和 mac 差不多  显卡处理器比 mac 好   都是笔记本
11126 次点击
所在节点    macOS
89 条回复
zhuangzhuang1988
2021-08-24 12:04:01 +08:00
就是这样, 没有 windows 指哪打哪的顺畅,
用了一周就退了。
emberzhang
2021-08-24 12:13:12 +08:00
@Resource 卡爆?什么配置啊,我感觉只有用 displaylink 才会把集显卡爆
Aspector
2021-08-24 12:13:44 +08:00
就 Windows 11 目前这个状态和方向,怕是吹不了几个月“指哪打哪”了
EvilDevilJin
2021-08-24 12:28:48 +08:00
楼主的感觉是对的.
有人说, Mac 是动画好, Windows 就是傻快傻快的.
我觉得 Mac 有凝滞感和延迟感.
Mac 有些应用冷启动确实很慢, 比如 Chrome.
看个人喜好吧, 不过升级了 win11 后, 感觉 win11 的动画也有了凝滞感,没有那种指哪打哪的感觉.
或许这种就是以后发展的方向?
oakcdrom
2021-08-24 12:32:29 +08:00
@wangxn 电脑该换换吧,冷启动几秒钟。。。不会超过 10 秒钟
MrKrabs
2021-08-24 12:33:50 +08:00
可能把字体渲染得那么丑不用多少性能吧~🤣
wangxn
2021-08-24 12:35:14 +08:00
@pocarisweat 右键可以选择直接打开那个文件夹。其实这种组织方式和 Windows 也没什么不同,Windows 绝大部分程序都不是单个 exe,一样需要加载各种东西。
wangxn
2021-08-24 12:38:06 +08:00
@oakcdrom 冷启动几秒钟?你和我说的是一件事吗?
tomato1111
2021-08-24 12:57:16 +08:00
我发现很多给 mac 辩解的人都是在提 mac 的 app 启动速度。。。然而 mac 慢的并不仅仅是一个启动速度。。。app 是不是秒开也不影响 GUI 的慢,mac 是 GUI 全方面的反应慢半拍。。。。你如果没感受到要么就是 windows 用的不够久,要么就是 mac 用的不够久。

mac 的慢,就是一种粘滞感,很不清爽的感觉。
ShadowPower
2021-08-24 12:59:40 +08:00
可以对比一下两个系统的绘图部分:
Mac 程序通过调用 Cocoa 中的 AppKit 相关接口实现绘图,坐标原点是左上角。
然后 AppKit 再去调用 Quartz 相关的接口,首先需要生成类似于 PostScript/PDF ( 1.4 版本)那种格式的数据,这种格式坐标原点是在左下角的。有点像数学课上学的那种 x-y 坐标系。
每次更新画面都要生成一次,里面会包含许多矢量图信息。
之后交给 Quartz Composer 按窗口的深度信息对这些数据做变换、加滤镜、点阵化之后,产生一个画面。有点像是渲染或者打印 PDF 文档的过程。这里会使用 OpenGL/Metal API,坐标原点在屏幕正中间。
虽然说,这套系统可以支持矢量图形数据,能实现设备无关的缩放,然而上层的 AppKit 接口只支持 2 倍缩放(使用 Retina 屏幕就会自动开启)。系统会将画面插值缩放(只缩小,不放大,使用 GPU 加速),得到一个最终渲染的画面。
如果你的逻辑分辨率没有恰好是物理分辨率的 1/2 (指的是两个坐标轴的数值),那么实际上显卡会渲染一个超出物理分辨率的画面。


Windows 的话,绘图几乎都是通过 API 调用实现的。
在没有窗口合成器的时代( Win XP 和以前的时代),每个窗口直接把像素信息写入显卡的帧缓冲区的一小块区域。
这个做法缺点就是当底部窗口未响应了之后,帧缓冲区的那部分区域就没办法更新。而顶部的窗口依然可以在那块区域绘图。这时候如果移动顶部窗口,因为底部窗口不更新自己负责的那块缓冲区域,会残留顶部窗口的画面。就像“纸牌”的通关画面一样。
后来有了 DWM,每个窗口只负责生成一块 Direct3D 纹理,由 DWM 将这些纹理合成最终显示的画面。应用程序可以调用 Direct3D/Direct2D (取代了 DirectDraw )/DirectWrite/GDI+(这个性能比较差)来绘制自己的窗口内容。
Direct2D API 的坐标原点在屏幕左上角,y 轴向下,x 轴向右,和大多数图形界面库的设计一致。
这些纹理数据可以做变换,加滤镜,也可以复用。因此 Windows 实现了很多窗口动画效果,像是 Flip3D 、打开和关闭动画、最小化动画、任务栏窗口缩略图、Alt+Tab 窗口缩略图等等。
从这个时候开始,Windows 的显卡驱动需要实现 WDDM 驱动模型,然后才可以开启 Aero 桌面效果。DWM 会调用显卡驱动接口实现桌面合成与渲染。
Win Vista 、Win 7 时代,不支持 WDDM 的显卡是不会使用 DWM 的。走 Win XP 那套。
Win 8 、Win 10 时代,DirectX 更新到了 11,引入了 WARP 这套光栅化引擎。DWM 也被移到内核里。在显卡不支持 WDDM,或者电脑根本就没有 GPU 的时候,WARP 会生成当前 CPU 的机器码来完成渲染计算。性能与 Linux 下的 Mesa LLVMpipe 相当,比苹果的软件渲染器快大约 50 倍。
如今的消费级显卡都实现了 WDDM 驱动模型。不像 Vista 刚发布的时代,大多数电脑都没办法开启 Aero 桌面。

当然,苹果电脑根本不需要考虑软件渲染器的性能,所有在售的苹果电脑一定带有 GPU (而 Windows 设备不一定)。

此外,曾经 Windows 游戏程序是可以独占整个显卡直接输出画面的。Mac 平台没有这种功能,虽然性能低了一些,但有一个好处是可以给全屏游戏画面应用屏幕色彩校准。
这一点倒是影响不大,因为 Mac 平台的游戏太少了。
当然 Windows 10 最近的更新引入了“全屏优化”这个玩意之后,也没法独占显卡输出了。

我才疏学浅,如果有什么不对的地方,欢迎指出。
LUO12826
2021-08-24 13:26:30 +08:00
@ShadowPower 讲得真好,但“只缩小,不放大”好像绝对了,现在有些 MacBook 也可以把分辨率设为低于屏幕分辨率,一般是“缩放”里最左边那一档。
ShadowPower
2021-08-24 13:39:19 +08:00
@LUO12826 好吧……我已经有一段时间没有用 macOS 了
Resource
2021-08-24 13:49:14 +08:00
@emberzhang #62 cpu i5 8500+32g 内存,之前卡特琳娜很流畅,升级 bigsur 之后卡卡的
Resource
2021-08-24 13:51:42 +08:00
@Resource #58 另一台 9400 + 5500xt 独显 +32g 内存黑果则升不升级 bigsur 都挺流畅,所以我猜测是核显性能不太行
icenine
2021-08-24 13:54:44 +08:00
自信点,把感觉两字去掉,他就是慢
以前机械硬盘时至少开机 mac 还是比 win 快的
没成想换了 SSD,mac 开机还是那个速度,
估计加载动画是个固定时长的 mp4 文件
holulu
2021-08-24 14:50:29 +08:00
优化的问题,针对用户多的平台做更多优化。而且同样的功能在不同平台的实现方法可能不一样,如果没有深入去做,体验会相差很多,特别是涉及 GUI 的程序就更是如此。
felixcode
2021-08-24 14:57:40 +08:00
mac 字体渲染好,慢个十倍都不是什么事,就是这么傲娇。
McreeWu
2021-08-24 15:13:06 +08:00
用 mac 单纯只是为了好看 以及方便(我是运维),windows 用起来太割裂,但是你要说速度 windows 真的吊打 macos
muxueqz
2021-08-24 15:17:28 +08:00
Linux 用户表示 WPS for Linux 可以秒开
Zien
2021-08-24 15:35:47 +08:00
mac 即时秒开,动画也会比较慢

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

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

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

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

© 2021 V2EX