Sunday, September 27, 2009

Thoughts on Beautiful Architecture ch. 10 - The Strength of Metacircular Virtual Machines: Jikes RVM

In this chapter Ian Rogers and Dave Grove described a metacircular runtime environment for Java - Jikes RVM. The authors made a convincing point - a program language should allow enough expression that itself can be written in its own language. Just like the C compiler writers usually are the ones that know C the best, same applies to Java VM implementers. Writing the runtime environment in Java gives the language experts a chance to test out the language and to identify any shortcomings.

One recurring architectural decision throughout the chapter has to do with cost of optimization vs. its potential performance gain such as the use of basic compiler vs. optimizing compiler that is more costly and requires more system resource. Taking a step back, even the runtime analysis itself requires resources, although the authors do point out these requirement are modest; on the other hand, I would image the cost also depends on the amount and frequency of the analysis. This gets me thinking whether one would need to take into account of the performance of the underlying hardware to set the VM behavior. Could different decisions be the best under different hardware setup, such as when the VM runs in a high-performance server vs. a low-speed PC?

No comments:

Post a Comment