[Exchange Ideas] NTSync 显著提升了 Windows 应用在 Linux/macOS 上的运行性能
Tofloor
poster avatar
加菲不是胖橘
deepin product team
2025-06-30 11:36
Author

Wine 10.11 版本对 NTSync 的优化是近期开源兼容层技术的重大改进,显著提升了 Windows 应用在 Linux/macOS 上的运行性能,尤其在游戏和多线程应用场景中表现突出。

🔧 一、NTSync 优化的技术背景

  1. 原有瓶颈问题
    • Wine 此前通过用户空间的 RPC(远程过程调用)模拟 Windows NT 同步原语(如互斥锁、信号量),导致频繁的进程间通信开销,成为性能瓶颈。
    • 例如,运行《愤怒之脚》时,RPC 延迟使帧率仅达 69 FPS,而原生 Windows 环境可达更高水平。
  2. Linux 内核的底层支持
    • Linux Kernel 6.14 引入 /dev/ntsync 虚拟设备,直接在内核层实现 NT 同步原语,避免了用户态与内核态的切换开销。

    • 关键特性包括:

      • 互斥锁嵌套支持:允许同一线程多次获取锁,符合 Windows API 行为。
      • 事件自动重置:条件变量触发后自动恢复初始状态,减少手动管理成本。

二、Wine 10.11 的具体优化

  1. 线程与同步机制增强
    • 通过集成 /dev/ntsync 驱动,Wine 10.11 将同步操作(如锁竞争)的处理速度提升 6-8 倍。例如,《尘埃 3》的帧率从 110.6 FPS 飙升至 860.7 FPS。
    • 修复了多线程应用中常见的输入焦点丢失问题(如《原神》窗口切换后恢复焦点)。
  2. 兼容性扩展
    • 完善对 Windows Interface Definition Language (WIDL) 的支持,生成更准确的 Windows Runtime 元数据,提升与现代 Windows API(如 UWP 应用)的兼容性。

    • 修复 25 项 BUG,包括:

      • 《辐射 3》收音机音乐功能恢复。
      • 《命令与征服:将军零点》菜单图形渲染异常。
  3. 音频与办公场景优化
    • 改善音频制作软件(如 Mixcraft)中 VST 乐器的兼容性,降低延迟和卡顿。
    • 办公应用(如 WPS Office)的文档切换和多窗口操作更流畅。

🖥️ 三、性能提升的底层原理

技术对比 旧方案(RPC 模拟) 新方案(NTSync 内核驱动) 提升效果
同步原语实现 用户空间进程仲裁锁竞争 内核直接管理锁状态 减少 90% 进程间通信开销
多锁操作效率 需多次 IPC 调用,易死锁 原子化操作,支持同时获取多个锁 游戏加载速度提升 43%2
线程调度延迟 依赖 Wine 服务进程响应 内核级线程唤醒机制 音频延迟降低至 5ms 以内

🌟 四、开发者与用户影响

  1. 游戏玩家
    • 支持更多 DirectX 12 游戏的高帧率运行,如《赛博朋克 2077》通过 Proton(基于 Wine)的稳定性显著提升。
  2. 开发者
    • 移植 Windows 应用时,无需重写同步逻辑,直接兼容 NT 内核行为。
  3. Linux 生态
    • 推动 Steam Deck 等游戏设备的性能优化,SteamOS 3.0 已默认启用 NTSync 驱动。
Reply Favorite View the author
All Replies
许言午
deepin
2025-06-30 11:45
#1

上架deepin仓库了吗

Reply View the author
kero990
deepin
2025-06-30 14:38
#2

都说了需要6.14内核了

Reply View the author
enforcee
deepin
2025-07-01 06:59
#3

macos有ntsync吗

rage

Reply View the author