7911364440
V2EX  ›  Java

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

  •  
  •   7911364440 · Jun 15, 2022 · 2016 views
    This topic created in 1445 days ago, the information mentioned may be changed or developed.

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

    3 replies    2022-06-15 11:42:48 +08:00
    koebehshian
        2
    koebehshian  
       Jun 15, 2022
    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  
       Jun 15, 2022
    在 code cache 里。实际上就是 CHeap 里。hotspot 里有个东西叫 deoptimization ,就是你说的降级
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   2771 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 34ms · UTC 09:30 · PVG 17:30 · LAX 02:30 · JFK 05:30
    ♥ Do have faith in what you're doing.