Clojure động biên dịch tất cả các mã Clojure để bytecode tại thời gian chạy. Tôi không chắc làm thế nào bạn có thể thấy bytecode được biên dịch động này. Tuy nhiên, bạn có thể làm Trước thời hạn (AOT) tự mình biên dịch mã Clojure của bạn và sẽ tạo ra các tệp .class. Sau đó, bạn có thể sử dụng javap
để xem mã byte.
Sử dụng compile
chức năng trong Clojure/lõi để biên dịch namespace của bạn:
biên dịch chức năng
Cách sử dụng: (biên dịch lib)
Biên dịch namespace được đặt tên bởi các lib biểu tượng thành một thiết lập của các tệp lớp. Nguồn cho thư viện lib phải nằm trong một thư mục tương đối phù hợp với classpath tương đối . Các tệp đầu ra sẽ đi vào thư mục được chỉ định bởi đường dẫn biên dịch và thư mục đó cũng phải nằm trong đường dẫn lớp.
Sau đó sử dụng javap
:
javap -l -c -s -private MyClass
Nguồn
2010-09-29 08:49:26
Xin lưu ý rằng việc tối ưu hóa bytecode có thể không thực sự tạo ra bất kỳ kết quả tích cực nào. Xem [cuộc phỏng vấn này] (http://java.sun.com/developer/technicalArticles/Interviews/goetz_qa.html#CodePerformsWell). Nó nói về cách viết Java, nhưng về cơ bản nó áp dụng cho tất cả các ngôn ngữ sản xuất bytecode. –