Π ΡΡΠΌ ΡΠ°Π·Π½ΠΈΡΠ° ΠΌΠ΅ΠΆΠ΄Ρ ΠΈΠ½ΡΠ΅ΡΠΏΡΠ΅ΡΠ°ΡΠΎΡΠΎΠΌ, AOT ΠΈ JIT-ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡΠΎΠΌ?
ΠΠ½ΡΠ΅ΡΠΏΡΠ΅ΡΠ°ΡΠΈΡ β ΠΏΡΠΎΡΡΠΎΠ΅ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎΠ΅ Π²ΠΎΡΠΏΡΠΎΠΈΠ·Π²Π΅Π΄Π΅Π½ΠΈΠ΅ ΠΊΠΎΠ΄Π° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ, ΠΊΠΎΠΌΠ°Π½Π΄Π° Π·Π° ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ.
AOT-ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΡ (ahead-of-time, ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΠ°Ρ) β ΠΏΡΠΎΡΠ΅ΡΡ ΠΏΡΠ΅Π²ΡΠ°ΡΠ΅Π½ΠΈΡ ΡΠ΅ΠΊΡΡΠ° Π½Π° ΡΠ·ΡΠΊΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ Π² Π½Π°ΡΠΈΠ²Π½ΡΠΉ ΠΊΠΎΠ΄ Π½Π° ΠΌΠ°ΡΠΈΠ½Π½ΠΎΠΌ ΡΠ·ΡΠΊΠ΅. Π’Π°ΠΊ ΡΠ°Π±ΠΎΡΠ°ΡΡ ΡΠ·ΡΠΊΠΈ Π²ΡΠΎΠ΄Π΅ C++. Π ΡΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ
JDK ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠ»ΡΡΠΈΡΡ Π½Π°ΡΡΠΎΡΡΠΈΠΉ ahead-of-time ΡΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΠΎΠ²Π°Π½Π½ΡΠΉ ΠΌΠ°ΡΠΈΠ½Π½ΡΠΉ ΠΊΠΎΠ΄ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΡΡΠΈΠ»ΠΈΡΡ jaotc.
JIT-ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΡ (just-in-time, Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΠ°Ρ) β Β«ΡΠΌΠ½Π°ΡΒ» ΠΈΠ½ΡΠ΅ΡΠΏΡΠ΅ΡΠ°ΡΠΈΡ. Π‘ΡΠ΅Π΄Π° Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ Π°Π½Π°Π»ΠΈΠ·ΠΈΡΡΠ΅Ρ ΠΈΡΠΏΠΎΠ»Π½ΡΠ΅ΠΌΡΠΉ ΠΊΠΎΠ΄, ΠΎΠΏΡΠΈΠΌΠΈΠ·ΠΈΡΡΡ ΡΠ°ΡΡΠΎ Π²ΡΠ·ΡΠ²Π°Π΅ΠΌΡΠ΅ ΡΡΠ°ΡΡΠΊΠΈ. Π’Π°ΠΊΠΈΠΌ ΡΠΏΠΎΡΠΎΠ±ΠΎΠΌ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° ΡΠ°Π±ΠΎΡΠ°Π΅Ρ Π·Π½Π°ΡΠΈΡΠ΅Π»ΡΠ½ΠΎ Π±ΡΡΡΡΠ΅Π΅, ΠΈ ΡΠΎΡ
ΡΠ°Π½ΡΠ΅Ρ ΠΏΡΠΈ ΡΡΠΎΠΌ ΠΏΡΠ΅ΠΈΠΌΡΡΠ΅ΡΡΠ²Π° ΠΏΠ»Π°ΡΡΠΎΡΠΌΠΎ-Π½Π΅Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ ΠΎΡΠΈΠ³ΠΈΠ½Π°Π»ΡΠ½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π°. ΠΠΌΠ΅Π½Π½ΠΎ Ρ JIT-ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΠ΅ΠΉ ΡΠ²ΡΠ·Π°Π½Π° Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΠΎΡΡΡ Β«ΠΏΡΠΎΠ³ΡΠ΅Π²Π°Β» ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌ ΠΏΠ΅ΡΠ΅Π΄ ΡΠ΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ.
ΠΡΠΈ ΡΠ΅ΡΠΌΠΈΠ½Ρ ΠΎΡΠ½ΠΎΡΡΡΡΡ Π½Π΅ ΡΠΎΠ»ΡΠΊΠΎ ΠΊ JVM, Π½ΠΎ ΠΈ ΠΊΠΎ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²Ρ Π΄ΡΡΠ³ΠΈΡ
ΡΠ·ΡΠΊΠΎΠ² ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ. ΠΠΎΠ½ΠΊΡΠ΅ΡΠ½ΠΎ Π² Java Π±Π°ΠΉΡΠΊΠΎΠ΄ β ΠΈΠ½ΡΠ΅ΡΠΏΡΠ΅ΡΠΈΡΡΠ΅ΠΌΡΠΉ. ΠΠΎ Π² JVM ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ JIT-ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡ. Π ΠΏΡΠΎΡΠ΅ΡΡ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΠΈ Java-ΠΊΠΎΠ΄Π° Π² Π±Π°ΠΉΡΠΊΠΎΠ΄ ΠΌΠΎΠΆΠ½ΠΎ Π½Π°Π·Π²Π°ΡΡ AOT-ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΠ΅ΠΉ.
ΠΠ»Ρ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΡ Ρ JIT-ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡΠΎΠΌ ΠΈΠ· ΠΊΠΎΠ΄Π° Π² JDK ΠΏΠΎΡΡΠ°Π²Π»ΡΠ΅ΡΡΡ ΠΊΠ»Π°ΡΡ java.lang.Compiler. ΠΠ³ΠΎ ΠΌΠ΅ΡΠΎΠ΄ΠΎΠΌ disable() ΠΌΠΎΠΆΠ½ΠΎ ΠΎΡΠΊΠ»ΡΡΠΈΡΡ JIT ΠΈ ΠΏΠ΅ΡΠ΅Π²Π΅ΡΡΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ Π² ΡΠ΅ΠΆΠΈΠΌ ΠΏΡΠΎΡΡΠΎΠΉ ΠΈΠ½ΡΠ΅ΡΠΏΡΠ΅ΡΠ°ΡΠΈΠΈ. Π‘Π΅ΠΉΡΠ°Ρ ΡΡΠΎΡ ΠΊΠ»Π°ΡΡ ΠΎΠ±ΡΡΠ²Π»Π΅Π½ ΡΡΡΠ°ΡΠ΅Π²ΡΠΈΠΌ ΠΈ Π³ΠΎΡΠΎΠ²ΠΈΡΡΡ ΠΊ ΡΠ΄Π°Π»Π΅Π½ΠΈΡ.
ΠΠΎΠ»Π΅Π΅ ΠΊΡΠ°ΡΠΈΠ²ΡΠΉ ΡΠΏΠΎΡΠΎΠ± Π²Π»ΠΈΡΡΡ Π½Π° ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡ β ΠΏΠ΅ΡΠ΅Π΄Π°Π²Π°ΡΡ Π΅Π³ΠΎ Π½Π°ΡΡΡΠΎΠΉΠΊΠΈ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ°ΠΌΠΈ JVM. ΠΠ°ΡΠ°ΠΌΠ΅ΡΡ -Djava.compiler=NONE ΡΠ°ΠΊΠΆΠ΅ ΠΏΠ΅ΡΠ΅ΠΊΠ»ΡΡΠΈΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ Ρ JIT Π½Π° ΠΈΠ½ΡΠ΅ΡΠΏΡΠ΅ΡΠ°ΡΠΎΡ. Π ΡΠ΅ΠΎΡΠΈΠΈ, ΡΠ΅ΡΠ΅Π· ΡΡΠΎΡ ΠΆΠ΅ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠΈΡΡ Π΄ΡΡΠ³ΠΎΠΉ JIT-ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡ, Π°Π»ΡΡΠ΅ΡΠ½Π°ΡΠΈΠ²Π½ΡΠΉ Π²ΡΡΡΠΎΠ΅Π½Π½ΠΎΠΌΡ Π² JVM.
ΠΠΎΠ»Π΅Π·Π½ΡΠ΅ ΡΠ΅ΡΡΡΡΡ ΠΏΠΎ Java π©βπ»| ΠΠ°Ρ ΠΊΠ°Π½Π°Π» Π² MAX πͺ
Post #3748
1.26K
- π 1
- π₯ 1