解决 macos上chrome/VS Code 滚动掉帧卡顿的问题

2019年12月12日 10:34:27 - update

vscode 1.40 disable-gpu-acceleration 更新了一个配置选项:

  • 打开命令板 (Ctrl+Shift+P/ CMD+Shift+P / F1).
  • 输入Preferences: Configure Runtime Arguments
  • 添加 "disable-hardware-acceleration": true 配置项
  • 重启
    此时应用启动时默认关闭硬件加速,等同于code --disable-gpu

2019年09月04日22:18:16 - update 已fixed 只是缓解

当前版本已更新到 1.37.1 卡顿问题仍会有,这个时候突然灵光闪现,去搜索了一下关闭gpu渲染的方式:

# macos
$ code --disable-gpu 

首先需要完全退出vscode,此时再通过禁用gpu启动vscode,之前的卡顿现象就彻底消失了。
经过长时间的观察,我猜测是我使用的macbook pro 集显渲染存在问题,导致输入延迟和掉帧,关闭gpu渲染后,整个webview不再出现原先严重的输入延迟,算是真正的解决了开发体验的问题(除了启动时需要手动关闭gpu渲染)。同理,先前卡顿时,开启chrome devtool Layer borders,后卡顿现象消失,说明开启该功能后,渲染会交由CPU处理,很可能是GPU渲染出现了问题。

chrome devtool

2019年07月04日12:45:53 - update

今天更新了vscode 1.36,遇到了之前出现的问题,现在不再是2k屏渲染的差异问题,尝试单屏重启vscode,重启电脑,仍会有相当大的输入响应延迟。
重装1.35.1版,问题消失。接着尝试安装insider版本,同样出现了卡顿。

比对多几个版本vscode的内置版本情况:
Code/1.35.1 Chrome/66.0.3359.181 Electron/3.1.8
Code-Insiders/1.36.0-insider Chrome/69.0.3497.128 Electron/4.2.5

再回看之前的记录,最早出现在68升级到69时候,出现这个问题,比对今天的情况,基本可以确定问题是Chrome69存在这一个问题。
按之前后续的体验来看,目前只能等vscode多更新几个electron版本,至少要在chrome71以后才得到解决。

electron 5.0 版本log

2018年12月19日11:47:51 - update

经过一段时间使用,发现可能chrome卡顿可能是macos带来的问题,已复现问题。
我的设备是一台macbook + 外接2k屏。

复现场景:
当外接2k屏时,启动基于chromium的程序,比如vscode 或者chrome,开启后,用户输入的响应会被延迟到400 ~ 1000ms,即下文截图中的performance的紫色宽度条。这个时候整个程序的渲染都是非常卡顿的。此时拔掉显示器线,依然是卡顿的情况。
未接入2k屏时,启动程序时,渲染则是正常的,此时再接上外屏,程序也是正常的。

现在不清楚是chrome在启动时,获取了显示器参数来处理输入事件还是什么原因导致了这个问题。

ps. 需要注意,macos下关闭窗口不等于关闭程序,只要保证启动程序时,不接入外屏,之后使用中,只要不完整退出程序(退出后dock上不显示),就能保证程序正常使用。


退出程序

版本

MacOS: 10.13.14
MacBook Pro 2017 无touch-bar
chrome版本 69.0.3497.92(正式版本) (64 位)

最近chrome69更新,第一时间我就从68更新到了69,紧接着就出现了浏览器整体卡顿的问题。
这个卡顿表现在,外接2k显示屏情况下,chrome在外接屏上整体帧数比mac内屏上少20帧,滚动页面时明显感觉到卡顿。google了半天后,没有搜到什么有用的资料。

开启开发者工具,使用performance录制卡顿和非卡顿时的表现可以发现,interaction下的scroll update耗时相差了100~200ms左右。

紧接着,尝试重装68,68下chrome没有出现双屏时表现不一致的情况。而且chrome自更新也让我放弃了继续折腾。再换了n个关键词后,搜到一个chrome 提供了硬件加速的选项,关闭之后,问题得到了解决(chrome 69),恢复了正常。

然而过了两天后,类似的事情又发生了,这次略有不同,仅在公司后台web项目下,外屏的页面只有不到5帧,而且在项目的tab下,整个浏览器也出现了卡顿,切换到其他页面就没有这个情况。

同样的问题,也是搜索了半天,仍然得不到解决。昨晚突然想起,硬件加速关闭了,重新打开硬件加速,页面又恢复了流畅,非常的迷。

这里放一些performance的截图,后面的截图,前本段是内屏,后半段是外屏,可以看紫色条宽度对比:

关闭硬件加速-1
关闭硬件加速-2

可以看到,主线程存在堵塞的情况,交互发生后,等待主线程超过了100ms,而每一次滚动鼠标滚轮,触摸板或者其他交互,均会因为主线程堵塞被拖长执行时间,我猜测可能是chrome在不同屏幕分辨率下的调用策略不同,同时由于之前关闭了硬件加速(GPU加速),导致页面的渲染全部交由主线程(CPU)处理,一旦主线程出现卡顿或者处理延迟,整个渲染就被延后。现在重新开启了硬件加速,这部分问题得到了缓解,但是从性能上看,依然是存在一些问题的,但延迟降低到了100ms以下,帧率相比之前的卡顿起码能恢复到60帧,而不是全程5帧。

开启硬件加速后

虽然问题暂时得到了解决,不知道之后还会不会出现类似的问题,这次的问题,希望未来能够学会到如何提bug给google,或者参与到更大的开源项目中。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 216,142评论 6 498
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,298评论 3 392
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 162,068评论 0 351
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,081评论 1 291
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,099评论 6 388
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,071评论 1 295
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,990评论 3 417
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,832评论 0 273
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,274评论 1 310
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,488评论 2 331
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,649评论 1 347
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,378评论 5 343
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,979评论 3 325
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,625评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,796评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,643评论 2 368
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,545评论 2 352

推荐阅读更多精彩内容

  • 知道他暑假作业没写完。于是在他来的第二天便带他去学校图书馆,我工作,他写作业。我偷偷观察发现,他并坐不住。作业没啥...
    我就是小树张淑娟阅读 227评论 0 1
  • 生活中,擦肩而过的人很多,若有缘分便会再相遇的。 一年了,你们毕业一年了,可一次也没回过母校,我也快要毕业了。 你...
    女神经晞晞阅读 131评论 0 0
  • 通俗讲解边缘计算 随着物联网越来越火,同时伴随着物联网而来的,就是各种概念和各种技术,其中一个就是边缘计算,当然还...
    一路向东_lxd阅读 72,180评论 11 65
  • 很多人遇到说不清的危险都会搬出这句话 「宁可信其有,不可信其无喔」 我也爱这句话 当我遇到了爱 ——《遇到说不清的...
    段童阅读 256评论 1 2