这一年一直在看chromium for android的代码,边看边想骂,谷歌这帮人。。

一开始搞了个牛逼的架构,在安卓4.4上把以前android webkit团队的简单版替换掉了,

结果发现性能大不如简单版的。

简单版本的思路其实很赞,

主要就是分块渲染,然后录制,回放

这个模式很屌。

据说chrome自己的团队接手安卓的webview后,赶紧把安卓团队的经验学过来(此处乃听说,未求证)。

然后移植到chrome上搞了个更加复杂的架构。

这才把性能追上来。

这个框架大概原理,就是渲染的时候,webkit负责录制需要绘制哪些东西,

比如绘制文本,绘制矩形,

这些都是录下来的,

然后到另外个线程回放出来,

一边回放一边调用opengl命令,

最后生成一块块的瓦片,

然后再上屏。

这个瓦片还是有优先级的,

方便在滚动的时候做策略的优化,

哪些命令在哪些瓦片里可以先绘制个模糊的,

这样性能就很高了。

chromium团队接手后,大重构先,

结果第一版搞的架构,还不如安卓team当年的效率高

然后又继续重构,弄了个更复杂的架构

最后性能确实不错了,比安卓team封装的简化版webkit要好些

不过架构复杂太多了。。。

最近又在搞slimming paint,想大幅优化重绘和分层逻辑,不过搞了一两年了,还没做稳定,现在的slimming paint 2一打开就各种断言错误。。。

另外,就代码风格上来说,chromium接手后,喜欢这样写代码:随便写个简单的功能,先要host一下,然后client一下,再delegate一下,

最后impl一下。看了几千行代码后,你发现一句有用的都没有,实现不在这里面,那种感动。。。

以至于,让我产生了幻觉,觉得写C++代码的风格是这样的:

类偏不直接访问,

全部加到TypeList,必须用元编程使用常值去索引,

所有参数和返回值上各种类型推演、enable_if。

对象怎能简单new一个了事,当然要搞个超复杂的工厂函数,

利用static变量的特性,加上模板推演技术,进行自动化的注册,

让他找都找不到这个对象到底在哪里生成的。还要用一堆type_info加智能指针转来转去,

把他的头转晕。能用预处理元、模板元编程的地方,要么用python、perl自动生成代码,就不手写代码。

既然用到了模板元,当然要深度引用各种库,让别人如读天书,

为了增强代码的不可读性,还要大量使用半吊子的lamda。

还要大量使用C++标准中含糊的、误导性的代码,比如说std::remove根本不会删除元素,st::list::size竟然是O(n)的。。。。

话说回来,还是以前的webkit版本架构易读。

超喜欢以前的架构,

可惜清爽版在安卓4.4后就不维护了,统一叫chromium for android webview。

其实我就是想吐槽下chromium,哈哈

python骂人代码大全_边看chromium的代码,边想骂人...相关推荐

  1. 代刷装修音乐代码大全_代刷网音乐代码 | 手游网游页游攻略大全

    发布时间:2016-03-19 伤害世界私服怎么刷物品 物品代码怎么用详解.是近期很热门的一款游戏,而有些玩家在游戏中出现了代码不能用,输入指令刷不出东西的情况.有些玩家在私服可能用 ... 标签: ...

  2. 天然气故障代码大全_美的燃气热水器故障代码大全

    现在的燃气热水器出现问题都会有代码提示,这样大大方便了判断和维修.那么美的燃气热水器故障代码是什么意思呢?本文小编来给大家介绍一下. 美的燃气热水器故障代码大全 1.E1:点火失败或中途熄火 ①由于火 ...

  3. wordvba编程代码大全_这几本基础编程书籍一定要看

    程序员书库(ID:OpenSourceTop) 编译书单来自:https://simpleprogrammer.com/best-programming-books-2019/ 关于程序员类的技术书籍 ...

  4. 边看chromium的代码,边想骂人...

    这一年一直在看chromium for android的代码,边看边想骂,谷歌这帮人.. 一开始搞了个牛逼的架构,在安卓4.4上把以前android webkit团队的简单版替换掉了, 结果发现性能大 ...

  5. 边看chromium的代码边想骂人……

    这几天在看chromium for andrid的代码,边看边想骂,谷歌这帮人.. 一开始搞了个牛逼的架构,在安卓4.4上把以前webkit团队的简单版替换掉了 结果发现性能大不如简单版的. 简单版本 ...

  6. python电子相册制作代码大全_用Python和Conky做个电子相册,美化你的Linux桌面

    现在手机的拍照功能日趋强大,每个人电脑上想必都至少有几十个G的照片吧.全打印出来实在是太费钱了.而闲置的旧电脑完全可以利用起来播放这些照片.下面就介绍利用Conky和Python实现随机播放相片的功能 ...

  7. 动漫的python语言代码大全_使用Python来看看动漫中的你

    百度人工智能运用世界领先的对抗生成网络,结合人脸检测.头发分割.人像分割等技术,为用户量身定制千人千面的二次元动漫形象,并且可通过参数设置,生成戴口罩的二次元动漫人像. 先来一组图看看效果 八种口罩任 ...

  8. c语言代码大全_从学生到专家,C语言开发必读的8本书

    本号总结了在C语言实际开发中必读的8本书,当然这8本书并不能囊括开发的方方面面,但就作者亲身体验来看,这8本书确实每个C语言开发者都必须要读的书,并且是应该深入精读的书. C程序设计语言 相信大家都学 ...

  9. python难度大的题_早看少被坑!Python 最难的问题

    超过十年以上,没有比解释器全局锁(GIL)让Python新手和专家更有挫折感或者更有好奇心. 未解决的问题 随处都是问题.难度大.耗时多肯定是其中一个问题.仅仅是尝试解决这个问题就会让人惊讶.之前是整 ...

最新文章

  1. Linq Distinct扩展
  2. eclipse中svn插件的安装
  3. python取出字典中的所有值的两种方法
  4. Fiddler抓包9-保存会话(save)
  5. 【论文翻译】HeteSim:异构网络中相关性度量的通用框架
  6. window.location和window.open的区别
  7. js 原生对象排序
  8. 源码编译安装php-3.5.8
  9. SpringBoot2.x 同个文件的加载顺序,静态资源文件
  10. 04-07递归解法问题
  11. opencv中Mat的数学运算和基本操作
  12. netbeans运行KEmulator
  13. 过游戏保护系列-巨人游戏保护(1)过PcHunter和Od检测
  14. How to read PCA biplots and scree plots
  15. dump文件的创建及使用
  16. python scipy.optimize.minimize多变量多参数优化
  17. Excel从txt导入文本并将空行删除
  18. 翻译:确认中的处理控制(CO1P)
  19. 清华大学计算机系录取分数浙江,清华在浙江录取专业志愿满足率100% 录取人数突破160...
  20. matlab中图像分割技术之二阈值分割

热门文章

  1. Studio5000 V33初学(一):FAL指令
  2. postgreSQL 致命错误: 对不起, 已经有太多的客户
  3. 游览器、兼容(五大游览器内核)
  4. UDF——已知入口压力和流量计算压降
  5. c语言程序设计教学要求,C语言程序设计教学中的问题及改革建议①
  6. Kernel Data Structures [LKD 06]
  7. 财路网每日原创推送:一种基于区块链技术的新融资模式——STO
  8. leetcode算题记录
  9. MAN 手册各章节功能介绍及快捷键键位整理
  10. 怎样绘制精美的思维导图