Technology Blogs by Members
Explore a vibrant mix of technical expertise, industry insights, and tech buzz in member blogs covering SAP products, technology, and events. Get in the mix!
cancel
Showing results for 
Search instead for 
Did you mean: 
Former Member

The Problem

Many an Agentry developer has lamented that the Agentry Editor can sometimes take a long time to respond, especially when it is in the middle of doing a compare or loading a new project. This article will try to offer suggestions that may help alleviate the problem. Since every user’s environment is different, not all the suggestions will be useful or practical for every user. The suggestions here have only been tested on Windows XP, Vista and 7 machines.


The Premise

The Agentry editor runs as a plugin inside the eclipse editor. As such it inherits the parent eclipse’s environment and its problems. Thus many of the suggestions mentioned here are directly manipulating the eclipse editors settings and environment.


The Suggestions

1 – Disable the anti-virus real-time scanning for the eclipse workspace folder that you are using.

This is especially effective on Agentry Editor 5.x and during compares. Most corporate environments will not let you disable the full antivirus but may let you disable real-time scanning for a specific folder (ask your friendly local IT staff for help if necessary).

2 – Disable content indexing for the eclipse workspace folder that you are using.

Windows by default indexes everything in your home folder, and it's normally just a waste for your workspace unless you are planning on doing text searches. To do this Right click the workspace folder in explorer ,Properties->Advanced.

3 – Update to the latest JDK.

It is 1.7 at the time of writing, which does not prevent you to compile in your Eclipse project with any other JDK you want: 1.4.2, 1.5, 1.6 older. Please note that the editor will also work with Java 1.6 with no problems.

4 – Use the java server vm.

This causes the application to use a bit more memory and start a bit slower but provides improved performance after that. Edit your eclipse.ini (in your eclipse folder) and add the line “-server” under the line vmargs. Alternatively you can also add a direct reference to the server vm by modifying/adding a line this this “-vm c:\java\jdk1.6.0_10\jre\bin\server\jvm.dll”. You can also make the server vm the default vm for all your java apps by adding the jvm.dll path to the beginning of the environment path.

5 – Add a direct reference to the server vm dll.

By modifying/adding a line this this “-vm c:\java\jdk1.6.0_10\jre\bin\server\jvm.dll”. This can cause the application to start up quicker.

6 – Increase the maximum java heap memory.

This can help in those times that you are working on a large project or doing full compares. Edit your eclipse.ini and modify the value –Xmx. For example you can set it to –Xmx512m, which would mean that the maximum memory allowed for use is 512 MB. You can track your heap memory usage by turning on menu Window->Preferences->General->Show Heap Status. This should allow you to optimize you memory settings.

7 – Increase the minimum java heap memory.

Edit your eclipse.ini and modify the value –Xms. For example you can set it to –Xms64m, which would mean that the maximum memory allowed for use is 64 MB. This basically causes a block pre-allocation of the memory you need for the application on startup so eclipse doesn’t have to ask for it later. You should set this to slightly below the average heap memory usage (tracked using the setting above).

8 – Disable unused eclipse capabilities.

Additional performance boosts may be gained by disabling various features of eclipse. Like disabling unused capabilities on startup (Windows -> Preferences -> General -> Startup and Shutdown). Disabling validators (Windows -> Preferences -> Validation and uncheck any validators you don't want or need). Disabling spell check Windows-->Preference-->General-->Editors-->Text Editors-->Spelling

9 – Add jvm optimization arguments to the vmargs.

The following are jvm arguments that you can put into eclipse.ini after the –vmargs like. If you experience any instability you might want to try adding one at a time.

-XX:+UseCompressedOops        Enables the use of compressed pointers (object references represented as 32 bit offsets instead of 64-bit pointers) for optimized 64-bit performance with Java heap sizes less than 32gb

-XX:+AlwaysPreTouch   Pre-touch the Java heap during JVM initialization. Every page of the heap is thus demand-zeroed during initialization rather than incrementally during application execution

-XX:+UseCompressedStrings      Use a byte[] for Strings which can be represented as pure ASCII.

-XX:+UseStringCache

-XX:+UseFastAccessorMethods

-XX:+OptimizeStringConcat         Optimize String concatenation operations where possible.

Example eclipse.ini

Always make a backup of your original eclipse.ini so that you can revert back to it if the new changes don’t work out.

Default (yours may be different)

-startup

plugins/org.eclipse.equinox.launcher_1.2.0.v20110502.jar

--launcher.library

plugins/org.eclipse.equinox.launcher.win32.win32.x86_64_1.1.100.v20110502

-product

  • org.eclipse.epp.package.java.product

--launcher.defaultAction

openFile

--launcher.XXMaxPermSize

256M

-showsplash

  • org.eclipse.platform

--launcher.XXMaxPermSize

256m

--launcher.defaultAction

openFile

-vmargs

-Dosgi.requiredJavaVersion=1.5

-Xms40m

-Xmx384m

Updated (yours may be different depending on your original)

-vm C:\Program Files\Java\jdk6\jre\bin\server\jvm.dll

-startup

plugins/org.eclipse.equinox.launcher_1.2.0.v20110502.jar

--launcher.library

plugins/org.eclipse.equinox.launcher.win32.win32.x86_64_1.1.100.v20110502

-product

  • org.eclipse.epp.package.java.product

--launcher.defaultAction

openFile

--launcher.XXMaxPermSize

256M

  • org.eclipse.platform

--launcher.XXMaxPermSize

256m

--launcher.defaultAction

openFile

-vmargs

-Dosgi.requiredJavaVersion=1.6

-server

-Xms80m

-Xmx512m

-XX:+AlwaysPreTouch

-XX:+UseCompressedStrings

-XX:+UseStringCache

-XX:+UseFastAccessorMethods

-XX:+OptimizeStringConcat

This is neither an authoritative nor a comprehensive list of options available and we welcome any comment on how you fared and any ideas that we may have missed.

Labels in this area