
E-Sysで次なるコーディング内容についていろいろとオフラインでバックアップしてあるファイルを操作していて“FDL-Editor”をポチっとクリックしたら突然“Runtime-Error”、“No more memory available! Please restart E-Sys with more memory . [C150]”というメッセージがでてE-Sysがそれ以降反応しなくなってしまった。→実際に車へのコーディング中でなかったので幸いではあったがこの問題で以降コーディングに支障が出たらと思うと非常に焦る!
メッセージを単純に翻訳すると“これ以上メモリーがないからもっとメモリーを増やしてE-Sysを再起動せいっ!”ということであるがこれまで特に問題なく操作できていたし、ノートPCの物理メモリー(RAM)は搭載可能Maxである16GBまで容量を増やしているのでこれ以上メモリーを増やせと言われても…
最初はPC自体の問題かと思いE-Sysを再起動したりPCを再起動しても同じようにエラーが発生して改善しないので出ているエラーメッセージの詳細をよく見てみると“java. lang. Out OF Memory Error: Java heap space” という表記があった。
以降の詳細ではダーっとメッセージが並んでいてプログラミングなぞ全く分からない私にはまるで魔法の呪文が書かれているようなものだが最初の1行からすると“Javaでメモリーの容量が超えている:Javaのヒープスペース”ということでどうやらJava アプリのヒープという領域でメモリー容量が不足しているようであると理解した。
Javaというアプリ自体はいろいろなWebブラウザーとかのアプリケーションでバックグラウンド的(表現が正しいかどうか判りません)に使われているくらいの認識はあったがそこのヒープ領域を増やせと言われてもこれも調べるしかない。
理屈としてはJava のヒープスペースのメモリー容量はPC物理メモリー(RAM)の1/4をデフォルトで設定されているがそれを超すような場合に今回のようなエラーが発生するようである。
私のPCは容量を増やして16GBになっているのでデフォルトでは4GBがあてがわれているということになるがそれでも容量が足りないということになる。(どんだけ使うんや!!って感じですが)
試しにE-Sysを動かしながら“タスクマネージャー”でJava Platform SE binaryのメモリー使用量をみると4GB(4,000MB)を少し超えた状態で頭打ち状態になっているような雰囲気があったので何となく納得してヒープ領域を増やすことにした。
システムの詳細設定の“環境変数(N)…” を編集し変数名(N): “_JAVA_OPTIONS” を入力、変数値(V): “-Xmx8G”として領域を8Gまで増やすことでエラーは発生しなくなった。
しかし数日後、再度Runtime-Error “Java Out Of Memory Error”が発生してしまった。
タスクマネージャーでメモリー使用量を確認したところ8Gを超えてまた頭打ち感が出ているので今度は13Gまで上げてみてもエラーは再発する…
エラーの詳細を確認すると同じ“Java Out Of Memory Error”でも“Java heap space”という表記から“Requested array size exceeds VM limit” という表記に変わっている。
このエラーはアプリケーションがヒープサイズより大きい割当をしようとしたことで発生するエラーということらしいので流石に13Gを割り当てても大きくなるというのは異常としか思えず消去法的に当初は問題は起こしていないだろうと考えたアプリケーションを疑うしかなくなった。
アプリの方はLauncher Proを再インストールするとアクティベートとかが面倒なのでE-Sysから再インストールを行ってみた。
するとエラーは発生せず、タスクマネージャーのメモリー使用量も400MBくらいで安定していて以前のように大きく増えていくという現象はなくおそらくE-Sysが何らかの問題でメモリーが解放できないとかリークを起こしていたということだったようである。
長々と書いてしまったが結論としては
“Runtime-Error”、“No more memory available! Please restart E-Sys with more memory . [C150]”というエラーが発生したらE-Sysを再インストールしましょう!です。
素人があれやこれや小難しく考えるよりは単純に行動したほうが早かったというお話でした。
ブログ一覧 | クルマ
Posted at
2020/06/11 21:09:24