Hiện tại, hầu hết các trình duyệt chính đã bắt đầu tích hợp tối ưu hóa các trình biên dịch JIT vào các trình thông dịch JavaScript/các máy ảo của chúng. Điều đó tốt cho mọi người. Bây giờ, tôi sẽ rất khó để biết chính xác những tối ưu nào họ thực hiện và cách tận dụng tốt nhất chúng. Tài liệu tham khảo về tối ưu hóa trong mỗi công cụ JavaScript chính là gì?Những công cụ JavaScript hiện đại nào tối ưu hóa hoạt động?
Bối cảnh:
tôi đang làm việc trên một trình biên dịch mà tạo ra JavaScript từ một cấp cao hơn & ngôn ngữ an toàn hơn (không biết xấu hổ cắm: nó được gọi là OPA và nó rất mát mẻ) và với kích thước của ứng dụng Tôi tạo ra, tôi muốn mã JavaScript của mình hoạt động nhanh và hiệu quả về bộ nhớ nhất có thể. Tôi có thể xử lý các tối ưu hóa ở mức cao, nhưng tôi cần biết thêm về các phép biến đổi thời gian chạy nào được thực hiện, để biết mã cấp thấp nào sẽ tạo ra các kết quả tốt nhất.
Một ví dụ, từ đầu tôi: ngôn ngữ tôi đang biên dịch sẽ sớm tích hợp hỗ trợ cho sự lười biếng. Động cơ JIT có hoạt động tốt với các định nghĩa chức năng lười biếng không?
Cá nhân, tôi nghĩ rằng cách tốt nhất để tận dụng lợi thế của optimisations trình biên dịch/JIT là chỉ cần tạo ra mã của bạn như là một cách tự nhiên, như thể đọc được , và như duy trì càng tốt và để cho trình biên dịch/jit làm việc đó là phép thuật. Bất kỳ nỗ lực cụ thể nào nhắm mục tiêu tối ưu hóa trình biên dịch có thể sẽ dẫn đến mã ít bảo trì hơn và trong một hoặc hai năm khi các trình biên dịch có tất cả được thay đổi, tối ưu hóa của bạn sẽ không còn hợp lệ nữa. –
Vâng, mã có thể đọc/duy trì không thực sự là mục tiêu của tôi. Tôi đang biên dịch từ một ngôn ngữ hoàn toàn khác với JS, vì vậy tôi không mong đợi bất cứ ai đọc nhiều trên JS được tạo ra. Đối với phép thuật JIT và tính hiệu lực của tối ưu hóa, tốt, có, bạn có một điểm. – Yoric