Sfoglia il codice sorgente

docs: record course word production verification

彭峰 13 ore fa
parent
commit
52b46af77a

+ 8 - 1
perf/course-word-2026-11-12/REPORT.md

@@ -28,4 +28,11 @@ p75改善13.9%,gzip传输减少56.4%。未达到预设50%耗时改善目标,
 
 使用对应前后生产构建及受保护只读代理,代理提供gzip和 X-QA-Read-Ms / X-QA-Decoded-Bytes。设置 BASELINE_URL、CANDIDATE_URL 与可选 CHROME_BIN,运行 bench.mjs。运行 ratchet.mjs 校验本组10对样本p75不超过541ms。原始样本和摘要均在本目录。
 
-生产发布回读将在发布后补充。
+## 生产发布
+
+2026-11-12 已发布 mobile-course-word-speed-0b7d9d5f89c7-20261112T074222208Z,对应代码0b7d9d5f89c7f877859fcebdbcda914027185e38。网关只替换 courseWordPage,295个其他函数保持不变;发布前已确认无运行中的同步任务,原函数与全部旧资源已私有备份。
+
+CDN任务8172491608完成、失败0;105个线上文件逐一哈希一致,5个深层入口返回正确页面。线上真实课程100个单词连续10次读取均与原版核心字段和全部分页进度相等,旧客户端完整响应仍保留;接口耗时p50 231ms、p75 359ms、p95 411ms,真实gzip响应约5690字节(完整响应14135字节)。此接口读数与上文浏览器端到端测量口径不同。
+
+使用线上实际资源、隔离模拟课堂数据再次验证四栏英文初始状态、发音结束显示、三个学习轮次和第三次隐藏英文/中文;320/390/1024宽度及放大字体无横向溢出。临时只读测量函数已删除并回查剩余0,测量代理已关闭。详细回读见 production-verification.json。
+

BIN
perf/course-word-2026-11-12/online-course-default.png


BIN
perf/course-word-2026-11-12/online-study-3-third.png


+ 151 - 0
perf/course-word-2026-11-12/production-verification.json

@@ -0,0 +1,151 @@
+{
+  "public": [
+    {
+      "role": "mobile",
+      "releaseId": "mobile-course-word-speed-0b7d9d5f89c7-20261112T074222208Z",
+      "commit": "0b7d9d5f89c7f877859fcebdbcda914027185e38",
+      "filesVerified": 105,
+      "routes": [
+        "pages/home/index",
+        "pages/member/starshop",
+        "pages/companion/index",
+        "pages/stu/stu_abc",
+        "pages/stu/stu_con"
+      ]
+    }
+  ],
+  "backend": {
+    "objectId": "D3F5Zj8saa",
+    "beforeHash": "6ea91c69fa45addb21b364f12ead6757e10f68e166dff21a0c1cead38a9f8ef2",
+    "afterHash": "cf34408fa31b3d125fbbb4547f6ab39a7198f7170ee8bba7268a50b24e462801",
+    "changed": [
+      "courseWordPage"
+    ],
+    "preservedFunctions": 295,
+    "verifiedAt": "2026-11-12T07:42:29.055Z"
+  },
+  "api": {
+    "rows": 100,
+    "coreFieldsEqual": true,
+    "pageMetadataEqual": true,
+    "legacyFullResponsePreserved": true,
+    "reads": 10,
+    "p50": 231,
+    "p75": 359,
+    "p95": 411,
+    "compact": {
+      "ms": 411,
+      "wireBytes": 5690,
+      "decodedBytes": 37999,
+      "encoding": "gzip"
+    },
+    "full": {
+      "ms": 306,
+      "wireBytes": 14135,
+      "decodedBytes": 260377,
+      "encoding": "gzip"
+    },
+    "samples": [
+      {
+        "ms": 411,
+        "wireBytes": 5690,
+        "decodedBytes": 37999,
+        "encoding": "gzip"
+      },
+      {
+        "ms": 324,
+        "wireBytes": 5690,
+        "decodedBytes": 37999,
+        "encoding": "gzip"
+      },
+      {
+        "ms": 399,
+        "wireBytes": 5690,
+        "decodedBytes": 37999,
+        "encoding": "gzip"
+      },
+      {
+        "ms": 219,
+        "wireBytes": 5690,
+        "decodedBytes": 37999,
+        "encoding": "gzip"
+      },
+      {
+        "ms": 192,
+        "wireBytes": 5690,
+        "decodedBytes": 37999,
+        "encoding": "gzip"
+      },
+      {
+        "ms": 231,
+        "wireBytes": 5690,
+        "decodedBytes": 37999,
+        "encoding": "gzip"
+      },
+      {
+        "ms": 204,
+        "wireBytes": 5690,
+        "decodedBytes": 37999,
+        "encoding": "gzip"
+      },
+      {
+        "ms": 359,
+        "wireBytes": 5690,
+        "decodedBytes": 37999,
+        "encoding": "gzip"
+      },
+      {
+        "ms": 192,
+        "wireBytes": 5690,
+        "decodedBytes": 37999,
+        "encoding": "gzip"
+      },
+      {
+        "ms": 289,
+        "wireBytes": 5690,
+        "decodedBytes": 37999,
+        "encoding": "gzip"
+      }
+    ]
+  },
+  "ui": {
+    "passes": [
+      0,
+      1,
+      2,
+      3
+    ],
+    "defaultEnglishOnly": true,
+    "showAfterAudioEnded": true,
+    "speakerIndependent": true,
+    "speakerHeight": 44,
+    "studyRounds": [
+      1,
+      2,
+      3
+    ],
+    "firstTapPhonetic": true,
+    "secondTapWaitsForAudio": true,
+    "thirdTapHidden": true,
+    "chineseChallengePreserved": true,
+    "widths": [
+      320,
+      390,
+      1024
+    ],
+    "enlargedTypographyNoOverflow": true,
+    "mockedData": true
+  },
+  "cdn": {
+    "id": "8172491608",
+    "status": "task_done",
+    "processing": 0,
+    "succeed": 1,
+    "failed": 0,
+    "total": 1
+  },
+  "cleanup": {
+    "measurementFunctionRemoved": true,
+    "remaining": 0
+  }
+}