
Chromium相关
文章平均质量分 94
编码时空的诗意行者
十年互联网大厂老司机
展开
-
Chromium源码阅读(11):了解chromium base的raw-ptr
chromium base的rawptr.h引起了我的注意,常见的ptr封装有refed_ptr、weak_ptr等。raw_ptr还要封装吗?那一定是有特殊的意义。原创 2024-07-19 17:13:58 · 1393 阅读 · 0 评论 -
Chromium源码阅读(10):了解Log模块
Chromium许多日志被TraceEvent代替了,因此TraceEvent出现的频率要比Log高很多。但是也有不少场景使用Log。在blink,Log的实现由base提供,而blink/render/core/base/logging.h进行了二次封装。原创 2024-07-18 18:19:27 · 1513 阅读 · 0 评论 -
Chromium源码阅读(9):了解事件跟踪TRACE_EVENT与第三方库Perfetto
首先,在一个头文件中(例如。原创 2024-07-17 16:47:03 · 1176 阅读 · 0 评论 -
Chromium源码阅读(8):了解Base库里的PartitionAlloc模块
malloc符号定义这个阶段负责覆盖mallocfree等符号,并将这些调用路由到分配器shim内部。这由中的头文件处理。在Windows上:Windows的UCRT(通用C运行时)导出了弱符号,我们可以在中覆盖它们。在Linux/CrOS上:分配器符号作为导出的全局符号在(对于mallocfree等)和(对于等)中定义。这使malloc符号在主可执行文件和任何第三方库中得到适当的拦截。在Android上:与Linux/CrOS的情况不同,加载时的符号拦截是不可能的。原创 2024-07-15 10:56:56 · 1587 阅读 · 0 评论 -
Chromium源码阅读(7):了解WTF的静态字符串机制
在浏览器的实现中,处理HTML和CSS涉及大量的字符串操作,这些操作通常包括字符串的比较、查找和匹配。如果使用普通的字符串对这些进行操作,在面临大量DOM元素和CSS规则时会导致效率低下。例如,当解析CSS时,属性名如colormarginpadding等在内部可以被转换为静态字符串。在后续的样式计算和匹配过程中,只需通过比较这些属性的ID,而不是一遍遍地比较完整的字符串。这种比较是通过简单的指针或整数比较来完成的,这要比字符串的字节级比较快得多。原创 2024-07-11 15:56:20 · 920 阅读 · 0 评论 -
简单有效的 chromium 内存优化
我们项目使用了cef作为浏览器内核,在使用过程中,发现cef是内存大户。为此我们进行了一些内存优化的工作,并把其中的方法分享出来。原创 2024-05-29 11:42:34 · 2188 阅读 · 0 评论 -
探索chrome二进制大小的变迁和剪裁chromium的一些思路
导语:chromium以友好的开源协议开源,因此研究chromium源码除了有学习价值还有商业应用价值,但是随着chromium版本更新,基于chromium的cef的大小从70MB增长150MB,对于有安装包大小追求的开发来说还是希望减小chromium内核的大小。我们通过对比历史版本的chrome文件来看看到底是哪些文件推高chromium内核的体积,并为有意向裁剪chromium的同学提供一些简单的建议。原创 2024-04-22 09:49:59 · 1429 阅读 · 1 评论 -
聊 · Flutter
Dart是Flutter的编程语言,Flutter是Google的UI工具包,用于从单个代码库构建漂亮的本机编译的移动,Web和桌面应用程序。接下来我们从Dart到Flutter,再到Flutter engine,聊一下我印象深刻的点。拉下Flutter engine源码后,粗略看了一下,隐隐的觉得,flutter受chromium项目影响很深,甚至怀疑是同一拨人做出来的。Build System是GN;原创 2024-06-05 11:05:07 · 1087 阅读 · 0 评论