What backs up the claim that C++ can be faster than a JVM or CLR with JIT? [closed]
Want to improve this post? Provide detailed answers to this question, including citations and an explanation of why your answer is correct. Answers without enough detail may be edited or deleted. As it currently stands, this question is not a good fit for our Q&A format. We expect answers to be supported by facts, references, […]
Does current JIT optimize generated machine codes for branch prediction based on runtime statistics?
Some JVMs would compile Java byte code into native machine code. We know that there are lots of optimizations we could apply for that. Recently, I also learn that a branch operation may block the CPU and affect the performance significantly, if a CPU makes a wrong prediction.
Expensive AOT Optimizations
I’ve seen it stated several times that AOT can run some more expensive optimizations that take too long to be used by a JIT. But I’ve never seen it stated what exactly these optimizations are. So I’m wondering, what are these optimizations?
What’s the relationship between meta-circular interpreters, virtual machines and increased performance?
I’ve read about meta-circular interpreters on the web (including SICP) and I’ve looked into the code of some implementations (such as PyPy and Narcissus).
What’s the relationship between meta-circular interpreters, virtual machines and increased performance?
I’ve read about meta-circular interpreters on the web (including SICP) and I’ve looked into the code of some implementations (such as PyPy and Narcissus).
How can I find the start of a native method?
For a hobby project, I’m writing an x86 GC and JIT. For the GC, I need to maintain information about the stack layout (it’s a precise GC), for which I need to be able to find out which method the IP currently is in (and the complete call chain of course). How can you do this?
How can I find the start of a native method?
For a hobby project, I’m writing an x86 GC and JIT. For the GC, I need to maintain information about the stack layout (it’s a precise GC), for which I need to be able to find out which method the IP currently is in (and the complete call chain of course). How can you do this?
Which components/phases of a JIT compiler are different from a traditional ahead of time compiler?
Besides a faster register allocation algorithm and some trade-off in control and data-flow analysis for optimization purposes, which components/phases of a JIT compiler are different from a traditional ahead of time compiler?
Which components/phases of a JIT compiler are different from a traditional ahead of time compiler?
Besides a faster register allocation algorithm and some trade-off in control and data-flow analysis for optimization purposes, which components/phases of a JIT compiler are different from a traditional ahead of time compiler?
Which components/phases of a JIT compiler are different from a traditional ahead of time compiler?
Besides a faster register allocation algorithm and some trade-off in control and data-flow analysis for optimization purposes, which components/phases of a JIT compiler are different from a traditional ahead of time compiler?