Avatar
0
Nguyễn Thái Sơn Professional
Nguyễn Thái Sơn Professional
AOT or JIT in Java
Anh ơi, trong Java người ta nhắc 2 khái niệm là JIT và AOT, em đọc trên mạng mà k hiểu sự khác biệt 2 cái này là gì, anh phân biệt giúp em

Chúc anh và gia đình giáng sinh vui vẻ

  • Answer
Remain: 5
1 Answer
Avatar
tvd12 Professional
tvd12 Professional
  1. AOT (Ahead-of-time compilation): là hành động biên dịch từ một ngôn ngữ bậc cao về ngôn ngữ bậc thấp hơn, ví dụ từ java trở về shared library (.so) của C++

  1. JIT (Just-in-time compilation): là hành động biên dịch mã nguồn trong quá trình chạy (runtime), ví dụ biên dịch mã nguồn Java sang Java byte code. Em có thể hiểu đơn giản là, bình thường em phải tạo 1 lớp java kiểu:

// lớp Hello.java
public class Hello {
   public void hello() {
      return "Hello World";
   }
}

Và em phải biên dịch trước rồi sau đó mới chạy được. Thì giờ Java sẽ cho phép em truyền mã nguồn trong quá trình chạy và biên dịch nó kiểu:

String classContent = "public class Hello {
   public void hello() {
      return "Hello World";
   }
}";
Object hello = JIT.compile(classContent).newInstance();
hello.getClass().getDeclaredMethod("hello").invoke(hello);
  • 0
  • Reply