FT2000+ 64K内存页系统chromium无法渲染问题

FT2000+ 64K内存页系统chromium无法渲染问题

64KB内存页为65536Byte,以2为底取对数为16。

修改PageAllocator.h,将kPageAllocationGranularityShift改为16,kSystemPageSize改为65536。

修改PartitionAlloc.h,将kPartitionPageShift改为18。以2为底取对数为16 + 2。

修改Heap.h,将blinkPageSizeLog2改为21。以2为底取对数为16 + 5。

手动修改

修改PageAllocator.h

#if OS(WIN)
static const size_t kPageAllocationGranularityShift = 16; // 64KB
#else
static const size_t kPageAllocationGranularityShift = 12; // 4KB
#endif
------------------------------------------------------------------------------------------
改为
#if OS(WIN)
static const size_t kPageAllocationGranularityShift = 16; // 64KB
#else
static const size_t kPageAllocationGranularityShift = 16; // 64KB
#endif

static const size_t kSystemPageSize = 4096;
------------------------------------------------------------------------
### 编译支持 64KB 内存页的 Electron Electron 基于 Chromium 和 Node.js 构建,其底层依赖 V8 引擎。要实现支持 64KB 内存页的 Electron 版本,需要从 Chromium 和 V8 的构建配置入手,并确保在构建过程中启用大内存页支持。 #### 1. 启用 64KB 内存页支持的构建配置 Chromium 和 V8 支持使用大内存页(Huge Pages)来提升内存访问效率,但默认情况下可能未启用 64KB 页面支持。在构建 V8 时,可以通过 GN 构建配置启用相关参数。例如,在 `v8gen.py` 脚本中指定特定的构建参数: ```bash $ tools/dev/v8gen.py -b release.x64 sample -- -DV8_TARGET_ARCH_X64 -DV8_USE_LARGE_PAGES ``` 其中 `-DV8_USE_LARGE_PAGES` 是启用大内存页支持的关键宏定义。该参数会传递给编译器,并影响 V8 内存管理模块的行为。 #### 2. Chromium 构建配置调整 Electron 依赖于 Chromium 的内容模块(content module),因此在构建 Chromium 时也需要启用大内存页支持。可以通过修改 GN 构建参数来实现: ```bash $ gn gen out/Default --args='is_debug=false target_cpu="x64" use_large_pages=true' ``` 其中 `use_large_pages=true` 是启用大内存页支持的关键参数。需要注意的是,该功能在某些平台(如 Windows)上可能受限于操作系统配置[^1]。 #### 3. 构建 Electron 的完整流程 Electron 的构建流程较为复杂,涉及多个子模块,包括 Chromium、Node.js 和 Electron 本身的原生模块。以下是构建支持 64KB 内存页 Electron 的基本步骤: ```bash # 克隆 Electron 源码 $ git clone https://github.com/electron/electron.git $ cd electron # 设置构建参数 $ python script/bootstrap.py -v # 修改 GN 构建配置,启用大内存页支持 $ gn args out/Default # 在打开的编辑器中添加以下参数: is_debug = false target_cpu = "x64" use_large_pages = true # 开始构建 $ ninja -C out/Default electron ``` 构建完成后,生成的 Electron 可执行文件将包含对 64KB 内存页的支持。需要注意的是,不同版本的 Electron 对 Chromium 的集成方式不同,建议参考官方构建文档进行适配。 #### 4. 验证构建结果 构建完成后,可以通过运行 Electron 并检查其内存行为来验证是否启用了 64KB 内存页支持。可以使用 `procmon`(Windows)或 `pmap`(Linux)等工具查看内存映射情况,确认是否使用了大页内存。 --- ###
评论 6
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值