模拟性能评分计算 - 根据网络/资源条件
设定FCP、LCP、CLS等指标值,模拟计算PageSpeed Insights得分估算。
UD5工具箱
检测灾难性回溯 · 引擎执行时间对比 · Web Worker超时隔离
当正则引擎尝试匹配失败时,会回退到之前做过的选择点,尝试其他路径。这种"尝试-回退-再尝试"的过程就是回溯。在嵌套量词或复杂交替中,回溯次数可能呈指数级增长,导致性能急剧下降。
当正则表达式在特定输入下回溯次数呈指数级爆炸时,就发生了灾难性回溯。典型场景如 (a+)+b 匹配 "aaaaaaaaac"——引擎会尝试所有可能的a的分组方式,导致执行时间从毫秒级飙升到数秒甚至数分钟。
当两个量词嵌套(如 (a+)+),外层+和内层+都可以匹配多个a。匹配失败时,引擎需要尝试所有可能的分配组合,这导致回溯空间巨大。n个字符可能产生约2n种分法。
① 避免嵌套量词,如将(a+)+改为a+;② 使用更精确的字符类替代宽泛的.*;③ 利用锚点^$限制匹配位置;④ 减少不必要的捕获组;⑤ 对于复杂模式,考虑拆分多个简单正则分步匹配。
JavaScript使用回溯式NFA引擎(非确定有限自动机),采用深度优先搜索策略。这与Python的re模块、PHP的PCRE类似。与之相对的是DFA引擎(如Go的regexp包、RE2),后者保证线性时间复杂度但功能受限(不支持反向引用)。
本工具将每个正则表达式的测试放在独立的Web Worker中执行。主线程设置超时计时器,若Worker在规定时间内未返回结果,主线程会调用worker.terminate()强制终止,从而避免页面卡死,并标记该正则为"疑似灾难性回溯"。
JavaScript引擎使用JIT(即时编译)优化频繁执行的代码。预热运行可以让JIT编译器识别热点代码并进行优化,使得后续计时更准确反映稳态性能,而非包含首次编译开销的冷启动性能。
是的,原子组(如(?>a+))和占有量词(如a++)在匹配后不会释放已匹配的字符,从而阻止回溯。但遗憾的是,JavaScript原生不支持这两种语法。在JS中需要通过重构正则结构来避免过度回溯。
设定FCP、LCP、CLS等指标值,模拟计算PageSpeed Insights得分估算。
加载大量DOM元素,对比启用和不启用content-visibility: auto时的渲染时间和滚动体验。
粘贴HTML代码,自动提取所有 <!--注释--> 内容,方便查看遗留信息。
输入 origin trial token,解析出启用的特性、域名和过期时间。
设置项目开始日期,添加里程碑节点,自动生成带时间轴的横向进度图,简洁展示阶段计划。
输入事件名称与年代,自动生成美观的横向时间轴图,打印用于学习展示。
生成使用CSS @property和counter实现的无JS翻页倒计时动效,复制即用。
粘贴HTML或URL,基于算法检测并抽取文章的主体内容,去除侧边栏和广告。
验证 Origin Trial 令牌的有效性与作用域,显示令牌启用的实验功能列表及过期时间。
将压缩的SQL语句按标准缩进美化,关键字高亮,兼容MySQL/PostgreSQL等方言。
按时间点添加事件,生成美观的垂直或水平时间轴HTML/CSS代码。
提供代码评审和文档评审的通用检查项,标出等级并生成评审报告。
计算现值(PV)、终值(FV)、普通年金和永续年金的金额,调节利率和期数。
设定目标日期时,全屏显示剩余天时分秒,纯黑背景,适合大屏幕。
在线检测输入的文本是否为正反读都相同的回文,忽略标点、空格和大小写。
展示各种邮件客户端对CSS背景图片、VML背景的支持程度,附兼容代码。
实时显示当前页面可见状态,当切换标签页时记录时间并给出日志。
输入字体名或从列表选择,在示例文本上立刻看效果,获得@import代码。
为每个评分维度设定权重与分值,输入各维度得分,自动计算加权总分,用于项目评估。
比较两篇文本的相似度百分比,并高亮相同句子,避免重复内容惩罚。
校验Sitemap格式合法性,列出所有URL并统计数量。
创建可选择的时间段,参与者勾选自己方便的时间,自动计算最佳交集。
搜索各类编程语言、框架和工具的矢量图标,点击复制其HTML或SVG代码。
分析页面结构,提示哪些长列表区域适合添加content-visibility: auto优化。
使用Eyedropper API激活系统取色器,拾取屏幕任意位置的颜色值。
浏览或搜索已进入公共领域的经典电影列表,获取基本信息。
输入预期年化回报率,通过72法则快速估算本金翻倍所需年数。
渲染网页在Windows强制颜色模式下的样式,协助调试和适应系统高对比度主题。
演示并测试:focus-visible伪类在不同输入模式下的表现,辅助无障碍设计。
添加生日、考试、节假日等事件,看板展示精确到秒的剩余时间,一目了然。