"매 GPU 가 놀고 main thread 가 100% 면 CPU bottleneck.". CPU bottleneck 은 frame budget 16.7ms (60fps) 또는 11ms (90fps XR) 안에 main thread 작업이 안 끝나는 상태. 2026 진단: Chrome Performance panel + perf + Instruments → fix: WebWorker / WASM SIMD / off-main-thread / batching.
asyncfunctionprocessChunked(items){constCHUNK=200;for(leti=0;i<items.length;i+=CHUNK){items.slice(i,i+CHUNK).forEach(processOne);awaitnewPromise(r=>setTimeout(r,0));// 매 yield
}}// 또는 scheduler.yield() (2025+)
if('scheduler'inwindow&&'yield'inscheduler)awaitscheduler.yield();
Batch DOM read/write
// 매 안티 — layout thrash
items.forEach(el=>{constw=el.offsetWidth;el.style.width=(w*2)+'px';});// 매 fix — read first, then write
constwidths=items.map(el=>el.offsetWidth);items.forEach((el,i)=>{el.style.width=(widths[i]*2)+'px';});