跳至內容
Astera Technology

任務重跑多輪後,核仍持有的內容

暫時工作完後,量明確仍持有的配置。

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

訂判斷及所需輸入

有限本地任務每輪配置兩字節 Buffer。錯路五十輪都把 Buffer 留在清單,持有100 字節,超題內50 配額;更正不留持續參考,明確持有為零。

已填本地測試工作表
情況輸入 JSON
原例測試{"cycles":50,"bytesPerCycle":2,"allowedBytes":50}
下載可編輯 CSV ↓

跑所附比較

真正配置 Buffer,再量仍有參考的長度。這是受控持有測試,不是作業系統記憶體數字、垃圾回收保證或整個程序堆量度。

錯誤及所需輸出
路徑輸出 JSON
錯誤路徑{"cycles":50,"retainedBytes":100,"withinAllowance":false}
所需路徑{"cycles":50,"retainedBytes":0,"withinAllowance":true}
下載可編輯 CSV ↓
完整本地 Node24.14.1 程序
import assert from 'node:assert/strict';
const smallWhole=(x,max)=>Number.isSafeInteger(x)&&x>=0&&x<=max;

const run=function run(i,corrected=true){
    if(!smallWhole(i.allowedBytes,10000)||!smallWhole(i.cycles,100)||!smallWhole(i.bytesPerCycle,100))return {held:true};const retained=[];
    for(let n=0;n<i.cycles;n++){const buffer=Buffer.alloc(i.bytesPerCycle);if(!corrected)retained.push(buffer);}
    const retainedBytes=retained.reduce((s,b)=>s+b.byteLength,0);return {cycles:i.cycles,retainedBytes,withinAllowance:retainedBytes<=i.allowedBytes};
  };
const cases=[{"input":{"cycles":50,"bytesPerCycle":2,"allowedBytes":50},"corrected":false,"expected":{"cycles":50,"retainedBytes":100,"withinAllowance":false}},{"input":{"cycles":50,"bytesPerCycle":2,"allowedBytes":50},"corrected":true,"expected":{"cycles":50,"retainedBytes":0,"withinAllowance":true}},{"input":{"cycles":0,"bytesPerCycle":2,"allowedBytes":0},"corrected":true,"expected":{"cycles":0,"retainedBytes":0,"withinAllowance":true}},{"input":{"cycles":50,"bytesPerCycle":2,"allowedBytes":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);}
下載可執行例子 ↓

按邊界依據作判斷

零輪持有零,符零配額;配額欠缺要停,不用觀察大小代填。

  1. 訂仍持有內容的量法
  2. 實際跑多輪
  3. 之後核仍有的參考

不能把持有 Buffer 字節當整部系統記憶體。

可編輯邊界輸入及結果
條件輸入 JSON預期輸出 JSON
尚未跑任何輪次{"cycles":0,"bytesPerCycle":2,"allowedBytes":0}{"cycles":0,"retainedBytes":0,"withinAllowance":true}
持有配額欠缺{"cycles":50,"bytesPerCycle":2,"allowedBytes":null}{"held":true}
下載可編輯 CSV ↓

原例更正後,對持有內容證明了甚麼?

查看參考答案

五十輪後,此程序持續清單沒有 Buffer,符該明確配額;未承諾整個程序記憶體用量。

相關資源