ゲームによく使われる言語としてC,C++,C#,lua,Python,(JavaScript,Java,アセンブリ)等がありますが、メモリ使用量の多い言語とゲームに使われていない言語が物凄い強い相関関係があります。
一番メモリを使うであろうScalaはJavaの2~3倍(※要出典),F#はC#の1.5倍(※要出典),JavaはC#の2倍程(※要出典)メモリを食うと風の噂で聞いたことがあります(VMはメモリ消費が激しい傾向にある)。Pythonやluaはメモリ消費量比較的多いと言われるスクリプト言語の中ではメモリを殆ど消費しないC/C++より数倍程度で、ゲームのスクリプトや簡易処理に多用されます。C#はUnityで使われている。JavaやF#は2Dとかなら普通に使われている。他の言語は(特にメモリ使用量が多ければ多いほど)マイナー。
- 大体のメモリ使用量目安(比較/ネット記事より参照)
- Scala 459,000 ≪=ヤバスギィ
- Java 170,000
- F# 127,500
- C# 80,000
- PHP 60,000
- JavaScript 58,000
- Python(Python3) 22,000
- lua(lua/luajit) 20,000
- C++ 5,000
- C 2,000
#感想
以上を見て如何にメモリの重要性を思い知ることができた。5年くらい前まではよく組み込みとかでC++はメモリを多く使うから駄目とか言われていたらしいが(今では開発の高速化要求から少しずつ普及しているらしい),やはりメモリは資源の中でも重要なんだなと改めて知った。特にコンシューマーとかスマホやバックエンドなんかは1ソフト当たりのメモリ,CPU資源が限られているので如何にCPUやメモリを使わずコードを見やすく書くかが肝であるのだと思います。それにしてもC言語の約230倍,Pythonの約20倍とかScalaのメモリ使用量はヤバイな...(はて、何個スマホがいるのやら...)どうやら、CとかMozillaのRust(C++のライクなモダンな言語)とか(C++とか)はメモリ使用量が少ないらしい。
#速度については
C <= Rust < C++ <= Java <= C# <= VB.net <= F# << JavaScript = LuaJit < Lua < Ruby < Python <= PHP <= Perl << ShellScript = PowerShell の順らしいですが、メモリ使用量がさらに重要なのかJavaよりC#,JavaScriptよりPythonが使われる傾向がある。Rustは例外でどちらもC並みの優秀さがありますが、新しい言語のためライブラリーが揃ってないらしく、今からなのかなって思います。Rustのデフォルトイミュータブルやスコープの概念、型安全などはunsafeなコードから解放される優秀な機能なので、将来的には使われるのかな?って思います(MSも認めたし)。if式だったりはC系の可読性を損なう演算子から解放されたり、演算子と違って、else if で2つ以上の条件が調べられる点も優秀です。Rust早く普及してくれないかなぁ。