Another issue is performance of dynamically generated code. Our cache consistency algorithm often encounters false sharing when dealing with JITs, causing poor performance. Even with tuning of our algorithm we may never reach native performance. The mitigating factor here is that perhaps the virtual machine is a better tool platform for these applications.
There are some intractable issues that cannot be solved without kernel support: Inter-process communication can cause cache consistency events that we never see. There is no alternate exception handler stack on Windows, making it impossible to handle a fault with an invalid stack pointer -- which is always a danger with our cache consistency algorithm, if the stack pointer is ever changed to point to a region we made read-only.
|Copyright © 2004 Derek Bruening|