ソフトウェアを書いていると完全にコントロールを握っているかのような淡い幻想を抱いてしまいがちだ。それは何層にも渡るレイヤー化と抽象化が大量の複雑さを隠蔽するのに成功しているからとも言える。しかし、複雑さが必然的に漏れたときは、内部で何が起こっているかを知っていることが得になる。
このトークでは、レイヤーをいくつか取り除いて「エンジン」部分である CPU を覗いてみる。全てのアプリケーション、たとえそれが高レベルな Scala であっても、最終的にはプロセッサでマシンコードを実行する。そのため、JVM はメモリモデルを持ち、規模が大きくなるとメモリのレイアウトが効いてくる。また、なぜ通常は無視して安心して作業してもいいのかも解説する。
票中 票投票済み