Sciology = Science + Technology

Commonsense in Technology

Archive for the ‘Eclipse Performance’ Category

Plugin dependency visualization plugin

Posted by sureshkrishna on October 16, 2007

Thanks to Bull for contributing this great plugin. He has created and hosted the plugin dependency visualization plugin on eclipse. The dependency visualization aims to provide a set of views to assist with plug-in dependency analysis tasks. In particular, the views will provide cognitive support to people as they attempt to understand the dependencies between their plug-ins.

It supports set of views with analytics and cognitive tools. This plugin gives a cool visualization of the dependencies between various developers plugins.

Earlier the only way to understand the dependencies is to keep different plugins on the whiteboard and run the plugin dependency tool in the pde. But with this plugin, it becomes much easier for the project leads and team members to manage the plugins.

Posted in Eclipse, Eclipse Performance, GEF, Plug-ins, Plugin, Uncategorized | Tagged: , , , | 2 Comments »

Top 10 reasons to use eclipse…

Posted by sureshkrishna on October 13, 2007

  1. Eclipse is Free: I have seen very few organizations that would support you with expensive IDEs. As a developer if i need to play with, i dont have too many choices. Eclipse is free. I can download without too many hassles. Of course there are some other (i dont want to mention the names) IDEs for free too. But they don’t score in some other aspects. I get so many features for free.
  2. Eclipse Community & Industry Support: When i want to explain my boss and customers about eclipse, it important to know who is behind this project. Till now i had very few arguments about the credibility of the project and the people behind it. Especially the way it got spread through out the developer community from USA, Europe, and Asia is great. Developers celebrated eclipse’s birthday in Hyderabad, India in a huge way (doesn’t it say …).
  3. API Documentation: As a developer and technical lead, every one is interested to have a good API documentation so that the learning cycle is less. You don’t spend too much time in digging into unclear documentation. However good is the software, i want to have a good API documentation and eclipse has it.
  4. Free plugins: Once i have the base platform, i would want to use supporting and new features. And yes, many of VERY useful features are free. I have used so many plugins like findbugs, checkstyle, subclipse, etc… but in the end for IT departments its so nice to have something free and USEFUL.
  5. Code Samples: Sometimes i better understand with the help of code rather than reading some documentation. Eclipse has great code samples for all top level projects. Whoever starts SWT, JFace would definitely get lots of samples form snippets and also from the articles. Thanks to the guys who have supported all these.
  6. Design Philosophy: Many colleagues and subordinates have learned good design practices and programming patterns from eclipse code. Thanks to the book written by Gamma and Beck. Clean plugin architecture and clean interfaces.
  7. Customization : With the base platform around, you can do whatever you want to do. Users have the every possibility to customize their plugins that way they want.
  8. Extensibility : How else would we have seen the Java IDE, C++ IDE, Cobol IDE, PHP IDE, RCP Applications, etc…
  9. Productization: Its so easy to do productization. Changing the icons, splash screens, custom messages etc… Seeing some applications, you would not even recognize that they are built out of eclipse.
  10. Cross-Platform: A recent plugin i developed for a RIA/Web2.0 client, works on Windows, Linux and MacOSX; with the same code base and a single build. This is so much of a relief for many of the organizations who wants to develop the applications for multiple platforms.

Posted in Eclipse, Eclipse Performance, News, Plug-ins, Plugin, RCP | Tagged: , , , | Leave a Comment »

Eclipse 3.3 and NetBeans 6.0 compared !

Posted by sureshkrishna on October 5, 2007

I am so happy to be working on Eclipse platform from past 5 years. I have been playing with eclipse 3.3 from past few weeks. With too many ads on java sites about the NetBeans 6.0 Beta release, i was intrigued to have a look into it. NetBeans does come in a variety of flavours and selectable modules. I found very similar categories that i see in Eclipse, i really liked the matrix of different downloads it has.
Following are some of the modules from NetBeans and i tried to give equivalent in Eclipse.

