言語別メモリ

各言語の参考提出No.9000 Hello World!(テスト用)を解いた最小限の提出)を 本番と同じジャッジサーバで実行し、その使用メモリから 「この言語が通るために最低限必要なメモリ制限」を出しています。
メモリ制限をこの値より小さくすると、解法とは関係なくその言語では MLE になります。
いちばん要るのは 265 MB です。全言語を通したいなら、メモリ制限はこれに解法が使う分を足した値にしてください。 メモリ制限の上限は 1024 MB です。
※ 言語のバージョンを上げると変わるので、更新のたびに測り直しています。

# 言語 言語ID 最低メモリ制限 計測値 参考提出
1 Julia julia 265 MB 264728 KB #623552
2 Raku raku 178 MB 177988 KB #13792
3 PyPy2 pypy2 81 MB 80624 KB #5667
4 Clojure(Beta) clojure 70 MB 69176 KB #497489
5 Elixir elixir 67 MB 66956 KB #109209
6 PyPy3 pypy3 56 MB 55828 KB #13315
7 Scala(Beta) scala 52 MB 51880 KB #4296
8 JavaScript node 51 MB 50872 KB #100
9 TypeScript typescript 51 MB 50488 KB #506899
10 Kotlin kotlin 46 MB 45460 KB #19471
11 Java java 43 MB 42984 KB #418
12 PHP php 39 MB 38364 KB #2088
13 F# fsharp 33 MB 32020 KB #45593
14 Common Lisp lisp 30 MB 29040 KB #401877
15 C# csharp_dotnet 29 MB 28988 KB #662779
16 C#(csc) csharp 27 MB 26280 KB #633
17 Scheme scheme 17 MB 16384 KB #45205
18 Ruby ruby 15 MB 14592 KB #256
19 Python3 python3 12 MB 11008 KB #567
20 OCaml ocaml 10 MB 9800 KB #33012
21 C++11(old_compat) cpp_gcc12_compat 10 MB 9796 KB #684931
22 C++23(gnu拡張gcc16) cpp23_gnu_gcc16 10 MB 9796 KB #684931
23 Crystal crystal 10 MB 9796 KB #38408
24 Bash sh 10 MB 9792 KB #24746
25 Lua lua 10 MB 9792 KB #85147
26 C c_latest 10 MB 9788 KB #154796
27 C++11 cpp 10 MB 9788 KB #554
28 Fortran fortran 10 MB 9788 KB #7648
29 Standard ML sml 10 MB 9788 KB #583404
30 C++17 cpp17 10 MB 9784 KB #168054
31 C++17(gnu拡張) cpp17_gnu 10 MB 9784 KB #168054
32 Brainfuck bf 10 MB 9780 KB #1008586
33 C(gnu17) c17 10 MB 9780 KB #138297
34 Rust rust 10 MB 9780 KB #36808
35 Perl perl 10 MB 9776 KB #260
36 Assembler nasm 10 MB 9768 KB #84045
37 C90 c90_gcc15 10 MB 9768 KB #138297
38 C++17(clang) cpp-clang 10 MB 9764 KB #228199
39 C11(gcc12 gnu拡張) c11_gcc12 10 MB 9760 KB #138297
40 C++23 cpp23 10 MB 9740 KB #684931
41 Haskell haskell 10 MB 9736 KB #981
42 Nim nim 10 MB 9736 KB #13891
43 D d 10 MB 9732 KB #2716
44 Text text 10 MB 9728 KB #22820
45 C++14 cpp14 10 MB 9724 KB #85025
46 C90(gcc12) c 10 MB 9716 KB #4830
47 cLay clay 10 MB 9716 KB #195393
48 C++11(gcc12) cpp_gcc12 10 MB 9704 KB #684931
49 Whitespace Whitespace 10 MB 9704 KB #5837
50 C++17(gcc12) cpp17_gcc12 10 MB 9700 KB #611795
51 C++23(gnu拡張) cpp23_gnu 10 MB 9696 KB #684931
52 Swift swift 9 MB 8960 KB #259882
53 Vim script vim 8 MB 7936 KB #137340
54 C++23(gcc16) cpp23_gcc16 8 MB 7716 KB #684931
55 Go go 8 MB 7716 KB #3971
56 Kuin kuin 8 MB 7716 KB #403993

この数字の読み方

  • 判定に使うのは提出プロセスの使用メモリ(Maxrss)です。ジャッジは 使用メモリ(KB) >= 1000 × メモリ制限(MB) で MLE にするので、 「最低メモリ制限」は計測値を 1000 で割って切り上げた値ではなく、 それを超える最小の整数です。 例えば 43104 KB の言語は 43 MB では 43104 >= 43000 で MLE になるため、44 MB が要ります。
  • どの言語も 8 MB 程度が下限になります。計測値には実行を包む仕組みの分が含まれるためで、 何もしないプログラムでもこれを下回りません。この付近に並んでいる言語は、 実質「言語による差が無い」と読んでください。
  • コンパイルで使うメモリはメモリ制限の対象外なので、この表には入っていません。
  • 計測値は実行ごとに多少ぶれます。