真的挺后悔自己高中没好好学习,自己曾是湖北八校之一的学生,毕业之后看着自己的同学不是985就是211,也许当时可能觉得没啥差距,但是真就一本管学习,二本管纪律,三本管卫生,985大学的教学模式和方法以及教育资源,真的不是二本,三本可以比的,希望大家都可以好好学习,我个大学生看个这个,快感动死了。
近日最新消息,腾讯QQ近期对桌面客户端进行了大刀阔斧的改革,三大系统平台都用上了全新QQ
NT架构,基于Electron框架开发,因此也引来了用户关于“高内存占用、超大安装包、启动缓慢”等的担忧。
日前,QQ技术团队在InfoQ平台发布了一篇介绍文章,分享了其在内存上进行专项优化的阶段性进展。
据介绍,新版QQ在内存上的挑战主要表现在以下4个方面:
产品形态:由1个复杂的大面板(100+复杂程度不等的模块)和一系列独立功能窗口构成。窗口与渲染进程一一对应,窗口进程数很大程度影响
Electron的内存占用。对于那个复杂的大面板,一旦没有精细控制就很容易导致内存持续走高。
使用习惯:用户长时间挂机。相比用完即走的Web页面,QQ用户在一次登录后,可能会挂机一个月以上。这段期间,如果没有控制好QQ
内存使用,那么结果可能是内存越占越大、用户交互响应变慢、甚至发生闪退。
版本迭代:已经24岁的QQ拥有众多的功能和特性,过去一年团队一直做这件事:从核心特性开始快速补齐Windows
版本的功能,同时也有一些高优先级的新功能要上。持续且快速的版本迭代,很可能产生新问题,使性能劣化。
应用架构:新版QQ依赖一个NT核心数据模块(C++addon),为UI提供本地化的数据服务。QQ
的加载体验能做到如此丝滑,这个模块起到了至关重要的作用。同时,与NT的联动优化,也需要拉通客户端C++
开发同学共同完成,当然,会存在一些沟通成本,但不可否认,能把内存占用压下来,客户端同学也付出了非常多的努力。
对此,QQ技术团队的工作主要包括以下几个方面:
工具分析:首先,团队需要使用不同维度的内存分析工具,从V8
引擎到进程,再到整个应用程序,打通整个链路进行多角度的细节分析,以此来定位内存使用的瓶颈。
定向优化:在通过工具定位到问题之后,团队会采取一系列的针对性优化策略,包括缓存策略、按需加载、优雅降级等。
线上监控:在本地或小范围内验证通过之后,团队需要广大用户的验证来确认优化措施是否适用于所有场景。然而,如何获取用户在Windows
任务管理器中看到的内存使用量是一个挑战,团队已经做了大量的研究和验证。
防止性能退化和自动化测试:为了保护辛苦得来的优化成果,并避免频繁的版本迭代影响QQ
的内存目标,团队会借助开发框架、工具建设、代码审查等手段来预防性能退化。
QQ技术团队表示,从结果或者解决问题的角度来看,经过一系列优化之后基本可以将QQ核心聊天场景的内存控制在300M以内,150M
的安装包大小,与旧版纯NativeQQ差别较小。不单单内存占用,其他核心体验,比如切AIO的流畅度上要优于旧版QQ。
想了解更多资讯内容,敬请关注下载之家。
相关阅读:磁力BT-在线搜索 |