| ▲ | FooBarWidget 7 months ago | |
Why is a traditional method based JIT better than an LBBV JIT? I thought YJIT is LBBV because it's a better fit for Ruby, whereas traditional method based JIT is more suitable for static languages like Java. | ||
| ▲ | tenderlove 7 months ago | parent | next [-] | |
One reason is that we think we can make better use of registers. Since LBBV doesn't "see" all blocks in a particular method all at once, it's much more challenging to optimize register use across basic blocks. We've added type profiling, so ZJIT can "learn" types from the runtime. | ||
| ▲ | pjmlp 7 months ago | parent | prev | next [-] | |
Usual caveat that while Java is mostly static, is has dynamic runtime semantics inherited from Smalltalk and Objective-C, with dynamic class loading, bytecode generation, proxy classes, reflection, hence why the research work on Smalltalk and Strongtalk ended up being so useful for Hotspot. | ||
| ▲ | 7 months ago | parent | prev [-] | |
| [deleted] | ||