platform-core - http://eclipse.org/eclipse/platform-core/updates
References :
http://www.jdg2e.com/ch32.performance/doc/index.html#refs
Google Book
http://www.eclipse.org/eclipse/platform-core/downloads/tools/readme.html
Sample settings of the Runtime Spy .options file
#### Monitoring settings
# monitor class loading
org.eclipse.osgi/monitor/classes=true
# monitor bundle activation
org.eclipse.osgi/monitor/activation=true
# monitor resource bundle (*.properties) loading
org.eclipse.osgi/monitor/resources=true
#### Trace settings
# trace class loading - snapshot the execution stack when a class is loaded
org.eclipse.osgi/trace/classLoading=true
# trace location - file in which execution traces are written
org.eclipse.osgi/trace/filename=runtime.traces
# trace filters - Java properties file defining which classes should
# be traced (if trace/classLoading is true)
etc........
4. Well even after enabling all types of monitoring, we still sometimes can not find out why certain apps leads to OutOfMemory Error !
Then the only way out is to generate the Heap Dumps and Thread Dumps.
We can add this vmarg in eclipse.ini -
-Xdump:java+heap+system:events=user,opts=CLASSIC+PHD so that whenever SendSignal
Otherwise we can start eclipse in command prompt as follows and then do Ctrl+break to signal the vm.
eclipse -vm
Another way to send stop signal to vm - cdb -p
5. Time to highlight the importance of designing API and SPI using eclipse codebase.
This is an invaluable source of knowledge about evolving Eclipse API and proper usage of annotations like
@noimplement, @noextend etc.
Its a classic : http://www.eclipse.org/eclipse/development/java-api-evolution.html
6. In order to enforce API Analysis we should refer to - http://www.eclipse-tips.com/tutorials/26-api-tooling-tutorial. After all Eclipse is meant for coding clean interfaces and abstract classes that communicates to users through simple annotations and robust patterns.
7. Its not a bad idea to enforce internationalization – using the setting - org.eclipse.jdt.core.compiler.problem.nonExternalizedStringLiteral=error in .settings file.
Fixing Int issues at the early stage prevents from wasting a good amount of time and introducing unsolicited bugs at the time of product delivery phase.
8. we should flag 'unused imports' as errors in preference to make it a daily habit getting rid of unnecessary evils.
9. Templating try / catch to actually catch and log an exception is a MUST ! Eclipse should fix this by default providing a exception.printStackTrace() statement. Empty catch blocks are silent killers that remain hidden inside deeply nested api !
10. The last but not the least FindBug should be part of development environment and be actively used.
Well ... a bonus tip for hackers :-) ... don't forget the decompiler plugin -http://java.decompiler.free.fr/jd-eclipse/update- using which you can even debug any class that essentially do not have source base shipped with its tool !
0 nhận xét: on "Eclipse Apps Performance Tips"
Post a Comment