Ladybird 4月进展:新赞助商加入,多项技术改进提升性能!

Ladybird 本月动态 —— 2026 年 4 月

4月,Ladybird 合并了来自 35 位贡献者的 333 个 PR,其中 7 位是首次为 Ladybird 提交代码。以下是本月工作进展。

迎来新赞助商

Ladybird 依靠支持开放网络的公司和个人资助。本月迎来新赞助商:人权基金会(通过“个人权利人工智能”项目)赞助 50,000 美元;Jakub Stęplowski 赞助 1,000 美元。若有兴趣赞助该项目,可联系。

内联 PDF 查看器

现在,PDF 可通过集成的 pdf.js 查看器内联渲染。pdf.js 是用 JavaScript、HTML 和 CSS 编写的 PDF 查看器,支持页面导航等功能。对加载英特尔指令集手册的 pdf.js 进行性能分析,推动了对类型化数组视图缓存和 `:has()` 失效机制的改进。

浏览历史和智能地址栏自动补全

在地址栏输入内容时,会得到基于历史记录的建议,显示历史访问页面、搜索引擎快捷方式及普通 URL 补全。由 SQLite 支持的 `HistoryStore` 记录导航信息,隐私设置页面有“清除浏览历史”功能。Qt 和 AppKit 界面能显示智能补全行。

推测式和增量式 HTML 解析

现在,HTML 解析器可增量式处理响应体,字节流通过流式文本解码器传入分词器,输入耗尽时暂停,有新输入时继续,取代了之前等待完整响应体再解析的模式。还实现了推测式 HTML 解析器,主解析器阻塞时,单独的分词器提前扫描未解析输入并发起推测式预取,能跟踪 `` 并跳过模板和外部内容。后续将推测式解析器集成到文档预加载映射中,避免重复请求。

离线程 JavaScript 编译

获取到的脚本的顶级代码的字节码生成在后台线程池中进行,工作线程生成字节码和构建 `Executable` 所需数据,与虚拟机或垃圾回收堆交互的操作在主线程进行。涵盖普通脚本等,加载 YouTube 时可将约 200 毫秒的主线程时间转移到后台线程。

每个可导航对象独立光栅化

现在,每个可导航对象在自己的线程上独立进行光栅化。以前内联框架在父级显示列表中同步绘制,现在父级显示列表引用 iframe 的光栅化输出,iframe 失效无需重新记录父级。这也是将 iframe 迁移到单独沙盒进程的前期准备工作。

JavaScript 引擎

随着 C++/Rust 过渡阶段结束,4 月有成果:更快的 JS 到 JS 调用,一系列改进使 `Call` 等指令在常见情况下在 AsmInt 汇编解释器中执行,原生函数调用可直接从 AsmInt 调度;O(1) 字节码寄存器分配器,现在的分配器是后进先出栈;缓存的 for - in 迭代,`for (key in obj)` 语句缓存扁平化的可枚举键快照,Speedometer 2 和 3 的得分提高。还有其他改进,如解析器使用零拷贝标识符名称共享,短字符串拼接跳过绳索表示法等。

GTK4 / libadwaita 前端

Ladybird 有了基于 GTK4 和 libadwaita 的新 Linux 前端,与现有 Qt 前端并存。设计灵感来自 GNOME Web,遵循 GNOME 设计准则,有地址栏自动补全等功能,目前处于早期阶段,功能未与 Qt 和 AppKit 前端完全一致。

书签管理

上个月实现书签功能,本月添加完善管理界面:新增 `about:bookmarks` 页面管理书签和文件夹;支持导入和导出书签;为书签和文件夹添加上下文菜单;添加 `date_added` 时间戳;改进书签栏用户体验;实现 HTML5 拖放 API。

缓存和 CacheStorage

完整实现了 `Cache` 和 `CacheStorage`,支持九个方法,由临时内存存储支持。

CSS 特性

