Tôi có một ứng dụng máy tính để bàn java để tìm kiếm các tập tin và nó thường đạt giới hạn heap mặc định khá sớm. Tôi sẽ không có quyền truy cập vào tất cả các hệ thống nó sẽ được cài đặt vì vậy tôi muốn tăng kích thước heap JVM trong chính ứng dụng đó. Ai có thể giúp tôi làm thế nào tôi có thể làm điều đó theo chương trình trong ứng dụng của tôiLàm thế nào để tăng kích thước heap java theo lập trình
Trả lời
Xem bài đăng này về tăng kích thước java heap:
increase the java heap size permanently?
Có lẽ bạn cũng có thể tiêu diệt một số phần của mã của bạn để giảm thiểu sử dụng bộ nhớ.
Trân trọng
Không có API chuẩn nào để làm như vậy.
Tôi khuyên bạn nên sử dụng Java Web Start để gọi ứng dụng của bạn (có thể được sử dụng cho các ứng dụng cục bộ trong Sun Java 6 mới nhất) vì nó cho phép bạn chỉ định các giá trị cho điều này.
Sau đó, bạn có thể có ba hoặc bốn liên kết trỏ đến chính xác cùng một tệp nhưng với kích thước heap "Nhỏ", "Trung bình", "Lớn", "Gigantic".
Hãy xem một cái gì đó như launch4j và xem xét việc triển khai các tệp thi hành mà bạn có thể kiểm soát giới hạn khi ai đó bắt đầu chạy ứng dụng của bạn.
Bạn sẽ không thể thực hiện việc này theo lập trình.
Đối với các ứng dụng dành cho máy tính để bàn, tôi khuyên bạn nên cung cấp trình chạy có thể chỉ định kích thước bộ nhớ bạn muốn. Ngoài cấu hình của JVM, bạn cũng có thể cung cấp biểu tượng, liên kết tệp, v.v.
Xem chi tiết này SO question để chọn phương án triển khai.
Đặt -Xmx thành một biểu diễn không có nghĩa là JVM sẽ phân bổ nhiều bộ nhớ đó khi khởi động. JVM sẽ chỉ phân bổ -Xms (cộng thêm chi phí) cho đến khi cần thêm khoảng trống. Bạn có cần phải bảo vệ người dùng của bạn khỏi bị gián đoạn bộ nhớ ảo hoặc phân bổ bộ nhớ không thành công từ hệ điều hành? Nếu không, chỉ cần đặt Xmx thành một giá trị lớn. Lưu ý rằng các JVM Windows 32bit thường sẽ bỏ qua các thiết lập Xmx lớn hơn 1.2Gig, vì vậy tốt nhất là không yêu cầu nhiều hơn một biểu diễn hoặc để an toàn.
Các JVM 32 bit sẽ không bỏ qua các kích thước heap tối đa lớn, thay vào đó chúng sẽ không bắt đầu. Chỉ cần đặt -mx1200m hoặc tương tự. (-mx hoạt động tốt như -Xmx) –
- 1. Làm thế nào để tăng kích thước Heap của JVM
- 2. lập trình thiết lập kích thước heap java tối đa
- 3. tăng kích thước heap java vĩnh viễn?
- 4. JAVA_OPTS để tăng kích thước heap
- 5. Làm cách nào để tăng kích thước heap .NET?
- 6. Tăng kích thước heap trong java cho weka
- 7. Kích thước Heap JavaScript và Chrome Tăng
- 8. Không gian heap Java trong netbeans .. nhưng tôi đã tăng kích thước heap rồi!
- 9. Làm thế nào để tăng kích thước heap của một ứng dụng Android?
- 10. Tăng kích thước heap trong m2e Plugin Eclipse
- 11. Thế hệ .NET 0 kích thước heap
- 12. Android Hiểu kích thước Heap
- 13. Cách thiết lập kích thước heap JVM thực sự lớn?
- 14. Tại sao bạn cần xác định kích thước heap Java?
- 15. Làm thế nào tôi có thể tăng kích thước heap toàn cầu cho java trên Mac OSX
- 16. Làm thế nào để có được kích thước tối đa của heap và permgen từ JVM?
- 17. Làm thế nào để kích hoạt jquery Resizable thay đổi kích thước lập trình?
- 18. Đặt Kích thước Heap Java dưới Apache Karaf
- 19. IntelliJ Idea đưa ra java.lang.OutOfMemoryError: lỗi vùng heap Java ngay cả sau khi tăng kích thước heap
- 20. Cách đặt kích thước khung UIScrollView theo lập trình?
- 21. cách lấy kích thước Heap của một chương trình
- 22. cách thay đổi kích thước một ImageView theo Lập trình
- 23. Tổng bộ nhớ được sử dụng bởi quy trình Java và kích thước heap
- 24. Không thể khởi động Glassfish sau khi tăng kích thước heap
- 25. Làm cách nào để phát hiện việc sử dụng kích thước heap của ứng dụng android
- 26. Đặt NSWindow Kích thước lập trình
- 27. -Xms: Kích thước heap ban đầu hoặc kích thước heap tối thiểu?
- 28. Tăng kích thước heap tối đa JVM cho các ứng dụng chuyên sâu bộ nhớ
- 29. Làm thế nào để tăng không gian heap Java cho một ứng dụng tomcat
- 30. Làm cách nào để tăng kích thước cửa sổ DOXBox?
Tại sao bạn không chọn thêm một số tập lệnh bắt đầu (dơi hoặc sh) với các tham số bắt đầu được xác định cho jvm (như Xmx) và triển khai nó cùng với chính ứng dụng. –
Điều gì sẽ là điểm thiết lập giới hạn nếu bất kỳ ứng dụng nào chỉ có thể tăng nó theo ý muốn? –
bạn không thể lập trình thay đổi các ràng buộc bộ nhớ trong một ứng dụng đang chạy –