跳至內容
Astera Technology

回應時間目標,到底量哪一段?

伺服器執行與用戶完整等候要分開。

下載完整個案資料及參考答案 ↓

訂判斷及所需輸入

題內網絡2 秒、伺服器3、客戶端呈現4。只量伺服器是3,用戶完成是9。原例要求用戶完成,伺服器數字不能代替該量法。

已填本地測試工作表
情況輸入 JSON
原例測試{"scope":"user-complete","seconds":{"network":2,"server":3,"render":4}}
下載可編輯 CSV ↓

跑所附比較

程序只按所需範圍加題內已觀察段,不補未知段,也未確認真系統量到了所有可能延遲。

錯誤及所需輸出
路徑輸出 JSON
錯誤路徑{"scope":"user-complete","measuredSeconds":3}
所需路徑{"scope":"user-complete","measuredSeconds":9}
下載可編輯 CSV ↓
完整本地 Node24.14.1 程序
import assert from 'node:assert/strict';

const run=function run(i,corrected=true){
    if(!['server','user-complete'].includes(i.scope)||['network','server','render'].some(k=>!Number.isFinite(i.seconds[k])||i.seconds[k]<0))return {held:true};
    const total=i.seconds.network+i.seconds.server+i.seconds.render;
    return {scope:i.scope,measuredSeconds:corrected&&i.scope==='user-complete'?total:i.seconds.server};
  };
const cases=[{"input":{"scope":"user-complete","seconds":{"network":2,"server":3,"render":4}},"corrected":false,"expected":{"scope":"user-complete","measuredSeconds":3}},{"input":{"scope":"user-complete","seconds":{"network":2,"server":3,"render":4}},"corrected":true,"expected":{"scope":"user-complete","measuredSeconds":9}},{"input":{"scope":"server","seconds":{"network":2,"server":3,"render":4}},"corrected":true,"expected":{"scope":"server","measuredSeconds":3}},{"input":{"scope":"user-complete","seconds":{"network":2,"server":3,"render":null}},"corrected":true,"expected":{"held":true}}];
for(const test of cases){const actual=await run(test.input,test.corrected);assert.deepEqual(actual,test.expected);console.log(actual);}
下載可執行例子 ↓

按邊界依據作判斷

明訂伺服器範圍就正當得3;呈現時間欠缺,完整比較要停,不拿別次紀錄猜9。

  1. 訂量度起終點
  2. 取各所需時間段
  3. 按該範圍報時長

所需段未觀察到就停,不能當零。

可編輯邊界輸入及結果
條件輸入 JSON預期輸出 JSON
只量伺服器段{"scope":"server","seconds":{"network":2,"server":3,"render":4}}{"scope":"server","measuredSeconds":3}
尚未觀察呈現時間{"scope":"user-complete","seconds":{"network":2,"server":3,"render":null}}{"held":true}
下載可編輯 CSV ↓

原例用戶完成目標,應是哪個時長?

查看參考答案

九秒,2+3+4。三秒只是伺服器段,須保該較窄標記。

相關資源