Java SE= Base IDE + Java SE [equivalent to JDT ]
C/C++= Base IDE + C/C++ [equivalent to CDT]
Ruby= Base IDE + Ruby [ Dynamic Language Tool Kit]
Mobility= Base IDE + Java SE + Mobility Pack [Embedded and Device Development ]
Web & J2EE= Base IDE + Java SE + Web & J2EE + GlassFish v2 + Tomcat [equivalent to WTP without GlassFish and Tomcat]
All= Web & J2EE + SOA + UML + Ruby + C/C++ [I dont know what to say…]

I anyway installed the “All NetBeans Pack” and some i could go through it with few humps. Any way finally it takes 500 mb of disk space. In the end i worked few hours on Net Beans to find out quick feature set and good things about the modern IDEs. I am definitely looking for features which are coming as best of both the worlds. I did see many applications built on the NetBeans platform too and these products were great. I saw many of the graphical editors on NetBeans.

Anyway following is the criteria where i was looking into both the IDEs…

Installation: Eclipse comes as a simple zip file which need to be unzipped. That’s it you are ready to use the IDE. NetBeans comes as an exe and during the installation time it asks for the JDK location. Some how i did not like this as it could have automatically taken from system settings as eclipse does.

Startup Times: I have tested both on a laptop with Intel Pentium Dual Core 1.6GHz and 1GB Ram. I have only an IE and Windows explorer programs opened. Eclipse WTP All in One SDK 2.0 could start in 20 seconds once i chose the workspace. NetBeans 6. Beta takes around 80-85 seconds to start up once the splash screen comes.

Source Code Editing: This is quite interesting time for me in both the editors. Both has Code Folding, Code Completion, Code Formatting, Instant Syntax Checks, Code Coloring, Syntax Highlighting, etc. In my view both IDEs have great tools for editing. I am writing these experiences from my Java Editor experience.

Even though i felt some of the functions like in NetBeans are little slow. Some times thay take long time before the code suggestions comes as a list. I am not sure if this is because this is a beta version.

Compile and Build : Both have good support for Compile, Build, Clean functions. Both have Save participants and of course who would not like this.

Debugging Support : Both do have the debugging support. But i am not sure how good is the NetBeans Debugging support, if some one wants to write a new debugger with the help of Net Beans.

Some how the debugging is not intuitive in NetBeans, i closed few example project that’s came along and had only my example project (by name com.simple.solutions.testnetbeans). When i invoke the debug action on NetBeans, it does take some time before some thing happens. I am also worried that each time i launch the degug, the Feed Runner application comes up. And i am perplexed in the same way as you are right now. In the end i do not have a good experience on Netbeans in debugging a simple HelloWorld program.

Refactoring: Basic refactoring techniques are present in both the IDEs. But Eclipse does have advanced refactoring functions. e.g. when extracting a method, eclipse does show how the method looks like. Some time it also suggests the input parameters for a method.

Version Control: Eclipse and NetBeans comes with a good Team support. Eclipse comes with CVS by default. Subversion plugin can be additionally installed. What i really liked about the NetBeans is that it has both CVS and SubVersion support by default.

Help System: Eclipse and NetBeans does have help system. I am slightly disappointed by the performance of the NetBeans. I have no clue what happens when i click on the “Help Contents” menu item. I dont see the mouse icon and there is a huge hard disk activity. I did feel that transition between the pages also takes some time.

Search System: For sure Eclipse does have a advanced search system. NetBeans have a file level an project level search and replace system. But Eclipse definitely have more than that. Eclipse has File Search, Java Search and Plugin Search. And i personally use these a lot and definately miss them in Net beans.

UI Response: What ever may be the reason, Eclipse is definitely faster and it has better response times than NetBeans. Of course its the matter of how i percieve when i do a particular action in the IDE.

Profiling: Awesome in NetBeans. I like this feature which is a part of NetBeans by default. Eclipse does have some profiling tools, but they need to be downloaded additionally.

Perspective: Last but not the least, this is some thing that i definitely miss in the NetBeans. Perspecives is a great concept interms of developement and also as when an application is developed. We often develop applciations for different users and in my experience, perspectives in eclipse does a lot more than pne can imagine.

