Object code optimizer: Difference between revisions

Content deleted Content added
AnomieBOT (talk | contribs)
m Dating maintenance tags: {{Confusing}}
Line 7:
 
==Examples==
*"[[IBM]] Automatic Binary Optimizer for z/OS<ref>https://www.ibm.com/us-en/marketplace/improved-cobol-performance</ref>" (ABO) was introduced in 2015 as a cutting-edge technology designed to optimize the performance of [[COBOL]] applications on [[IBM Z]]<ref>https://www.ibm.com/it-infrastructure/z</ref> mainframes without the need for recompiling source. It uses advanced optimization technology shipped in the latest Enterprise COBOL<ref>https://www.ibm.com/us-en/marketplace/ibm-cobol</ref>. ABO optimizes compiled [[binaries]] without affecting program logic. As a result, the application runs faster but behavior remains unchanged so [[testing]] effort could be reduced. Clients normally don't [[recompile]] 100 percent of their code when they upgrade to new compiler or IBM Z hardware levels, so code that's not recompiled wouldn't be able to take advantage of features in new IBM Z hardware. Now with ABO, clients have one more option to reduce [[CPU]] utilization and operating costs of their business-critical COBOL applications.
*The earliest "COBOL Optimizer" was developed by [[Capex Corporation]] in the mid 1970s for [[COBOL]]. This type of optimizer depended, in this case, upon knowledge of 'weaknesses' in the standard IBM COBOL compiler, and actually replaced (or [[patch (computing)|patch]]ed) sections of the object code with more efficient code. The replacement code might replace a linear [[lookup table|table lookup]] with a [[binary search algorithm|binary search]] for example or sometimes simply replace a relatively slow instruction with a known faster one that was otherwise functionally equivalent within its context. This technique is now known as [[strength reduction]]. For example, on the [[IBM/360]] hardware the <code>CLI</code> instruction was, depending on the particular model, between twice and 5 times as fast as a <code>CLC</code> instruction for single byte comparisons.<ref>http://www.bitsavers.org/pdf/ibm/360/A22_6825-1_360instrTiming.pdf</ref><ref>http://portal.acm.org/citation.cfm?id=358732&dl=GUIDE&dl=ACM</ref>
 
===Advantages===
Line 22 ⟶ 23:
 
More recently developed 'binary optimizers' for various platforms, some claiming [[novelty (patent)|novelty]] but, nevertheless, essentially using the same (or similar) techniques described above, include:
*[[IBM]] Automatic Binary Optimizer for z/OS (ABO) (2015)<ref>https://www.ibm.com/us-en/marketplace/improved-cobol-performance</ref>
*[[The Sun Studio Binary Code Optimizer]]<ref>http://developers.sun.com/solaris/articles/binopt.html</ref> - which requires a [[software performance analysis|profile]] phase beforehand
*Design and Engineering of a Dynamic Binary Optimizer - from [[IBM]] T. J. Watson Res. Center (February 2005)<ref>http://ieeexplore.ieee.org/Xplore/login.jsp?url=/iel5/5/30187/01386661.pdf?arnumber=1386661</ref><ref>http://portal.acm.org/citation.cfm?id=1254810.1254831</ref>