How to fix GC overhead limit exceeded in Eclipse
– Ngồi rảnh không biết làm gì nên lôi cái eclipse mở cái ứng dụng Android SDK kết nối với Android device ra phá, nhưng cũng mất mấy ngày không build được cái SDK đơn giản, cứ báo cái lỗi GC overhead limit exceeded in Eclipse, cứ nghĩ là cái laptop cùi, không đủ bộ nhớ RAM cũng như CPU full usage.
– Nhưng trên thực tế lỗi này là do không gian bộ nhớ làm việc không đủ đáp ứng khi ứng dụng được build trên một project lớn và eclipse sẽ quang lỗi GC vượt quá giới hạn bộ nhớ. ( Eclipse will throw GC overhead limit exceeded error when it runs out of memory).
Lỗi xảy ra sẽ giống như thế này (The error would look something like this)
– Lang thang trên mạng cũng tìm ra cách giải quyết, và build thành công trên android device. Vấn đề đã được giải quyết. Để khắc phục vấn đề này cần phải cấp phát bộ nhớ nhiều hơn cho eclipse của bạn. Để làm điều này, bạn tìm đến đường dẫn chứa thư mục eclipse và mở file eclipse.ini nội dung file sẽ tương tự như sau :
-startup
plugins/org.eclipse.equinox.launcher_1.3.0.v20120522-1813.jar
–launcher.library
plugins/org.eclipse.equinox.launcher.win32.win32.x86_64_1.1.200.v20120913-144807
-product
org.eclipse.epp.package.mobile.product
–launcher.defaultAction
openFile
–launcher.XXMaxPermSize
256M
-showsplash
org.eclipse.platform
–launcher.XXMaxPermSize
256m
–launcher.defaultAction
openFile
-showsplash
org.eclipse.platform
–launcher.XXMaxPermSize
256m
–launcher.defaultAction
openFile
-showsplash
org.eclipse.platform
–launcher.XXMaxPermSize
256m
–launcher.defaultAction
openFile
-vmargs
-Dosgi.requiredJavaVersion=1.5
-Dhelp.lucene.tokenizer=standard
-Xms40m
-Xmx256m
– Để tăng bộ nhớ cho không gian làm việc của Eclipse, bạn chỉnh thông số cho 2 line cuối cùng như sau :
-Xms512m
-Xmx1024m
-Các tùy chọn này sẽ được chuyển đến Java khi khởi chạy Eclipse . Xms xác định bộ nhớ ban đầu và phân bổ vùng nhớ tối đa cho Java Virtual Machine (JVM).
– Bạn cũng có thể tăng giá trị cho MaxPermSize như sau : -XX:MaxPermSize=1024m
– MaxPermSize hoặc Permanent Generation được định nghĩa cấp phát bộ nhớ để luôn đảm bảo rằng tất cả các files luôn được biên dịch đầy đủ.
– Và cuối cùng các bạn khởi động lại eclipse để các thay đổi có hiệu lực.
Chúc các bạn thành công !
Related Posts
Cách cài đặt Apache, MySQL và PHP trong OS X Git – SVN