use*_*783 9 multithreading jit pypy compilation luajit
JVM和.NET CLR都包含支持多个用户线程的即时编译器.但是,我相信这些是一次一个方法的JIT.
我所知道的所有跟踪JIT,例如LuaJIT和PyPy,都只是单线程的.
是否有任何跟踪支持多个用户线程的JIT的示例?如果没有,是否有任何技术原因导致这些不存在?
对正在运行的多线程程序进行分析(跟踪)要困难得多,但也并非不可能。跟踪的全部目的是使运行时比优化编译器第一次做得更好。如果线程是互连的,那么要修改代码的 JIT 不仅需要了解代码是如何执行的,而且还需要了解对其他线程的副作用。
当线程一需要访问内存中的大文件时,它是否会创建二级缓存刷新,从而导致线程二由于其正在运行的代码外部的原因而停止。JIT 必须理解这些交互。否则,当线程二的改进来自于认识到线程一代码对线程二产生不利影响并试图消除缓存刷新时,可能会花费大量时间来尝试优化线程二。
您是否正在考虑尝试编写自己的跟踪多线程 JIT?这是可以做到的,但它涉及到。
| 归档时间: |
|
| 查看次数: |
359 次 |
| 最近记录: |