2012-11-07 19 views
6

Nhật thực của tôi hiển thị lỗi bộ nhớ heap đầy đủ, nó sẽ tự động khởi động lại. Xin đề nghị một cách để làm sạch bộ nhớ Heap của nhật thực. Tôi đang sử dụng chàm nhật thựccách xóa bộ nhớ heap của eclipse

Tôi đã làm sạch dự án nhưng nó không giúp

+0

Mb viết lại nhật thực? :) –

+1

Bạn đã tăng heapsize có sẵn cho nhật thực? Xem http://wiki.eclipse.org/FAQ_How_do_I_increase_the_heap_size_available_to_Eclipse%3F – halex

Trả lời

8

Kiểm tra Preferences > General > Show heap status. Sau đó nhấp vào biểu tượng thùng rác ở phần dưới cùng của GUI.

14

Trong vòng Eclipse.ini, bạn có thể định cấu hình cài đặt heap.

Điều này blog ném nhiều ánh sáng hơn trên đó.

Qua UI bạn có thể thử ở sau cách:

  • Enable Show heap status dưới Window -> Preferences -> General. (tắt theo mặc định).
  • Chỉ cần chọn hộp này để hiển thị chỉ báo kích thước heap ở góc dưới bên phải. Chỉ báo này hiển thị kích thước heap JVM tối đa và số lượng của nó đang được sử dụng.
  • Một tính năng hữu ích khác của chỉ báo này là khả năng thu gom rác.
0

Bạn cần đặt các đối số xmsxmx trong các đối số vm của lớp học của mình. sử dụng Run ->Run Configurations ->Arguments tab

nếu ứng dụng của bạn là lớn và rất nhiều đối tượng được tạo ra, bạn có thể thay đổi kích thước của không gian đống bằng cách sử dụng tùy chọn JVM -Xms-Xmx. Xms biểu thị kích thước bắt đầu của Heap trong khi -Xmx biểu thị kích thước tối đa của Heap trong Java.

2

Tôi giả định rằng vấn đề thực sự của bạn là bản thân Eclipse đang hết bộ nhớ. Nếu đây là trường hợp, sau đó "thanh toán bù trừ" heap sẽ không thực sự giúp đỡ.

Có một vài phương pháp có thể giúp giải quyết vấn đề:

  • Bạn có thể giảm sử dụng bộ nhớ của Eclipse bởi các dự án đóng cửa, loại bỏ các plugin không cần thiết và như vậy. Tuy nhiên, điều này có xu hướng làm giảm tính hữu ích của Eclipse.

  • Bạn có thể thay đổi cài đặt JVM -Xmx và -Xms trong tệp "eclipse.ini" để cung cấp cho Eclipse một lượng lớn hơn. Nhưng điều này chỉ hoạt động nếu bạn có đủ RAM và bạn ở lại theo giới hạn không gian địa chỉ được áp đặt bởi hệ điều hành của bạn và phần cứng .

  • Nếu cả hai cách trên không khắc phục được sự cố, bạn cần một máy có nhiều bộ nhớ hơn.

1 - Một hệ điều hành 32 bit và phần cứng sẽ hạn chế bạn xung quanh 2Gb không gian đống có thể sử dụng ... mặc dù giới hạn thay đổi một chút tùy thuộc vào nhiều yếu tố. Đó là tất cả để làm với cách mà hệ điều hành quản lý các quy trình không gian địa chỉ ảo. Nhưng bạn cần phải phát triển một hệ thống khá lớn trong Eclipse vì đây là một mối quan tâm thực sự.


Lưu ý rằng "Hiển thị trạng thái heap" và nhấp vào biểu tượng thùng rác sẽ không giải quyết được sự cố. JVM chạy Eclipse sẽ luôn thực hiện một bộ sưu tập rác đầy đủ trước khi nó thoát ra với một số OutOfMemoryError. (Chức năng này không hoàn toàn vô ích. Việc buộc một bộ sưu tập rác có thể làm cho Eclipse phản hồi nhanh hơn một chút ... sau khi GC đã hoàn thành.)

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