2010-07-30 21 views
30

Tôi đang xem các tùy chọn cấu hình JVM để chạy Alfresco, chủ yếu là tài liệu this trên Alfresco Wiki. Một trong các khuyến nghị là sử dụng các cờ JVM -Xcomp-Xbatch. Lý do chính đáng là:Điều chỉnh Java VM - Xbatch và -Xcomp

Nếu bạn muốn Hotspot biên dịch trước các lớp, bạn có thể thêm [-Xcomp và -Xbatch]. Tuy nhiên, điều này sẽ làm tăng đáng kể thời gian khởi động máy chủ, nhưng sẽ làm nổi bật các phụ thuộc bị thiếu có thể bị tấn công sau này.

Từ những gì tôi có read elsewhere về -Xcomp-Xbatch cờ, tôi tự hỏi liệu họ có thực sự cung cấp bất kỳ lợi ích.

  • -Xcomp được HotSpot biên dịch tất cả mã trước bằng tối ưu hóa tối đa, do đó mọi thông tin mà VM sẽ đạt được thông qua hoạt động chuẩn của hệ thống.
  • -Xbatch dừng biên dịch nền, có nghĩa là chuỗi khiến mã được biên dịch cho đến khi biên dịch hoàn tất. Tuy nhiên, sau khi biên dịch xong, chuỗi bị chặn trước đây sẽ không chạy mã được biên dịch, it will still run the interpreted code. Đây là một thay đổi trong Java 6 (Mustang) - trước Mustang, các luồng bị chặn để biên dịch bởi sự hiện diện của cờ -Xbatch được đảm bảo chạy trong mã được biên dịch ngay sau khi biên dịch được hoàn thành. Do đó, tôi đoán rằng đề xuất của cờ -Xbatch là một di tích chạy Alfresco trên các máy ảo cũ hơn.

Có ai có bất kỳ suy nghĩ nào không? Độ nghiêng của tôi là loại bỏ hai lá cờ này và dựa vào VM để có được những điều đúng đắn.

Tôi muốn thêm hai thứ, trước hết tôi chưa có quyền truy cập vào một bản Alfresco để kiểm tra điều này và thứ hai tôi không thực sự biết spec nào của máy đang lưu trữ Alfresco khác hơn nhìn vào các tùy chọn cấu hình khác, nó phải là một máy ảo 64 bit. Mặc dù vậy, tôi hy vọng cộng đồng sẽ có một số đầu vào hữu ích, có lẽ từ quan điểm điều chỉnh chung của HotSpot.

+0

Phần ví dụ trong thế giới thực trên trang Alfresco là tháng 8 năm 2009 và có vẻ như là JDK 1.6? – shinynewbike

+0

@ktaylorjohn Vâng, đó là chính xác, nhưng tôi chỉ tự hỏi liệu các cờ -Xbatch và -Xcomp có tạo ra sự khác biệt nào không. Alfresco có vẻ là dự án duy nhất đề cập đến những lá cờ bên ngoài các cõi thử nghiệm JVM và tương tự. – Rich

Trả lời

21

Nói chung, nó luôn luôn thích hợp hơn để cho trình biên dịch HotSpot tự điều chỉnh. Ngay cả khi sử dụng máy chủ VM (máy chủ) là mặc định cho 64 bit và một số 'máy chủ-lớp' máy.

-Xbatch được dự định chủ yếu để gỡ lỗi như mô tả trong Steve Goldman's blog bạn chỉ:

Vì vậy, các công tắc -Xbatch không phải là một công tắc đặc biệt hữu ích ngay cả trong những ngày trước mustang. Nó là phần nào hữu ích cho các nhà phát triển jvm vì nó có xu hướng làm cho một hoạt động dễ dự đoán hơn và có thể lặp lại được.

-Xoá loại bỏ khả năng thu thập thông tin để biên dịch hiệu quả. Từ một số điện thoại Alex Turner's post:

Người ta có thể nghĩ rằng -Xoá sẽ là ý tưởng hay từ quan điểm hiệu suất. Tuy nhiên, nó không phải là! Trình biên dịch JIT sử dụng 1000 lần lặp trước khi biên dịch để thu thập thông tin về cách thức phương pháp nên được biên dịch để đạt hiệu quả tối ưu. -Xcomp loại bỏ khả năng của nó để làm như vậy và do đó chúng tôi thực sự có thể thấy hiệu suất trượt.

Nếu không nhớ, tôi chưa bao giờ thấy sử dụng những lá cờ đó để phát hiện các phụ thuộc bị thiếu (and it may not work if some code is still interpreted) vì vậy IMHO, tôi sẽ loại bỏ cả hai.

+0

liên kết đã chết btw – Eugene

0

Alfresco là Quản lý nội dung doanh nghiệp. Tôi không chắc chắn các lá cờ ảnh hưởng như thế nào đến hiệu suất của nó. Sau đó, một ghi chú trong cùng một trang cho biết ..

- Tuy nhiên, điều này sẽ làm tăng đáng kể thời gian khởi động của máy chủ, nhưng sẽ làm nổi bật các phụ thuộc bị thiếu có thể bị tấn công sau này. ...

IMHO, Tác giả không thực sự có nghĩa là đạt được hiệu suất. Anh ta/cô ấy đã viết nó như là phương tiện để kiểm tra tất cả các phụ thuộc được đưa ra.

Các vấn đề liên quan