V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
7911364440
V2EX  ›  Java

想问一个关于即时编译的问题

  •  
  •   7911364440 · 2022-06-15 11:11:56 +08:00 · 1535 次点击
    这是一个创建于 898 天前的主题,其中的信息可能已经有所发展或是发生改变。

    Java 字节码经过即时编译之后会变成机器码,这些机器码存在哪里的,内存吗?编译后的机器码会不会失效? 如果一段代码一开始调用频率非常高,被判定为热点代码并被即时编译,那如果这段代码之后不会再被访问,这段代码会不会降级为解释执行?

    3 条回复    2022-06-15 11:42:48 +08:00
    koebehshian
        2
    koebehshian  
       2022-06-15 11:41:55 +08:00
    For example, translation to machine code was done on demand, and the result was cached for later use. When memory became scarce, the system would delete some of this code and regenerate it when it was needed again.
    --- https://en.wikipedia.org/wiki/Just-in-time_compilation#Design

    是在内存,内存不够是会被替换掉。
    letianqiu
        3
    letianqiu  
       2022-06-15 11:42:48 +08:00
    在 code cache 里。实际上就是 CHeap 里。hotspot 里有个东西叫 deoptimization ,就是你说的降级
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   3111 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 26ms · UTC 00:15 · PVG 08:15 · LAX 16:15 · JFK 19:15
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.