Web Tool Bag  
Home · Articles · Downloads · Discussion Forum · Web Links · News Categories · Synonyms DatabaseJuly 14 2024 23:25:37
Discussion Forum
Web Links
News Categories
Synonyms Database
Users Online
Guests Online: 2
No Members Online

Registered Members: 856
Unactivated Members: 118
Newest Member: lakim
Forum Threads
Newest Threads
Error: Cannot find m...
Uncaught Error: _reg...
Module build failed:...
mochi script questions
Hottest Threads
Installation [12]
Any questions and... [5]
Captcha picture d... [4]
Integrate with Vi... [4]
Mods: Sucess/Than... [4]
Latest Articles
Ubuntu: the vpn conn...
Howto Install HP Pri...
ReactJS progress met...
How to Fix Performance Problems
Most software projects can be made 10 to 100 times faster than they are at the time that they are
first released with relatively little effort. Under time-to-market pressure, it is both wise and effective
to choose a solution that gets the job done simply and quickly, but less efficiently than some
other solution. However, performance is a part of usability, and often it must eventually be considered
more carefully.
The key to improving the performance of a very complicated system is to analyze it well enough
to find the bottlenecks, or places where most of the resources are consumed. There is not much
sense in optimizing a function that accounts for only 1% of the computation time. As a rule of
thumb you should think carefully before doing anything unless you think it is going to make the
system or a significant part of it at least twice as fast. There is usually a way to do this. Consider
the test and quality assurance effort that your change will require. Each change brings a test burden
with it, so it is much better to have a few big changes.
After you've made a two-fold improvement in something, you need to at least rethink and perhaps
reanalyze to discover the next-most-expensive bottleneck in the system, and attack that to get another
two-fold improvement.
Often, the bottlenecks in performance will be an example of counting cows by counting legs and
dividing by four, instead of counting heads. For example, I've made errors such as failing to provide
a relational database system with a proper index on a column I look up a lot, which probably
made it at least 20 times slower. Other examples include doing unnecessary I/O in inner loops,
leaving in debugging statements that are no longer needed, unnecessary memory allocation, and,
in particular, inexpert use of libraries and other subsystems that are often poorly documented with
respect to performance. This kind of improvement is sometimes called low-hanging fruit, meaning
that it can be easily picked to provide some benefit.
What do you do when you start to run out of low-hanging fruit? Well, you can reach higher, or
chop the tree down. You can continue making small improvements or you can seriously redesign a
system or a subsystem. (This is a great opportunity to use your skills as a good programmer, not
only in the new design but also in convincing your boss that this is a good idea.) However, before
you argue for the redesign of a subsystem, you should ask yourself whether or not your proposal
will make it five to ten time better.

by Robert L. Read

Posted by admin on July 12 2010 10:23:29 6437 Reads · Print
Rating is available to Members only.

Please login or register to vote.

No Ratings have been Posted.


Not a member yet?
Click here to register.

Forgotten your password?
Request a new one here.
Member Poll
Which PHP framework do you preffer?





eZ Components






You must login to vote.
You must login to post a message.

03/10/2011 18:17
Hi, How to remove Register from Login screen? I don't want them to register and have full access! if you leave register then they should not have any rights until the admin assigns them

26/09/2011 08:28
Please describe your problem with more details. Thank you.

22/11/2010 18:31
Help. There was a problem with the request; error regarding feedbackzdr form program

Custom web software development by Devzone Tech
Copyright © 2024 - www.webtoolbag.com