Software performance analysis
Distinct software undertake analysis to determine the root cause of performance problems,
rather than recommending speculative un-justified remedies, such remedies do not stand up to closer inspection...
Buy a faster server or machine
It is true that in many cases technology has moved on to produce hardware which is much faster
now than it was even 6 months ago, but will it make the necessary difference ? Increasing the
available resources is not understanding why the system needs so much, with the consequence that
such upgrades will not necessarily produce expected performance improvements. Can you be certain
that the software can take advantage of improved resources ? Indeed, can such resources actually
provide the required level of improvement ?
Spending money on hardware may be an expensive error
Rewrite system as thin client
Thin client systems have great merits, indeed in some cases performance may be better, but to
re-architect an existing system without the basis of tangeable evidence of benefits would be a
very expensive endeavour. Some architectural tweaks may be necessary in some systems to fix
bottlenecks, but a change of complete system architecture is usually unnecessary, and sometimes
counter-productive, moving problems elsewhere.
System re-writes are expensive and usually unnecessary
Make system multi-threaded
Multi-threaded architectures are designed in specific ways to solve specific problems. In many cases
making an existing single-threaded system into a multi-threaded one will not bring benefits. The most
common misguided rationale for making this change is that "the software can do something while it is
waiting for the data from the database" Unfortunately, software is usually waiting for data from the
database because it needs it, there is nothing else to do until the data is returned.
Proper analysis of how the solution would benefit performance is necessary
Rewrite system using CORBA or .NET
Once again - there is no real reason why a CORBA or .NET based system is supposed to be faster or more
efficient than any other system. Somebody else's CORBA or .NET system may be fast, but the issue to
address is the your slow system.
Technology is unlikey to help without a change in algorithm code and architecture
Cache more data in memory - databases are slow
This is a classic programmer's solution to perfomance problems. Perception that databases access is
slow sometimes gives rise to this solution. Proper analysis shows that cacheing of data can be slower
in many cases, while database performance is actually very good. Database servers have had a great deal of
performance work done to make sure they are fast, but it is necessary to check that the way the database
is used is efficient. Cacheing of data may be an option, but it is also necessary to consider how
cached data is going to be kept up-to-date which means an apparently easy option may be more difficult
to implement.
Implementing caches may seem like the way forward, but it is not always beneficial
|
|