In the end in terms of features both have good feature and qualifications as IDEs to improve developers productivity. For some of the obvious reasons, i feel that NetBeans need to catch up with performance and UI feel. NetBeans does not even show a wait state icon when some long running activity is happening. The Feed Burner example takes too much of time to start up and  some how my experience is rugged. 

Kudos to eclipse, for its wonderful nimbleness and flawless releases. There are some other categories that i did not consider as i am not sure if i can really compare this in NetBeans. Like the EMF, GEF, GMF, DTP, ATF, RAP, etc… Last but not the least, Workspace concept is some thing that i really like in eclipse. Not sure if there is an equivalent stuff in Net Beans.

Posted in CVS, Eclipse, Eclipse Performance, Net Beans 6.0, Plug-ins, Plugin | Tagged: , | 19 Comments »

Help me with PermGen:OutOfMemoryException

Posted by sureshkrishna on September 28, 2007

I have a plugin developed for and AJAX based application with the help of Platform + EMF + WTP combination.
Many of the clients who report this out of memory have following conditions…
# Eclipse or Windows OS is not shut down for a long time; nearly for days.
# After a long time of inactivity on eclipse, Whenever a client clicks on any of the action or an editor, application just hangs.
# When a client is working on this application for a long time CPU goes 100% and except killing the eclipse application there is not other way.
Of course at this point of time i have no idea, what makes application crash with PermGen Error. There could be some thing wrong with the plugins that we made, but at the same time i dont get any error log for this PermGen:OutOfMemoryException.

I would appreciate if anyone can let me know about some of the utilities that i can use to find out the root cause.

Anykind of suggestions and solutions will be appreciated.

Posted in Eclipse, Eclipse Performance, Java, OutOfMemoryError, Plug-ins, Plugin | 13 Comments »

Dont blame Eclipse if you cant train your users !!!

Posted by sureshkrishna on August 29, 2007

This article is some thing that i want to write for a long time and i am writing it now :).  For reasons that we all know, many organizations have adopted Eclipse either as IDE for product development, ot IT customizes and offers it to the developers/users. Thats nice to hear….and i also see so mnay support calls and tickets to the IT and Sales guys, its very frustrating to educate some one over the phone or by mail.

Some of the Frequently Asked Questions :

  • Business Users  (still users ….)
    • Why should i use the workspace ?
    • Where are the projects created ?
    • Eclipse is hogging my CPU and Memory consumption
    • I found a useful plugin. How can i update a plugin ?
    • Where should i enter the license for this plugin ?
    • If an error occurs in eclipse, where should i look ?
    • Whats an error log ?
    • Whats a View and Perspective ? Where should i look for them …
    • When i am editing a file, why does it say that a file is changed on file system….
    • Where are preferences and properties ? Are they specific to a project ?
    • I want to open an existing project, i dont see that option (refering to Project Import)
    • Why cant i add/modify anything in the “Outline View” 🙂
    • Documentation and Help does not come with the installation
    • I want to develop c code, edit xmls etc…. can i do that in Eclipse
    • How do i know the version numbers of the plugins that i use ?
    • Should i set any environment variables….
  • Product Managers / Executives
    • Does eclipse work on Linux and Mac ?
    • I want to have a similar interface as Web 2.0 (all nice and cool effects…)
    • Should we train all our users on Java ?
    • Eclipse …. Its open source right…. is it reliable ?
    • If some thing goes wrong, whom should i blame 🙂

 And by now you know what i am talking about. I have had several problems in dealing with these kind of questions. You are quite lucky if all of your users, execs, etc…are in one single geo location and in one single office. But i am quite sure that many of the projects are not like this. We have development, sales, marketing and R&D divisions spread out and some times probably even different languages too :).

In many of the cases that i have seen, users are FORCED to use the tools and IDEs right from the day one. Now users try to get the every possible reason NOT to use it. I dont blame them, some times its frustrating to attend some of the support calls and trying to explain what a view and perspective is over the phone, but… You got to do what you got to do.

After all these years i see that there are definately obvious reason why you get these kind of questions.

