Launching takes a lot of time, but it isn’t much if you do what Java does and run in interpreter mode, and use LLVM to compile the most commonly used parts of the program.
In addition, when there are arguments such as scattered across the Internet, Mono has long used LLVM as a JIT compiler (although it is worth noting that by default it uses its own faster, but less efficient backend, and also changes parts of LLVM).
For dynamic languages, LLVM may not be the best tool, because it is designed to optimize system programming languages, such as C and C ++, that are strongly / statically typed and support very low-level functions. In general, the optimization performed in C does not actually make dynamic languages ​​fast because you are simply creating an efficient way to work with a slow system. Modern dynamic JIT languages ​​perform functions such as built-in functions known only at runtime, or optimization depending on which type of variable has most of the time for which LLVM is not intended.
parkovski Jul 29 '11 at 4:17 2011-07-29 04:17
source share