|
|
|||||||||||||||||||||||||||||||||||||||||||||
Kirill Grouchnikov's Blog
Performance improvements in Substance 5Posted by kirillcool on May 28, 2008 at 02:41 PM | Permalink | Comments (2)The biggest pain point of Substance users, as expressed in the comments on the announcement of release 4.3, is the performance. While this might have been less noticeable for smaller UIs, the users of Substance NetBeans module were especially vocal about the performance issue. You made your statement very clear, and performance improvements were placed as the top priority for the next release (code named Substance 5). Following the extensive correspondence with Java2D team (thanks, Dmitri), i have created a new java.net project named LightBeam. LightBeam has a collection of static and dynamic scenarios that are targetting different core Swing components and different interaction scenarios. The static scenarios create a number of components and then render the main frame onto an offscreen buffer. The dynamic scenarios run a number of typical interaction scenarios that involve changing the components or models. Here is the spreadsheet with the performance improvements on static scenarios. The numbers are milliseconds it takes to render a frame with a number of matching components (buttons, sliders etc) to an offscreen buffer (the smaller, the better).
An average improvement from version 4.3 is by factor of 3.5. As you can see, slider rendering was especially slow in version 4.3. Another important number to notice is the heap memory consumption - it has not grown at all as compared with version 4.3. And here is the spreadsheet with the performance improvements on static scenarios. The numbers are milliseconds it takes to run a specific scenario and repaint the contents (the smaller, the better).
An average performance improvement from version 4.3 is by factor of 2.5. As before, sliders were especially slow in version 4.3. Note that there is one scenario where the additional visuals provided by Substance prove to be still too costly - in dynamically selecting table rows. This would, obviously, have to be addressed before the final release. Project LightBeam is targeted at look-and-feel developers that wish to test the performance of their libraries. The SVN repository contains a number of sample scripts that were used in creating the above spreadsheets. It will be extensively used throughout the development of Substance to make sure that there are no performance regressions from this moment forward. The latest development drop of Substance 5 should be very stable. You’re more than welcome to try it out and report any exceptions, errors or visual inconsistencies on the project forums, mailing lists or in a direct mail. Also, if you’re using NetBeans 6.1, please consider trying out the latest drop of Substance module. It should be noticeably faster, but if you’re experiencing any slowdowns, just right-click on the title bar and select "Show cache stats". In the new dialog, click "Copy to clipboard" and attach the results to a forum / mailing list posting. The numbers above are for software unaccelerated rendering. No work has been done yet to analyze and improve the performance on d3d-accelerated pipeline. Cross-posted at "Pushing Pixels". Party Of One: Surviving A Hobby Open Source ProjectPosted by kirillcool on May 19, 2008 at 09:36 AM | Permalink | Comments (3)Last week’s JavaOne had a separate track on open source, and there’s been a substantial number of very interesting panels, discussions and presentations. However, i felt that these talks concentrated mostly on big, well-established and very broad open-source communities. While it is perfectly understandable, the few dozens of these high-profile communities do not reflect the specific problems of a much vaster landscape of the open-source in general. Here I’m talking about literally hundreds of thousands of projects that only have a single active developer. I call it the "party of one" type of project, and these pose a number of quite significant challenges to their "owners", especially if it is done as a part time hobby. I had a number of such projects (where i am the only developer) over the last decade, and some of them are still quite active. I have written a blog series that talks about the specifics of one-man projects and how to maintain a long-term level of commitment. If the terms such as steering committee, constitution, incubation and governance models do not apply to your project, take a look. Substance 4.3 official releasePosted by kirillcool on April 14, 2008 at 11:01 AM | Permalink | Comments (3)It gives me great pleasure to announce the official release for version 4.3 of Substance look-and-feel (code-named Nairobi). The list of new features includes:
It was on this day in 2005 that Substance project has been created. It is now three years old and to celebrate this occasion i have redesigned the main project page to be less cluttered and a little better organized. Hope that you like it, and if you have any comments, i will be more than interested to hear your opinion. A few screenshots of the new functionality in Substance 4.3: New decoration painters applied to the Flamingo ribbon component:
Highlight painters on table (note a single-line border separators):
Colorized visuals of disabled selected buttons:
A button with 72 pixel font:
Click on the button below to launch a signed WebStart application that shows the available Substance features. |
June 2008
Search this blog:CategoriesAccessibilityCommunity Community: Java Enterprise Community: Java Tools Community: Java Web Services and XML Community: JavaDesktop Community: JDK Community: NetBeans Databases Deployment J2SE JavaOne Linux Open Source Performance Porting Programming Swing Web Services and XML Archives
May 2008 Recent EntriesPerformance improvements in Substance 5 Party Of One: Surviving A Hobby Open Source Project Substance 4.3 official release ArticlesTranslucent and Shaped Swing Windows Debugging Swing Adding Auto-Completion Support to Swing Comboboxes All articles by Kirill Grouchnikov » | ||||||||||||||||||||||||||||||||||||||||||||
|
|