JavaScriptでバイナリを連結したければnew Blob(b1, b2, ...)のようにした方が効率的かもしれない あくまでも挙動だけ見るとBlobは読み取りが非同期。
特にフォームで読めるFile(Blobの一種)は一発でオブジェクトが取れるがfetch()やXMLHttpRequestでは必要になってから読み出しストリーミングするような挙動になる。 https://gyazo.com/959e70363a78d63c4eae98d9844cd394
上記の図の特に「C」がいろんな場所(メモリや他のBlobやファイル)を参照するBlobを表しているように見える。
おそらく内部で01のバイナリを連結するというよりむしろ、参照のリストのようなものになっているに過ぎないのではないかと思う。だからUint8Arrayでサイズを確保して.set()してmergeするような処理と比較して効率的なのではないかと思った。
以前から思っていたがソースが見つからず書き残していなかった。