Sau khi đọc đã hỏi câu hỏi về chủ đề và rất nhiều googling Tôi vẫn không thể có một cái nhìn rõ ràng về -Xms tùy chọnthông số đống JVM
Câu hỏi của tôi là: sự khác biệt giữa java -Xms=512m -Xmx=512m
và java -Xms=64m -Xmx=512m
là những gì ?
Để bây giờ tôi có câu trả lời sau đây:
Sự khác biệt duy nhất là trong số các bộ sưu tập rác sẽ được chạy trong thời gian chạy ứng dụng của tôi và số lượng phân bổ bộ nhớ. Tôi có đúng không?
Dưới đây là lý do của tôi cho câu trả lời này:
Đặt tùy chọn này -Xms
để 512m
không dẫn đến ứng dụng của tôi sử dụng thực sự 512M
bộ nhớ vật lý sau khi khởi động. Tôi đoán điều này liên quan đến việc quản lý bộ nhớ ảo hệ điều hành hiện đại và phân bổ các trang lười biếng. (Tôi nhận thấy rằng việc thiết -Xms
để 512M
hoặc 64M
không thay đổi ở tất cả các bộ nhớ được sử dụng ban đầu báo cáo bằng cách đầu trên Linux hoặc bởi công việc quản lý trên cửa sổ)
Ai đó có thể giúp tôi hiểu tác động của Xms
này tùy chọn hoặc chỉ cho tôi các liên kết sẽ giúp tôi hiểu nó?
Cảm ơn trước
Manu
Tôi nghĩ cú pháp thực là -Xms64m và không phải -Xms = 64m. Nếu tôi nhầm, hãy quay lại! – Burkhard
Đến đây khi nghiên cứu một số điểm tốt hơn của cấu hình jvm. Câu trả lời được chấp nhận ở đây rất khác với sự hiểu biết của tôi về những giá trị này. Có, hầu hết các hệ điều hành sẽ chỉ làm cho các trang vật lý có sẵn khi một lỗi trang nhỏ bị vấp khi ứng dụng cố gắng truy cập vào bộ nhớ nó có malloc'ed - nhưng Xms chỉ định số lượng ban đầu của bộ nhớ malloced bởi jvm - mà đặt một ràng buộc trên trên số trang có thể được gán * mà không * ứng dụng malloc'ing nhiều bộ nhớ hơn - và trong trường hợp của Java, nó chỉ có nhiều bộ nhớ hơn (lên đến Xmx) nếu không đủ bộ nhớ có sẵn bằng gc – symcbean
@symcbean Tôi đang bối rối . Có vẻ như sự hiểu biết của bạn không thực sự khác với những gì có trong câu trả lời. Bạn chỉ sử dụng các từ khác nhau, nhưng đang mô tả hành vi giống hệt nhau. – Turismo