|
COBOLBindingConversionMetrics
Basic CPU metrics for LegStar COBOL conversions.
IntroductionThere are several performance aspects of interest in LegStar. Here we examine the behavior of the COBOL conversions at the data type (or individual field) level. At the finest level, the LegStar COBOL binding runtime performs elemental conversions from COBOL data types to Java types. So we first focus on these data types conversions as they will affect all higher level features. The metrics are focused on CPU as this is likely to be the most important resource from a performance perspective. Measurement procedureWe bundled JUnit test cases for each of the functions we wanted to measure:
You can find the JUnit source code here. We used Apache JMeter version 2.4 to load test each one of these JUnit methods. Each test was run 1000000 times with 10000 warmup iterations. The JMeter configuration files can be found here. The target machine is an Intel centrino dual core 2.00 Ghz, with 2 Gbytes of RAM, running JRE 1.6.0_16. We measured the throughput which is the number of elementary conversions we could perform in a second. The results should not be interpreted as absolute values. Typically we were running JMeter in GUI mode and performing JUnit assertion on each execution which tends to use CPU cycles and reduce throughput. The results are valid when you compare individual tests to each other though. ResultsLegStar release 1.4.1
ConclusionElementary conversions for basic types perform in the same range. in release 1.4.1, conversions have been optimized to reduce the number of java objects allocated. Java objects were replaced by primitive types whenever possible. This has some impact on CPU but perhaps more importantly has reduced the memory footprint. | ||||||||||||||||||||||||||||||||||||