実際にはない(と思う)ものの話って面白いですよね!
こういうの好きです。
この記事では、もし無限メモリを搭載したコンピュータがあったら、それはどのようになるか考えてみたいと思います。最後まで読んでいただければうれしいです。
まず、無限のメモリがあるとはいえ、どうやってアドレスを指定するのかという問題が発生します。
でも64ビットで指定できるとしたら(バイト単位でアクセスできるマシンを仮定します)、バイト(2^0バイト)…KB(2^10バイト)…MB(2^20バイト)…GB(2^30バイト)…TB(2^40バイト)…ペタバイト(2^50バイト)…エクサバイト(2^60バイト)…、16エクサバイトまで表せるのでとりあえずは十分そうですね。もっといるなら128ビットで指定できるようにしましょう。
ほぼ無限にメモリがあるので、まずメモリをfreeする必要がなくなりますね。さらにmallocも簡単になります。各スレッドに適当に1TBぐらい割り振っちゃいましょう!なんかすごいのはおいておいて、mallocは各スレッドに割り当てられたメモリを先頭から使ってしまえば速いし簡単です。スタック用にも1TB割り振っておいてもいいかもしれません。もし1TB使い切ったならさらに1TB割り振ることで、もっと使えるようになります。
もしこのメモリが不揮発性メモリ(電源を切っても消えないメモリ、SSDなど)なら、ファイルを消さずにどんどん置いていくこともできます。
こんなメモリが使えたら、プログラミングが簡単になっていいですね。
最後まで読んでいただきありがとうございました。お楽しみいただければうれしいです!