2011-01-11 39 views
10



Khi tôi chạy maven-cầu cảng-plugin, tôi chạy lệnh tiếp theo:Free size kích thước đống không tăng trong Maven

mvn -DMAVEN_OPTS="-Xmx1024m -Xms512m" -Djetty.port=8080 jetty:run 

nhưng khi tôi cố gắng đầu ra kích thước heap miễn phí với

Long heapFreeSize = Runtime.getRuntime().freeMemory(); 

Nó luôn có kết quả đầu ra khoảng 30000000.
Tôi cho rằng kích thước của nó tính bằng byte, khoảng 30 megabyte.
Tại sao bộ nhớ heap miễn phí không tăng?

+0

Có đưa ra một OutOfMemoryError? Bạn đã thử với -XX: MaxPermSize = 1024m? freeMemory() cho thấy không gian để phân bổ trong tương lai. Và đối tượng permament đi đến không gian Perm. U làm. – ssedano

+0

Nếu tôi thử -XX: MaxPermSize = 1024 không có gì thay đổi ... Tôi không thể kiểm tra nó ngay bây giờ trên OutOfMemoryError ... Bạn có nghĩa là không gian này (để phân bổ trong tương lai) sẽ tăng tùy thuộc vào nhu cầu của ứng dụng? – gennad

+0

maxMemory() hiển thị tổng dung lượng bộ nhớ. Dán maxMemoryoutput, vui lòng – ssedano

Trả lời

16

MAVEN_OPTS là một biến môi trường, được đọc bởi Maven và sử dụng như các đối số dòng lệnh cho forking quá trình java. Đối số dòng lệnh kiểm soát cách thực thi Java được bắt đầu, ví dụ: những thứ như cài đặt bộ nhớ.

-D được sử dụng để đặt thuộc tính hệ thống Java, đây là một điều hoàn toàn khác với đối số dòng lệnh. Các thuộc tính hệ thống Java có thể được đọc theo lập trình, ví dụ: bằng cách sử dụng System.getProperties().

Windows:

SET MAVEN_OPTS="-Xmx1024m -Xms512m" 
mvn -Djetty.port=8080 jetty:run 

Linux:

export MAVEN_OPTS="-Xmx1024m -Xms512m" 
mvn -Djetty.port=8080 jetty:run 
+0

Tôi đã phải đọc lại hai lần để '' làm cho nó '' có được nó, nhưng sau đó giải quyết tất cả các vấn đề của tôi :-) Cảm ơn. Lưu một số thời gian tôi đã có thể mất không quan trọng với các công cụ. –

2

Tôi nghĩ rằng -DMAVEN_OPTS = "- Xmx1024m -Xms512m" không đúng để chỉ định tham số bộ nhớ tại đây.

Đặt một biến env gọi MAVEN_OPTS với nội dung "-Xmx1024m -Xms512m"

+0

Ý của bạn là mvn jetty: run -Xmx1024m -Xms512m? Nó không chạy. mvn jetty: chạy -DXmx1024m -DXms512m chạy, nhưng bộ nhớ giống như với MAVEN_OPTS – gennad

+0

xin lỗi lỗi của tôi thew cách duy nhất tôi nghĩ rằng ist để thiết lập một biến env – lweller

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