支持 `image-set()`,选择分辨率匹配设备像素比的候选图像,使 gocomics.com 上的标题图像正常显示;初步支持 `position - anchor` 和 CSS 锚点定位,修复 cssdoom.wtf 上手和枪的定位问题;颜色插值重写,与 css - color - 4 标准对齐;通过层叠应用表现提示,修复 html.spec.whatwg.org 上的崩溃问题;表格部分和行的 `align` 属性,修复 bricklink.com 上按钮的位置问题;`stroke - dasharray` 插值,SVG 虚线可平滑动画;`autofocus` 属性,有该属性的元素在页面加载时获得焦点;RTL 文本中的列表标记,修复阿拉伯语维基百科上列表的渲染问题。

内容概要:本文针对有源中点箝位(ANPC)三电平并网逆变器在复杂电网环境下的性能瓶颈,提出了一种融合双极性倍频脉宽调制(DPWMA)、正负序分离锁相技术与电网电压前馈控制的一体化高性能并网控制策略。通过深入分析ANPC三电平拓扑在开关损耗均衡性、中点电位稳定性及输出电能质量方面的固有优势,构建了高可靠性的硬件基础;在此之上,DPWMA调制策略有效提升了开关频率利用率,显著降低了输出电流谐波含量;正负序分离锁相环(SRF-PLL)精准提取电网正序分量,解决了电网不平衡工况下传统锁相技术存在的相位检测偏差与并网电流不对称问题;电网电压前馈控制则通过前馈补偿机制,提前抑制电网电压扰动对并网电流的直接影响,大幅增强了系统在电压骤升、骤降等动态工况下的响应速度与鲁棒性。研究通过Simulink搭建了完整的仿真模型,对稳态运行、电网不平衡及动态切换等多种工况进行了全面验证,结果表明该复合控制策略能显著提升并网电能质量、锁相精度与系统动态稳定性,适用于能源发电、大功率工业变流等对并网性能要求严苛的应用场景。; 适合人群:具备电力电子与电力系统基础知识,从事能源发电、微电网、大功率变流器、电能质量治理等相关领域研究的研发人员及高校研究生。; 使用场景及目标:①解决传统三电平逆变器在电网不平衡条件下锁相不准、电流畸变严重的问题;②提升并网逆变器在电压骤升/骤降等动态扰动工况下的响应速度、抗扰能力与并网稳定性;③为高性能、高可靠性的并网控制系统设计提供一套可复现、可验证的技术方案与完整的仿真模型参考。; 阅读建议:建议读者结合文中提供的Simulink仿真模型,按照“拓扑分析-控制策略设计-仿真验证”的逻辑主线,循序渐进地理解各模块的设计原理,重点钻研正负序分离锁相与电网电压前馈控制的实现细节,并通过设置不同的电网扰动工况进行仿真实验,对比分析控制效果,从而深入掌握多技术协同优化的内在机理与工程应用价值。
代码转载自:https://pan.quark.cn/s/679a7257f458 在Windows操作系统环境中,开发多线程程序是一项普遍存在的编程需求,其主要目的是为了达成不同任务的并行处理,从而优化程序的执行效能。在C++开发情境下,我们一般会借助WinAPI提供的`_beginthreadex`函数来进行线程的构建,此方法具备跨操作系统的兼容性,并且是C运行时库(CRT)所包含的一部分。本文将深入剖析如何运用`_beginthreadex`函数来构建多线程以及相关的技术要点。 首先,让我们明确`_beginthreadex`函数的基本操作方法。该函数需要接收若干个参数,包括一个指向安全属性的指针、初始堆栈的尺寸、一个线程执行函数的指针、传递给线程执行函数的参数、线程的创建标识以及一个存放线程标识符的指针。线程执行函数是线程将要运行的代码的起始位置。下面给出一个基础的实例代码: ```cpp uintptr_t thread_id; HANDLE hThread = (HANDLE)_beginthreadex( NULL, // 指向安全属性的指针,通常设置为NULL 0, // 堆栈尺寸,若传入0则表示采用系统默认值 ThreadFunction, // 指向线程执行函数的指针 NULL, // 传递给线程执行函数的参数,可以根据需求自定义 CREATE_SUSPENDED, // 线程的创建标识,可以选择使用CREATE_SUSPENDED来使线程处于挂起状态 &thread_id // 用于接收线程标识符的指针 ); ``` 在此代码中,`ThreadFunction`代表用户自定义的函数,它将作为线程执行的起始点。例如: ```cpp D...
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值