マイクラのサーバー、C言語で書き直したらメモリ消費16GBから16MBに。オブジェクト指向は愚かな考え

Minecraftのサーバーは、16GBを超えるメモリを積んだPCで動かすのが当たり前になっている。そこに挑んだのが、Redditユーザー angelthebox(GitHub: 4ngel2769)氏の自作プロジェクト「Macerun」だ。16MBのフラッシュとOctal PSRAMを搭載したESP32-S3マイコン上で、Minecraft Java Edition 1.16.5のサーバーをベアメタルで動作させる。
(省略)
全文
https://fabscene.com/new/make/macerun-minecraft-server-esp32-s3-bare-metal/
【画像】 「うひょー!缶コーヒーうまっ!」とか抜かしてるアホって土方や鳶職くらいだよねwww
【悲報】 Z世代さん、有給を使いたがる...
朝日「ボート事故と強まる萎縮 平和学習こそが最良の「防衛策」」
高野連の宝会長が不祥事で電撃辞任 厳重注意も理由は不明
【画像】 アクスタ界隈、なぜか立体感を求める
3:2026/04/27(月) 15:36:55.01 ID:RFtPy+nU0.net
マイクラ戦争の動画が面白かったなー
4:2026/04/27(月) 15:37:07.10 ID:RFtPy+nU0.net
あと監獄のやつ
5:2026/04/27(月) 15:38:36.63 ID:1ZZs4Itq0.net
じゃasmだったら?
13:2026/04/27(月) 15:48:49.95 ID:yA72hnZ80.net
>>5
コンパイラが最適化したCのほうが遥かに速い
人間が直接バイナリやそれに準ずる物を書いても現在の複雑怪奇なCPUに対して最適化しきれない
18:2026/04/27(月) 16:06:38.89 ID:1ZZs4Itq0.net
>>13
そうなんだ、以前どっかで何かをasmで書き換えたらすごい良くなったと書いてあったから、気になった
ありがとう
23:2026/04/27(月) 16:10:58.80 ID:30k5+mBA0.net
>>18
ffmpegだろ
信号処理やデコーダの類は
アセンブリ言語で速くなりえる
36:2026/04/27(月) 16:40:30.95 ID:yCMCBy3n0.net
>>18
書く人次第
特に昔は命令毎に処理に要するクロックが下手すると数十倍の差があったから
例えば掛け算を足し算に分解するようなテクニックもあった
今はどの命令も数クロック……どころか、複数の相性のいい命令を組み合わせて同時に実行させるかや
メモリに読みに行かせない(昔に比べるとメモリの速度が“相対的”に遅い)か等が重要になってくるから人の手には余る所がある
厄介なのはCPU毎に最適解が大きく違ったりすること
Cならば共通のコードでいいけど、ASMだとCPU毎に書き分ける必要がある
じゃasmだったら?
13:2026/04/27(月) 15:48:49.95 ID:yA72hnZ80.net
>>5
コンパイラが最適化したCのほうが遥かに速い
人間が直接バイナリやそれに準ずる物を書いても現在の複雑怪奇なCPUに対して最適化しきれない
18:2026/04/27(月) 16:06:38.89 ID:1ZZs4Itq0.net
>>13
そうなんだ、以前どっかで何かをasmで書き換えたらすごい良くなったと書いてあったから、気になった
ありがとう
23:2026/04/27(月) 16:10:58.80 ID:30k5+mBA0.net
>>18
ffmpegだろ
信号処理やデコーダの類は
アセンブリ言語で速くなりえる
36:2026/04/27(月) 16:40:30.95 ID:yCMCBy3n0.net
>>18
書く人次第
特に昔は命令毎に処理に要するクロックが下手すると数十倍の差があったから
例えば掛け算を足し算に分解するようなテクニックもあった
今はどの命令も数クロック……どころか、複数の相性のいい命令を組み合わせて同時に実行させるかや
メモリに読みに行かせない(昔に比べるとメモリの速度が“相対的”に遅い)か等が重要になってくるから人の手には余る所がある
厄介なのはCPU毎に最適解が大きく違ったりすること
Cならば共通のコードでいいけど、ASMだとCPU毎に書き分ける必要がある
6:2026/04/27(月) 15:39:48.50 ID:AI+a+rwi0.net
多少大学院のとき統計ソフト自作した時プログラムやってたけど構造体とクラスの概念がこっちゃや
9:2026/04/27(月) 15:41:37.37 ID:riO7Va7Z0.net
最近のプログラムは、メモリ節約とか考えないんだろ
65:2026/04/27(月) 18:30:41.17 ID:WgdEhs5e0.net
>>9
無理に節約しようとするからバッファオーバーフローとか起きると考えるんだよね。
最近のプログラムは、メモリ節約とか考えないんだろ
65:2026/04/27(月) 18:30:41.17 ID:WgdEhs5e0.net
>>9
無理に節約しようとするからバッファオーバーフローとか起きると考えるんだよね。
12:2026/04/27(月) 15:48:36.99 ID:HXIsUvgy0.net
こんなポンコツサーバが動くという話
14:2026/04/27(月) 15:56:30.14 ID:xLRjinoU0.net
BORLAND C++が良いな
15:2026/04/27(月) 15:57:24.03 ID:52Hep3l10.net
オブジェクト指向関係ないだろ
37:2026/04/27(月) 16:42:03.05 ID:yCMCBy3n0.net
>>15
くっそ関係あるよ
オブジェクトの数だけ管理情報が必要
41:2026/04/27(月) 16:50:27.77 ID:52Hep3l10.net
>>37
ちゃんと1読めよ
オブジェクト指向関係ないだろ
37:2026/04/27(月) 16:42:03.05 ID:yCMCBy3n0.net
>>15
くっそ関係あるよ
オブジェクトの数だけ管理情報が必要
41:2026/04/27(月) 16:50:27.77 ID:52Hep3l10.net
>>37
ちゃんと1読めよ
16:2026/04/27(月) 15:58:17.75 ID:vp3rNoaR0.net
ソシャゲの紙芝居ゲームとか10年前の1GBスマホでも動きそうだよね
17:2026/04/27(月) 15:59:55.45 ID:P9ayTD9H0.net
>FreeRTOS上で動作し、ネットワーク処理はlwIPの生TCPソケットを直接扱う。
今そんな方法あるんだな、自分はlinux配下でしか通信系作ったこと無いわ
19:2026/04/27(月) 16:09:16.76 ID:30k5+mBA0.net
生ソケットでやりたい放題
あまり奇抜なプレイはOSが干渉して禁止させてのかな
20:2026/04/27(月) 16:10:11.29 ID:BJZkxMaY0.net
オブジェクト指向はやってる感出すだけのガチのゴミやぞ
22:2026/04/27(月) 16:10:45.19 ID:NrNiw81E0.net
いや仕様変えたら似てるだけの別ゲーだろ
それで軽いって自慢されても
24:2026/04/27(月) 16:18:23.07 ID:30k5+mBA0.net
アセンブリ言語で「FFmpeg」を記述する方法のチュートリアルが
中略
なお、学習はC言語(特にポインター)の知識が必要とのこと。
いや
Cもポインタもアセンブリ言語もわからないやつはITから去れ
セキュリティが悪くなるだけ
25:2026/04/27(月) 16:19:40.21 ID:LBJZLiKS0.net
ポインタは一つの登竜門で、こんなのもわからない馬鹿は諦めてくれてたからな
javaはバカを参入させた
26:2026/04/27(月) 16:21:52.99 ID:v8kNI5Fu0.net
ランタイムがデカ過ぎるだけだろ
27:2026/04/27(月) 16:22:25.44 ID:tDxbxjvn0.net
Cでオブジェクト指向的な設計してないとなんで分かるんや
30:2026/04/27(月) 16:25:21.12 ID:lvOvZri+0.net
統合版もCで書いてるから軽いようなこと聞いた気がする
31:2026/04/27(月) 16:32:16.32 ID:yCMCBy3n0.net
16bitにすると更にコンパクトに
32:2026/04/27(月) 16:34:04.24 ID:IGowB6KG0.net
Windowsがクソ重い理由もこれか
33:2026/04/27(月) 16:36:13.61 ID:F0lzdSFN0.net
同時接続4人までなどの機能制限版か
35:2026/04/27(月) 16:39:19.94 ID:7tykMDwq0.net
16Mはストレージでしょ。メモリは512kbっぽい。
38:2026/04/27(月) 16:43:27.22 ID:zKKZZt3t0.net
よくわからん
ガンダムかドラゴンボールで例えてください
40:2026/04/27(月) 16:47:24.27 ID:JdjT2u9H0.net
void *p = null;
43:2026/04/27(月) 17:00:30.71 ID:pWVZ9tbz0.net
>>40
俺なら16kBにしてやんぜ
void *p = null;
43:2026/04/27(月) 17:00:30.71 ID:pWVZ9tbz0.net
>>40
俺なら16kBにしてやんぜ
44:2026/04/27(月) 17:02:23.91 ID:reKb6oDp0.net
昔ポケコンでむりやりPokeやCall使ってピンポンゲームとか作ったな
面白い時代だった
45:2026/04/27(月) 17:02:48.46 ID:FE00O6Lp0.net
まだ出来てないんだよね
46:2026/04/27(月) 17:14:13.84 ID:KGkcqkcq0.net
昔のBSDのカーネルはサイズが1MBぐらいしかなかったんだがな。いまはLinuxとかブクブクに膨れてる。32ビットから64ビットになったからだけじゃない。
59:2026/04/27(月) 18:05:10.47 ID:jk0D0aKY0.net
>>46
しかも昔はカーネルを自分のハードに合わせてリコンパイルが普通だったな
64:2026/04/27(月) 18:22:50.80 ID:wjSSDgpj0.net
>>46
そりゃカーネルを仮想メモリに入れるわけにはいかないからな
当時のマシンの物理メモリに収まるようなものしか実装できない
昔のBSDのカーネルはサイズが1MBぐらいしかなかったんだがな。いまはLinuxとかブクブクに膨れてる。32ビットから64ビットになったからだけじゃない。
59:2026/04/27(月) 18:05:10.47 ID:jk0D0aKY0.net
>>46
しかも昔はカーネルを自分のハードに合わせてリコンパイルが普通だったな
64:2026/04/27(月) 18:22:50.80 ID:wjSSDgpj0.net
>>46
そりゃカーネルを仮想メモリに入れるわけにはいかないからな
当時のマシンの物理メモリに収まるようなものしか実装できない
47:2026/04/27(月) 17:18:38.73 ID:xTb/xm7M0.net
Cよりアセンブラで記述したほうがオーバーヘッドを減らせそう
48:2026/04/27(月) 17:22:16.51 ID:ZsEUCD8x0.net
つかクリフトより無能だよなAI
クリフトは嘘は作らなかったし
49:2026/04/27(月) 17:23:08.75 ID:fmS91kIq0.net
AI使ってマシン語レベルに最適化出来そうだね
50:2026/04/27(月) 17:25:18.92 ID:JQJ6sVzU0.net
じゃあrustならどうなるのっと
52:2026/04/27(月) 17:33:13.91 ID:40u4ro760.net
いままでJavaだったのか
53:2026/04/27(月) 17:39:38.23 ID:wUFsV32f0.net
オブジェクト指向がメモリ食うのは知ってたがそんなに違うのか
54:2026/04/27(月) 17:41:13.33 ID:h/rv8yCw0.net
Javaって時点で
60:2026/04/27(月) 18:08:36.35 ID:ZhfBk1fy0.net
車輪の再発明が極まってるなぁ
よっぽど時間余ってそうで羨ましい
62:2026/04/27(月) 18:16:49.91 ID:AQGdYuDn0.net
初めてのC()
63:
マイクラはマルチプラットホーム戦略で移植性を最大限に考えて作られてるから冗長性のあるプログラムになってるわけで、単一プラットホームに特化するなら小さく作れて当然
辺野古転覆 文科省現地聴取終了 同志社理事長「責任痛感」 でも校長は続投・参考人招致拒否
生活保護で330万円貯めたって言ったら返還しろって言われるんだけど、
高野連の宝会長が不祥事で電撃辞任 厳重注意も理由は不明
俺「むかしメロンの形した容器のアイスあっただろ」Z世代後輩「ないですね」俺「いやあったんだけどさ」後輩「ないです」
経済崩壊の中国・上海の地下鉄で、おばちゃん同士の殴り合いが発生
気になるAmazonの本













まとめたニュース
が
しました