ダイニーで一番若いエンジニアのriya amemiya(21歳)です。 タイトルの通り、V8の Array.prototype.flat(以下 flat)を高速化しました。 パッチはこちらです。 最初のコミットから約1ヶ月、やりきりました。 Chrome 147(V8 14.7)でリリースされます。 本稿では、どのようにして flat を高速化したのか、その過程を備忘録的に残します。 TL;DR V8の Array.prototype.flat を2パス方式で高速化しました。 第1パスで結果配列の正確な長さとElementsKindを事前計算し、第2パスで1回のメモリ確保と直接書き込みを行います。 メモリ割り当て: O(log n)回 → 1回 要素書き込みコスト: 直接書き込みでオーバーヘッド激減 ElementsKind遷移: ゼロ そもそも何でこのパッチを出したのか ある日、Xのタイ