Some of my recommendations for all those who want to roll out a Eclipse Application / RCP tools.

  • Executives / Product Managers
    • Any organization spends huge bucks on their tools and IDEs. This is a fact. You dont have the luxury of changing the tools every now-and-then. You got to choose some thing and thats gonna stay for a long time. So, please DO spend some time in getting to know eclipse on the ground level.
    • Eclipse + Open Source does not mean that there is no quality in software / its just for academics / just a Java IDE.
    • Dont ever think even with a commercial tool / IDE, you can get the things rectified in a super light years fast :).  I am sure that in reality that never happens, we raise the tickets, attach the logs, explalin the problem to the support, do some iterations and the finally…. you get some good or bad news. Does it ring bells…..
    • Before you take any decision on the Product Architecture and Product Suite, please DO consult some experts in eclipse to know what you are doing makes sense or not. The companies that i saw use Eclipse as one of the puzzle peices in the product suite.
    • You have to know what is possible and what is NOT possible. As an example… WEB 2.0 and Ajax kind of special and cool effects are nice, but please dont try to bring them into the Eclipse IDE/Applicaiton/Product. You just need to understand that an IDE is an IDE and WEB is a WEB 🙂 .
    • When you invest money on Eclipse, its not only as an IDE but also as an Application, as a RCP Product, Framework to build other applications, Data Integration Tools, etc… so know what eclispe can offer to you before you say anything.
  • Bussiness users / Developers  /Newbies…
    • If you are not a developer and never ever worked with an IDE, please do take a Training. Its worth a life time than getting frustrated with some small issues.
    • If Eclipse is delivered to you as a RCP application, there are two aspects of looking into the features. First is to see what are the features that RCP application provides, and second is to see what parts of eclipse features are available. Always understand that any RCP application or Eclipse IDE is made from Eclipse Plaltform (in many cases). So its important to know what you get by default and what you get from your own companies plugin distribution.
    • Ask your IT manager to arrange for a training and get the Yogic Knowledge 🙂

Posted in Business Manager, Eclipse, Eclipse Performance, IT User, Plug-ins, Plugin, RCP | 1 Comment »

Performance tools for Eclipse RCP Applications

Posted by sureshkrishna on August 4, 2007

Recently i have been looking for the Testing, Performance and Runtime Visualization tools for Eclipse RCP Platform. The real challenge is to choose the variety of the tools that we have today in the market and which one suits us.
I have done almost few weeks of research and foudn some good tools for desktop applications. I am mainly concerned with the analysis of the runtime performance of custom developed plugins. I have a great things to deal on the SWT and JFace UI.
Anyway i want to give few resources for all of you who are interested in these tools.

http://jakarta.apache.org/jmeter  I ma sure everyone knows about it. Its the Apache kid and adopted by many enterprises for the J2EE performance tracking on the servers. In anycase as i am more interested in the desktop applications i had to lookinto others.
http://sourceforge.net/projects/jmechanic  I have heard a lot about this in the initial 2003 and 2004 but as i also see from the website, there are no prominent releases recently.
http://www.quest.com/jprobe  This is a real cool tool available today. I have checked it couple of times and i am impressed. It gives a very clear stats of the stack trace and call hierarchy. It can debug even the remote applications and its nice. I would definately recommend JProbe if you like it.
http://www.eclipse.org/tptp  As everyone knows its a subproject from eclipse and its a great platform to work on. As with my experience, its a little bit of effort to install, configure and run the plugin. Once you are used to it, its a GREAT thing on eclipse platform. You get all sorts of the stats that you want. How many Objects are alive, whats the sequance of the Object invocation, how many threads are alive, memory footprint, etc…
http://java.sun.com/performance/jvmstat  The jvmstat technology adds light weight performance and configuration instrumentation to the HotSpot JVM and provides a set of monitoring APIs and tools for monitoring the performance of the HotSpot JVM in production environments. The instrumentation is designed such that it is ‘always on’, yet has negligible performance impact. The monitoring interfaces added to the HotSpot JVM are proprietary and may or may not be supported in future versions of the HotSpot JVM.

Hope this helps for you some how.

Posted in Eclipse Performance, JMechanic, JMeter, JProbe, TPTP | 2 Comments »