jhv1blz5 wrote: The article validated SOA as an IT architecture paradigm that can be leveraged in many ways. Taking data storage, scalability and application performance to a nifty level using SOA Application Grid infrastructure will no doubt enhance data and application performance on Oracle architecture platforms, it also has the promise of a cost effective and efficient IT delivery model. The very benefits of SOA.
Commercial systems are developed with a huge range of performance requirements and we are concerned in this article with the small number of systems where absolute maximum performance is demanded either in terms of execution speed or available memory. We'll discuss the role of bespoke implementation and show that writing programs that utilize novel data structures and new algorithms designed with knowledge of the specific problem context is a necessary complement to the generic components and automatic optimizations offered by compilers and modern JVMs to maximize performance.
Empirical Tests We'll demonstrate this thesis here with an empirical comparison of the standard Java sort routines working with integers and bespoke implementations optimized to handle integers in specific contexts. Graphs comparing the speed of these algorithms will be presented.
All the empirical tests described in this article were run several times and an average taken, so we eliminate any random variations introduced by unexpected operating system activity. These tests were run on an isolated system, with no other users or applications operating, to minimize skewing the results. The results are output directly by the benchmark programs to file, outside the timed code section, and the results are correlated by an automatic graphing program to remove the possibility of human error. The correlation program also checks that every average calculated for each point on the graphs is calculated from the same number of underlying samples, reports the standard deviation, and identifies any outliers. These are either ignored because they are not significant or the entire benchmark can be rerun.
Efficient Code The central proposal here is not new or controversial and has been clearly communicated in computing literature for many years that as a rule the fewer instructions a program executes the faster it runs. This is generally true of programs written in any language and is therefore also true of programs written in Java and C++, both common language choices for large, scalable, fast, distributed systems.
Pragmatically this requires hand-crafted code written in a general programming language such as Java or C++ that accounts for a specific programming context to successfully implement the fastest, most memory-efficient programs. In contrast, relying solely on configuring generic components, designed and implemented without knowing the specific circumstances of their use, whether these be off-the-shelf libraries or the automatic optimization of compilers, even with advances in JVM technology, might be sufficient in many circumstances but may not necessarily be optimal. Ultimately, bespoke design, implementation, and optimization, and the creative skill of the programmer used to complement these generic components, will produce the fastest, most scalable programs.
About Adrian Marriott Adrian Marriott is principal consultant at Progress Software focused on DataXtend and ObjectStore. He has 15 years of industrial experience implementing large, fast, distributed, object-oriented systems using the C++, Java and LISP languages. Adrian has a BA in philosophy from Warwick University and an MSc in artificial intelligence and computer programming from Southbank Polytechnic in London.
Reader Feedback: Page 1 of 1
Subscribe to the World's Most Powerful Newsletters
Subscribe to Our Rss Feeds & Get Your SYS-CON News Live!
Click to Add our RSS Feeds to the Service of Your Choice: