Làm thế nào để giảm mức sử dụng bộ nhớ của Eclipse?


81

Việc sử dụng bộ nhớ của Eclipse 3.4 đang diễn ra phổ biến đến mức nó đang trở thành một vấn đề.

Tôi đã tải một dự án BlackBerry đơn giản và dung lượng sử dụng tăng vọt lên gần 400 MB, đôi khi cao hơn. Có điều gì đó có thể được thực hiện để đưa nó xuống không?


7
Bây giờ nhìn lại câu hỏi này, tôi phải nói rằng tôi rất vui nếu tôi có thể giảm mức sử dụng bộ nhớ nhật thực của mình xuống còn 400MB. Hiện tại, tôi đang đấu tranh để hạ nó xuống 1GB (cộng thêm 300MB nữa nếu bạn bao gồm một bản sao của Tomcat để thực sự chạy các dự án của tôi ...).
Jules

5
Tôi viết nhận xét này từ tương lai (2018) và Eclipse đang sử dụng 10 GB cho dự án hiện tại của tôi.
Benjamin Barrois

Tôi vừa quay lại từ năm 2030 và Eclipse đang chiếm 5 terabyte trước khi tải một dự án.
AngryHacker

Câu trả lời:


84

Eclipse 3.4 có thể tiêu tốn nhiều bộ nhớ hơn so với các phiên bản trước, nhờ trình cắm kiểm tra chính tả .

Bạn có thể tắt trình cắm bằng cách đi tới Cửa sổ -> Tùy chọn -> Chung -> Trình chỉnh sửa -> Trình chỉnh sửa văn bản -> Chính tả và bỏ chọn tiêu đề hộp 'Bật kiểm tra chính tả'.

Tất nhiên, các mẹo được cung cấp để sử dụng kích thước đống lớn hơn và bộ thu gom rác tốt hơn cũng sẽ làm tốt cho bạn.


12
Không làm việc cho tôi. Vẫn ở mức 900-930MB. Tôi có nghĩa là wtf nó có thể được làm.
TheRealChx101

5
Câu trả lời chính xác. 1 trình cắm xuống, khoảng 50 trình cắm khác mà tôi chưa bao giờ nghe nói đến / chưa bao giờ sử dụng để đi. (Lưu ý cho bản thân, hãy bắt đầu sử dụng IntelliJ)
8bitjunkie

10
2016 và vẫn phải đối mặt với vấn đề này. Ý tôi là 1GB không gian Ram của tôi bị chiếm bởi nhật thực. Tắt plugin kiểm tra chính tả cũng không giúp được gì.
May mắn

12
2017 và Eclipse của tôi hiện đang sử dụng 1,7GB RAM mà hầu như không có plugin bổ sung. Phải có một dấu chấm hết cho sự điên rồ này.
Bão

17

Kiểm tra General -> Show heap statussẽ cho phép điều này

Thanh trạng thái heap của Eclipse

trong thanh dưới cùng. Bằng cách này, bạn có thể chạy bộ thu gom rác theo cách thủ công bất cứ khi nào bạn muốn bằng cách nhấp vào thùng rác. Nó không phải là một bản sửa lỗi, giống như một giải pháp thay thế, nhưng nó đã giúp giảm đáng kể mức sử dụng RAM / CPU của tôi.


2
Điều này giúp tôi xác định rằng 4GB RAM được phân bổ cho eclipse, thực tế không được sử dụng, mặc dù hệ điều hành cho thấy 4GB đang được sử dụng. Tôi đã giảm dung lượng RAM được phân bổ cho eclipse để giúp giải phóng RAM cho các ứng dụng khác.
Navigatron

1
Như Sping Tool Suit có nguồn gốc từ nhật thực Vì vậy, điều này cũng hoạt động với STS
Talib Hussain

9

Trong Eclipse, Luna 4.4.1 đã cố gắng cắt giảm mức sử dụng bộ nhớ của tôi trong Eclipse. Tôi quản lý để cạo từ 600mb xuống 300mb. Tôi đã làm như sau:

  • Đã tắt các plugin được kích hoạt khi khởi động mà tôi không sử dụng. Windows> Preferences> General> Startup and Shutdown

  • Các dự án đã đóng tôi không làm vào thời điểm đó.

Tìm thấy các gợi ý / mẹo ở đây: http://blog.elijaa.org/2010/09/20/tricks-to-speed-up-eclipse-php-helios-pdt-2-2/


8

Mặc dù bạn có thể có thể sửa đổi cấu hình, gỡ bỏ các plugin khác nhau, v.v., nhưng việc mua thêm bộ nhớ sẽ tiết kiệm chi phí hơn. Bạn hiện có bao nhiêu? Tôi sẽ coi một máy của nhà phát triển có bộ nhớ dưới 2GB là dưới thông số kỹ thuật và tôi nghi ngờ rằng nhiều người sẽ tăng gấp đôi số đó ...


3
Không thể đồng ý hơn. 1GB RAM chỉ từ $ 20-30. Bao nhiêu là thời gian của bạn có giá trị? Bắt một bộ sưu tập các plugin hoạt động trong Eclipse là công việc đủ khó mà không cần phải loay hoay với nó (được cho là) ​​một cách không cần thiết.
cletus 29/09/09

2
Tôi đạt tối đa 2GB (đó là một máy tính xách tay cũ). Vấn đề là khi trình mô phỏng BlackBerry được tải, Visual Studio (dịch vụ web) và Chrome (để tra cứu nội dung trên web), máy tính xách tay sẽ thu thập thông tin. Nhưng Eclipse cho đến nay là kẻ vi phạm lớn nhất. Nó không quá tệ với phiên bản 3.3 hoặc 3.2.
AngryHacker 29/09/09

2
Hoàn toàn không đồng ý. Máy của nhà phát triển phải có thông số kỹ thuật thấp hơn máy của người dùng cuối dự kiến ​​ít nhất 50% (CPU và RAM) vì lý do chính xác này.
finnw

4
@finnw: Điều gì khiến bạn nghĩ rằng khối lượng công việc của máy nhà phát triển giống như khối lượng công việc của máy người dùng? Nhiều ứng dụng không cần bất cứ thứ gì giống như tài nguyên như IDE. Bạn chắc chắn nên kiểm tra ứng dụng của mình trên một máy có thông số kỹ thuật thấp, nhưng điều đó không có nghĩa là phát triển nó trên một máy. Trên thực tế, bạn dường như đã giả sử một ứng dụng phía máy khách. Nếu tôi đang phát triển một ứng dụng web nhắm mục tiêu đến thiết bị di động, tôi có nên phát triển trên điện thoại di động không?
Jon Skeet

2
@Nate: Đó là câu hỏi trực tiếp, nhưng rất thường xuyên trên Stack Overflow, nó hữu ích hơn khi xem xét vấn đề hơn là câu hỏi . Nếu ai đó đang nối các giá trị trong SQL và quên một số dấu ngoặc kép, câu trả lời trực tiếp cho câu hỏi sẽ là thêm vào dấu ngoặc kép, nhưng giải pháp cho vấn đề là SQL được tham số hóa. Nếu OP lo ngại về 400MB, thì đối với tôi, có vẻ như việc thiếu bộ nhớ chung cho một máy của nhà phát triển là vấn đề lớn hơn.
Jon Skeet

7

Các phiên bản hiện đại của Eclipse cần khá nhiều RAM để thực hiện công việc của chúng. Nhưng vẫn nên chạy khá nhanh trên mọi máy hiện đại.

Giả sử bạn có đủ bộ nhớ vật lý (2GB cũng được trừ khi bạn có nhiều tiến trình khác đang chạy hoặc bạn đang sử dụng RAD), hãy xem bài viết này về cách sử dụng bộ nhớ của Eclipse để biết một số mẹo về cách điều chỉnh cài đặt. Hai thủ phạm phổ biến nhất là Xmx và / hoặc MaxPermSize được đặt quá thấp (Xmx mặc định là 256M và MaxPermSize mặc định là 64M).

Bạn sửa đổi các giá trị bằng cách chuyển các đối số dòng lệnh hoặc điều chỉnh eclipse.ini trong vị trí cài đặt Eclipse.

Bạn sẽ kết thúc với một cái gì đó như thế này:

...
-vmargs
-Xms128m
-Xmx1024m 
-XX:MaxPermSize=128m

1
MaxPermSize không còn ở đó
Ray Kim

6

Eclipse của tôi đang chiếm hơn 800MB thường trú và 2GB ảo (có lẽ một phần của nó đã bị hoán đổi). Java có thể là một con lợn, nó luôn mang lại cho Java báo chí xấu.

Tuy nhiên, có một thứ mà nhiều người chưa biết: công cụ thu gom rác gia tăng. -Xincgc Tác dụng phụ là nó thỉnh thoảng đưa bộ nhớ trở lại hệ thống. Theo mặc định, Java chỉ lấy và lấy, và khi nó không cần bộ nhớ nữa, nó sẽ giữ nó cho riêng mình. Incgc là một chiến lược khác mà nó trở nên hợp lý hơn khi cho rằng bộ nhớ có thể được trao lại cho hệ thống mà không gặp sự cố. Tuy nhiên, điều này có thể ảnh hưởng đến hiệu suất.

Có nhiều cài đặt thu gom rác. Bạn cũng có thể có nhiều luồng xử lý GC. GC song song thực hiện điều đó. Không chắc chắn nếu một tay bộ nhớ trở lại, đừng nghĩ như vậy.


Và làm thế nào để thay đổi tùy chọn bộ thu gom rác cho Eclipse?
Matthieu

3
Mọi thứ đã thay đổi. GC mặc định trong Java 8 bây giờ, là một bộ thu gom rác thế hệ cũng trao lại bộ nhớ cho hệ thống. Bạn không còn muốn thử với nó ...
Mike

1
Trong trường hợp của tôi, java 8 rất vui khi giữ được hơn 3GB khi mức sử dụng thực tế ít hơn 0,5GB, vì vậy rất tiếc là tôi cần phải giả với nó.
nsandersen

6

Xóa +UseG1GCtùy chọn khỏi eclipse.ini. Tôi đã đọc từ đây rằng Nó chỉ được sử dụng cho bộ nhớ heap 6GB araound.


3
Vâng, điều này đã làm việc cho tôi. Tôi đã thay thế -XX:+useG1GCbằng -XX:+UseSerialGCvà vấn đề bộ nhớ đã biến mất. Có vẻ như một lỗi trong G1GC.
Don Smith

1
Chuyển sang -XX:+UseSerialGCcắt ra> 300mb. thích
Aman

3

Nếu 400 Mb RAM là một vấn đề lớn đối với bạn, bạn có thể muốn thử một IDE khác. Eclipse lưu trữ rất nhiều thông tin trạng thái, một số hoặc hầu hết trong số đó bạn thực sự không cần. Đó là một sự lựa chọn thiết kế.

Ngay bây giờ, tôi có cùng một dự án đang mở trong cả Eclipse và QtCreator: sau khi xây dựng lại sạch sẽ, Eclipse sử dụng 156 Mb RAM, Qt Creator hài lòng với 66 Mb.


2

Bạn có thể thử phiên bản 64 bit của Eclipse với phiên bản 64 bit của JDK trên Windows 7. Cả hai đều gây ra một số vấn đề kỳ lạ với Framework bên thứ 3 mà tôi phải làm việc. JRockit 32-bit (hiện miễn phí) từ Oracle có vẻ nhanh hơn và bộ nhớ tốt hơn một chút. Đây là cài đặt Eclipse.ini của tôi:

Đây là nhà trọ nhật thực của tôi

-startup
plugins/org.eclipse.equinox.launcher_1.1.1.R36x_v20101122_1400.jar
--launcher.library
plugins/org.eclipse.equinox.launcher.win32.win32.x86_1.1.2.R36x_v20101222
-nosplash
org.eclipse.platform
--launcher.XXPermSize
512m
--launcher.XXMaxPermSize
512m
--launcher.defaultAction
openFile
-vm
C:/Program Files (x86)/Java/jrockit-jdk1.6.0_31-R28.2.3-4.1.0/jre/bin
-showsplash
org.eclipse.platform
--launcher.XXMaxPermSize
256m
--launcher.defaultAction
openFile
-vmargs
-Xquickstart
-XX:+AggressiveHeap
-XX:+AggressiveOpts
-XX:+UseParallelOldGC
-XX:ParallelGCThreads=2
-XX:ThreadPriorityPolicy=1
-Xverify:none
-Xms1100m
-Xmx1100m

Tôi đã chuyển sang JRockit JDK 32 bit có vẻ nhanh hơn một chút cho Eclipse. Tôi tắt và không cài đặt nhiều hơn mức tôi cần. Đối với từng loại phát triển ứng dụng riêng biệt (Android, J2EE, just Spring, ...), tôi có các cài đặt Eclipse khác nhau. Dung lượng ổ cứng rẻ. Sau đó, tôi có thể chỉ có các plugin tôi cần cho mỗi cái. Tôi sẽ không bao giờ muốn tất cả các công cụ Android tải nếu tôi không sử dụng chúng. STS cũng tốt cho những thứ mùa xuân và tôi có một cái chỉ dành cho công việc của OpenShift Cloud.


Tôi hơi bối rối, vì trước tiên bạn có --launcher.XXMaxPermSize 512m và sau đó --launcher.XXMaxPermSize 256m (và một vài dòng trùng lặp, tức là defaultAction, và sau đó nosplash cùng với showsplash). Nó có sử dụng cấu hình đầu tiên được tìm thấy không?
jambriz

nó không nên có cái thứ 2 trong đó. tôi đã kiểm tra lại và không có cái đó trong cái hiện tại của tôi. Ngoài ra nếu bạn đang sử dụng JDK 8 thông số khác nhau
Tim Spann

1

Hãy thử tắt các plugin nhật thực của bạn. Eclipse đã chiếm một nửa bộ nhớ của tôi khi tôi mở plugin saros.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.