微軟工程師揭秘 Windows 剪貼板優化方式:是如何獲得最佳性能的

it之家 5 月 9 日消息,據外媒 neowin 今日報道,微軟高級工程師雷蒙德・陳在微軟網站的專欄《the old new thing》更新博文,他詳細說明了 windows 本地剪貼板與其他剪貼板管理器的不同之處,並解釋了這種設計為何有益。

it之家註:windows 提供了默認的剪貼板,可以通過「設置」開啟,也可以通過 win + v 快捷鍵直接打開。

在這篇文章中,雷蒙德・陳回答了一個大家可能會有疑問的問題:「為什麼剪貼板歷史記錄無法捕捉到剪貼板內容的快速變化?」他表示,採用非同步處理的方式實際上讓 windows 的剪貼板功能在性能上更優,因為這樣不會因為頻繁的變化而影響系統速度。

windows 能夠實現這一點,是通過 addclipboardformatlistener 函數和 wm_clipboardupdate 消息標識符。addclipboardformatlistener 是 winuser 頭文件(.h 文件)的一部分,該文件幫助處理鍵盤、滑鼠等各種用戶輸入。這些 windows api 功能最早是在 windows vista 中引入的。

他寫道:

剪貼板歷史記錄服務是非同步工作的。它通過 addclipboardformatlistener 來註冊剪貼板變化,一旦接收到變化通知,系統就會更新剪貼板歷史記錄。由於監聽器是非同步接收通知的,因此在接收到 wm_clipboardupdate 消息時,剪貼板可能已經發生了第二次變化。

這與剪貼板查看器不同,後者會在每次剪貼板變化時同步通知。同步通知的缺點是,可能會錯過剪貼板的某些變化,而非同步方式的好處則在於,剪貼板的更新不會拖慢或卡頓系統