JIT so với phiên dịch
Biên dịch Just In Time (còn được gọi là dịch động hoặc JIT) là một kỹ thuật được sử dụng trong điện toán để cải thiện chất lượng hiệu năng thời gian chạy của chương trình máy tính. Đó là sự kết hợp của hai ý tưởng được tìm thấy trong môi trường thời gian chạy: biên dịch mã byte và biên dịch động (là một quá trình mà một số triển khai ngôn ngữ lập trình sử dụng để đạt được hiệu suất trong khi hệ thống đang thực thi một hành động).
Một thông dịch viên mô tả chính xác nhất việc thực hiện một hành động thông qua một chương trình máy tính. Có một vài biến thể về loại hành động mà trình thông dịch thực sự thực thi: Nó trực tiếp thực thi mã nguồn của chương trình; nó dịch mã nguồn thành một biểu diễn là một biểu diễn trung gian hiệu quả, và sau đó thực thi mã đã nói; nó thực thi mã được biên dịch trước được lưu trữ và tạo bởi trình biên dịch là một phần của hệ thống thông dịch.
JIT có khả năng kết hợp các lợi thế tìm thấy cả trong việc biên dịch và biên dịch tĩnh (nghĩa là đi trước thời đại). Là một thông dịch viên, JIT có thể cải thiện hiệu suất thông qua kết quả lưu trữ của các khối mã đã được dịch - so với việc chỉ đánh giá lại mỗi dòng hoặc toán hạng trong mã mỗi khi nó xuất hiện (như trong ngôn ngữ được diễn giải). Giống như mã biên dịch tĩnh tại thời điểm phát triển, JIT có thể biên dịch lại mã nếu đây được coi là kế hoạch hành động có lợi nhất. Ngoài ra, trong cùng một hướng với biên dịch tĩnh, JIT có khả năng thực thi các đảm bảo an ninh.
Cũng giống như trình biên dịch, thông dịch viên có khả năng dịch mã. Cả hai đều là phương pháp chính để thực hiện ngôn ngữ lập trình; tuy nhiên, các danh mục 'trình biên dịch' hoặc 'trình thông dịch' không khác biệt (đối với vai trò kép của chúng là trình dịch mã). Nhược điểm rõ ràng nhất khi sử dụng trình thông dịch là một khi mã được diễn giải, chương trình chắc chắn sẽ chạy chậm hơn so với khi đơn giản biên dịch mã; tuy nhiên, mất ít thời gian hơn để diễn giải mã hóa so với việc biên dịch và chạy nó (đặc biệt thích hợp khi tạo mẫu và thử nghiệm mã).
Nói chung, JIT cung cấp hiệu suất tốt hơn nhiều so với trình thông dịch và, trong nhiều trường hợp, cung cấp hiệu suất tốt hơn nhiều so với trình biên dịch tĩnh. Tuy nhiên, tính ưu việt của nó so với JIT không khiến nó gặp phải một số nhược điểm lớn: Có một chút chậm trễ khi ban đầu thực thi một ứng dụng (tác dụng phụ của việc dành thời gian để tải và biên dịch mã byte). Cuối cùng nó sẽ tạo ra mã hóa tốt hơn; tuy nhiên, độ trễ ban đầu vốn có khi làm như vậy sẽ tăng lên với chất lượng mã hóa.
Tóm lược:
1. JIT là một kỹ thuật được sử dụng để cải thiện chất lượng hiệu năng của thời gian chạy trong môi trường thời gian chạy; một thông dịch viên xác định việc thực hiện một hành động thông qua một chương trình máy tính.
2. JIT kết hợp các lợi thế của giải thích và biên dịch tĩnh; một trình thông dịch có thể dịch mã giống như một trình biên dịch, nhưng làm giảm tốc độ của chương trình.