

Eclipse was configured to run with the G1 GC algorithm, whereas IntelliJ was configured to run with the CMS GC algorithm. One of the primary reasons for GC pause time is because it is influenced by the garbage collection algorithm and settings. Eclipse GC throughput is better than IntelliJ’s throughput. In our study, Eclipse throughput is 99.924 percent, whereas IntelliJ’s through is 99.146 percent. GC Throughputīasically, GC throughput is the amount of time your application spends processing the customer’s transactions versus the amount of time your application spends in garbage collection. Even though IntelliJ’s object creation rate is higher, however, its average pause time is comparatively better than Eclipse because of better GC tuning is done in IntelliJ. Thus, in terms of GC Pause, IntelliJ is comparatively better. On the other hand, IntelliJ’s average GC pause time is only 8 ms and max GC pause time is 270 ms.

Eclipse’s average GC pause time is 33 ms and its max GC pause time is 340 ms. GC Pause Timeĭuring certain phases of the garbage collection, the entire application is paused. Since more objects were created, CPU consumption was also higher when using the IntelliJ IDE. For the entire run, Eclipse only created 15.19 GB, where IntelliJ created 430.2 GB of objects. Eclipse IDE was creating objects at the rate of 2.41 MB/sec, whereas IntelliJ was creating objects are the rate of 69.65 MB/sec (which is 29x more than Eclipse). We encourage you to take a look at the report:īelow are key observations from the GC analysis report:Īpparently, Eclipse created a very small number of objects when compared to IntelliJ. Below is a detailed analysis of the reports generated by the tool. Once our 1 hour and 45 minutes exercise was complete, we uploaded the garbage collection log file generated by both IDEs to the GCeasy tool. Thus, to make an apples-to-apples comparison, we bumped up IntelliJ’s initial heap size to 256mb and its max heap size to 1024mb. However, the Eclipse initial heap size was set to 256mb and the max heap size was set to 1024mb. Xloggc:D:\\my_workspace\\logs\\intellij-gc.logīy default, the IntelliJ initial heap size is kept at 128mb and the max heap size is set to 750mb. disabledSchemes=""Īt the bottom of this file, we added arguments to enable garbage collection logs of the IntelliJ IDE: -XX:+PrintGCDetails In the folder where IntelliJ is installed, you will notice the file. Xloggc:D:\\my_workspace\\logs\\eclipse-gc.log Plugins/.86_64_1.1.400.v20160914-0716Īt the bottom of this file, we added following arguments to enable garbage collection logs of the Eclipse IDE. Its contents look like the following: -startup In the folder where Eclipse is installed, there is an eclipse.ini file. Garbage collection logs can be enabled by passing the following JVM arguments: -XX:+PrintGCDetailsįor this exercise, we used the GCeasy tool to analyze garbage collection logs. Garbage collection activity can be studied by enabling the garbage collection logs and using the right tools to analyze them. Garbage collection activity will clearly show us the memory utilization pattern, object creation rate, object reclamation rate, garbage collection pause time, and other memory-related details. One of the best ways to study the memory behavior of an application is to analyze garbage collection activity. We conducted the exact same exercise in both Eclipse and IntelliJ IDE. It took us 1 hour and 45 minutes to complete these tests. We were writing source code, compiling it, and running unit tests to validate the behavior. In this project, we created a JSP page, Manager class, and a DAO class, which will write and read records from MySQL database. Thus, we ended up creating a simple Java project. To conduct this study, we wanted to activate various features of the IDE.

To conduct this study, we used Eclipse Java EE Oxygen Release Milestone 2(4.7.0 M2) and IntelliJ IDEA 2018.2.4 (Ultimate Edition). We thought it would be a fun exercise to study which IDE utilizes memory most efficiently.

There are a lot of passionate discussions taking place on social media and forums to declare the winner of this race. Eclipse and IntelliJ are the two competing IDEs in the industry.
