🌗 在 WebAssembly 中將 Tar 封存檔掛載為檔案系統
➤ 透過索引技術實現 WebAssembly 的檔案系統零複製掛載
✤ https://jeroen.github.io/notes/webassembly-tar/
處理網路上的 .tar.gz 檔案時,傳統做法通常需要下載、解壓縮並複製所有檔案,這在記憶體有限的環境中非常耗時且昂貴。本文介紹了一種創新的優化方案:利用 Emscripten 的 WORKERFS,透過生成一個包含檔案偏移量(offset)與大小的 JSON 索引檔,將 .tar.gz 檔案直接掛載為虛擬檔案系統。此方法無需複製原始資料,直接透過記憶體映射(memory-mapping)技術實現零複製讀取,顯著提升了載入效率。
+ 這對於在瀏覽器端載入大型資料庫或語言套件(如 R 語言)簡直是神級優化,原本繁瑣的解壓縮步驟現在幾乎零成本。
+ 很有趣的技巧。利用 Tar 格式本身扁平且具備位元組定址的特性,配合瀏覽器原生的 DecompressionStream,確實將資源利用
#WebAssembly #Emscripten #VFS #效能優化
➤ 透過索引技術實現 WebAssembly 的檔案系統零複製掛載
✤ https://jeroen.github.io/notes/webassembly-tar/
處理網路上的 .tar.gz 檔案時,傳統做法通常需要下載、解壓縮並複製所有檔案,這在記憶體有限的環境中非常耗時且昂貴。本文介紹了一種創新的優化方案:利用 Emscripten 的 WORKERFS,透過生成一個包含檔案偏移量(offset)與大小的 JSON 索引檔,將 .tar.gz 檔案直接掛載為虛擬檔案系統。此方法無需複製原始資料,直接透過記憶體映射(memory-mapping)技術實現零複製讀取,顯著提升了載入效率。
+ 這對於在瀏覽器端載入大型資料庫或語言套件(如 R 語言)簡直是神級優化,原本繁瑣的解壓縮步驟現在幾乎零成本。
+ 很有趣的技巧。利用 Tar 格式本身扁平且具備位元組定址的特性,配合瀏覽器原生的 DecompressionStream,確實將資源利用
#WebAssembly #Emscripten #VFS #效能優化
