【GO】WebAssemblyのOut of memory対策


golangでwasmを作って使うとOut of memoryが起きました(発端考察)。

OOM issueとして議論されていましたが、公式版では解決しなかったのでフォークされたものを利用して解決しました。

今回はその利用方法メモです。

環境はWindows10ですがGit for windowsを入れているのでlinuxコマンドも使います。

 

まずは利用させていただくフォークはこちらです。

https://github.com/olso/go

これはGo1.11でOOM解決したフォークのGo1.12版という認識です。

 

過去にビルドしたことがなかったら大体エラーになると思います。

ERROR: Cannot find ホームパス\Go1.4\bin\go.exe

Set GOROOT_BOOTSTRAP to a working Go tree >= Go 1.4.

GO1.4が必要になるのでダウンロードページの下部 Archived versions から1.4.3をダウンロードして中身をホーム直下にGo1.4として置きます。

 

その後もう一度make.batを起動します。

途中でウイルスバスターが邪魔してきたので状況に応じて適宜対処する。

 

これで準備ができたのでwasmビルドに入ります。

^はエスケープ文字で改行を無視しています。Linuxでの\ですね。

 

前回導入したwamsでメモリサイズを見てみます。

ええと、64MBかな。

PCブラウザとAndroid2種で動作確認しましたがどれも無事動きました。

ようやく解決したけどできれば公式で対応してほしいところです。


コメントを残す

メールアドレスが公開されることはありません。