启用翻译性能监控

  1. translate.time.execute.start();

他会在浏览器控制台里打印 translate.execute 执行的相关信息,打印其执行耗时情况。 打印效果比如:

  1. [time][translate.execute()] 114ms (search&cache 7ms) , [chinese_simplified] : (2)[你,你好,世界]
  2. [time][translate.execute()] 3ms , [chinese_simplified] : (1)[工业品]
  3. [time][translate.execute()] 0ms
  4. [time][translate.execute()] 1ms

关于打印的数据解释:

第一行中:

  1. 114ms 此次 translate.execute 执行,从触发到页面显示翻译后的文字,总共耗时 114ms
  2. search&cache 7ms 其中页面元素的搜索
    识别、整理、自定义术语处理、离线翻译命中、及浏览器缓存命中这些耗时 7ms
  3. [chinese_simplified] : (2)[你,你好,世界] 扫描整理到要进行翻译的文本,这些文本要进行浏览器缓存命中、以及未命中的就要进行网络请求及请求响应后的翻译内容渲染,这里因为前面有了 (search&cache 7ms) 标识,所以本次是有浏览器未命中的文本,要进行通过文本翻译接口进行翻译的,文本翻译接口请求 耗时 114ms - 7ms = 107ms ,[chinese_simplified] 为当前进行了一次翻译请求,将简体中文的原文本进行的翻译,翻译的文本数有 2 个,分别是 [你,你好,世界])。这里的耗时基本都是被网络请求给消耗的,翻译内容的渲染耗时跟网络请求耗时相比,几乎可以忽略。

第二行:
它没有 (search&cache 7ms) 所以它的翻译文本 [chinese_simplified] : (1)[工业品] 是全部命中了浏览器缓存,此次翻译的执行没有触发文本翻译接口发起网络请求。所以它执行的速度非常快,从节点扫描、识别、整理、分析、最后到渲染显示等,只有 3ms

第三行、第四行:
[time][translate.execute()] 0ms 它并没有后面跟随网络请求相关数据,也就是触发 translate.execute 执行后,单纯执行了 中页面元素的搜索
识别、整理、自定义术语处理这些,就已经将要进行翻译处理的文本全部处理完了,不再需要触发网络请求了。 这里的耗时也就是等于第一行的 search&cache 7ms 的耗时

注意

  1. 需要 translate.js v3.18.32.20250915 及更高版本
  2. 它不限制是在 translate.execute() 前还是后触发,当他触发后才会在日志里打印执行耗时信息。为了避免代码过乱,建议统一放到 translate.execute 之前进行设置。