( asch | 2022. 09. 30., p – 13:57 )

Sajnos neked hiába magyarázzuk, hogy ennek nem a Java az oka, hanem az hogy maga a program szar. De itt nem is konkrétan a Java-ról van szó, hanem arról hogy a menedzselt memória alapelv működőképes-e, és igen, az. Valóban lehet olyan programot írni vele, ami random foglal és felszabadít memóriát és ahelyett, hogy öregedne a heap és egyre töredezettebb lenne, minden GC után friss üde és fiatalos és a processz korát csak a teljesítmény-számlálói mondják meg.

De nem kell feltétlenül Java szintű dologra gondolni, például ismereteim szerint a WASM (WebAssembly vagy mi a neve) olyan, hogy C-ben írt programokat is tud futtatni, mégis memória biztos a futtatása. Sajnos pontosan nem tudom hogy hogyan működik belül, de egy projektemet már portoltam rá poénból, és tök jól működik.

Az elv tehát, hogy hardver helyett a szoftver vigyáz a memória határok betartására, az működőképes, és véleményem szerint egyáltalán nem elvetendő mint kísérleti irány a jövőre nézve.

Ez egy hasonló elv volna, mint amit az Itanium-mal csináltak. Ott azt tervezték, hogy az utasítások párhuzamosítását nem dinamikusan a CPU oldja meg, hanem a fordító explicit végrehajtási tervet csinál. Így a végrehajtó processzor sokkal egyszerűbb, de mégis van párhuzamosítás. (Nagyjából címszavakban ismerem csak ezt a projektet, de az elv tetszik.) Ehhez hasonló volna, hogy az MMU-t kiegyszerűsítjük úgy, hogy az oprendszer csinálja meg ezt a feladatot és csupa olyan szoftvert futtat, ami képes inherensen betartani a memóriabiztonságot. Az is lehet, hogy hülye ötlet, de kísérletképpen érdemes volna elgondolkodni rajta, mert ami funkció a processzorban az fogyaszt is meg lassít is.