The Artima Developer Community
Sponsored Link

Artima Developer Spotlight Forum
Software Performance Anti-Patterns

5 replies on 1 page. Most recent reply: Mar 10, 2006 7:37 AM by Petr Mares

Welcome Guest
  Sign In

Go back to the topic listing  Back to Topic List Click to reply to this topic  Reply to this Topic Click to search messages in this forum  Search Forum Click for a threaded view of the topic  Threaded View   
Previous Topic   Next Topic
Flat View: This topic has 5 replies on 1 page
Frank Sommers

Posts: 2642
Nickname: fsommers
Registered: Jan, 2002

Software Performance Anti-Patterns Posted: Mar 8, 2006 12:24 PM
Reply to this message Reply
Advertisement

While a cardinal rule of software development is to avoid premature performance optimization, developers still must contend with project deadlines and release dates. As a result, there is often little or no time to work on performance improvements before a release.

"At this point in a project, we have often joked about getting out the 'perf spray,' hoping we could quickly spray on some performance as if it were some sort of flashy paint," says Bart Smaalders, a long-time Sun engineer, in a recent ACM Queue article.

While solving performance problems in the Solaris kernel, X Windows, CDE, and other mission-critical systems, Smaalders noted that most "performance pathologies" centered around a handful of themes, or patterns, that developers repeated time and again. In this article, Smaalders outlines some of these performance anti-patterns, such as:

  • Fixing performance at the end of the project
  • Measuring and comparing the wrong things
  • Algorithmic antipathy
  • Reusing software (especially, old software)
  • Iterating too much
  • Focusing on what you can see, rather what the real problem is
  • Layering too much software on each other
  • Using too many threads
And of course, the perennial favorite:
  • Premature optimization

He also mentions performance anti-patterns that relate to incorrect use of some hardware, such as caches in processors, which is probably a lesson for other caching environments as well.

What are your performance anti-patterns?


Nicolas Nombela

Posts: 17
Nickname: nnombela
Registered: Feb, 2005

Re: Software Performance Anti-Patterns Posted: Mar 9, 2006 3:59 AM
Reply to this message Reply
- Overuse of IO operations or ignoring there are been used
- Not having an execution-flow view at all, only component view if any
- Incorrect use of exceptions
- XML overuse
- Incorrect and poor understanding of sw/hw configuration parameters

Merriodoc Brandybuck

Posts: 225
Nickname: brandybuck
Registered: Mar, 2003

Re: Software Performance Anti-Patterns Posted: Mar 9, 2006 9:48 AM
Reply to this message Reply
* Brain dead string handling
* A subset of too much XML, an over reliance on the DOM
* Frequent use of new/malloc/CreateObject/whatever your memory allocation call or keyword is
* I have to mention fixing performance at the end of the project again. I've been hit by that so many times its painful. Yet nobody seems to want to do anything about it. Grrrr.....

Brian Zhou

Posts: 1
Nickname: bzhou
Registered: Mar, 2004

Re: Software Performance Anti-Patterns Posted: Mar 10, 2006 12:59 AM
Reply to this message Reply
I would add just one more: Not finding the right balance between database processing and high level language processing. Some like to do everything in RDBMS, even try to fit tree or graph algorithm in stored procedure; Some people are at the other extreme, they even do the equivalent of table joins in memory.

Kim YongHwan

Posts: 1
Nickname: yongyong
Registered: Mar, 2006

Re: Software Performance Anti-Patterns Posted: Mar 10, 2006 3:57 AM
Reply to this message Reply
* Too complicated macro

Petr Mares

Posts: 5
Nickname: dramenbejs
Registered: Feb, 2006

Re: Software Performance Anti-Patterns Posted: Mar 10, 2006 7:37 AM
Reply to this message Reply
At our company there are rather catastrophic performance patterns, which we cannot influence at all, as it springs of incompetent management:

* Long incremental, management-driven development - developing a system which turns into something completely different than what was specified in the first specification.
* Letting novice, uneducated, uncommunicative or submisive programmers hack the system base. Stupid managers do like submisive programmers very much.
* Developing DB system on significantly bad data sample.

I don't know whether there are better conditions & more competent managers in other countries, but here in Czech republic there are manager-posts still reserved for friends & anal-climbers -- the personalistics is nonexistent here.
One example: one Prague company I know hired a programmer -- and after 1 year they found out that he does not know how to programm, and that he was just an accountant in IT company.

Flat View: This topic has 5 replies on 1 page
Topic: Does Wicket Suit Your Web Framework Style? Previous Topic   Next Topic Topic: Unified Expression Language Helps Integrate JSP, JSF


Sponsored Links



Google
  Web Artima.com   

Copyright © 1996-2014 Artima, Inc. All Rights Reserved. - Privacy Policy - Terms of Use - Advertise with Us