Optimalizátor objektového kódu - Object code optimizer
![]() | Tento článek má několik problémů. Prosím pomozte vylepši to nebo diskutovat o těchto problémech na internetu diskusní stránka. (Zjistěte, jak a kdy tyto zprávy ze šablony odebrat) (Zjistěte, jak a kdy odstranit tuto zprávu šablony)
|

An optimalizátor objektového kódu, někdy také známý jako a optimalizátor post pass nebo, pro malé části kódu, optimalizátor kukátka, vezme výstup z kroku kompilace zdrojového jazyka - kód objektu nebo binární soubor - a pokusí se nahradit identifikovatelné části kódu náhradním kódem, který je více algoritmicky efektivní (obvykle lepší rychlost).
Příklady
- "IBM Automatický binární optimalizátor pro z / OS[1]„(ABO) byla představena v roce 2015 jako špičková technologie navržená k optimalizaci výkonu COBOL aplikace na IBM Z[2] sálové počítače bez nutnosti překompilování zdroje. Využívá pokročilou optimalizační technologii dodávanou v nejnovějším Enterprise COBOL[3]. ABO optimalizuje kompilované binární soubory bez ovlivnění logiky programu. Výsledkem je, že aplikace běží rychleji, ale chování zůstává nezměněno, takže bylo možné snížit úsilí při testování. Klienti obvykle ne překompilovat 100 procent jejich kódu při upgradu na novou úroveň hardwaru kompilátoru nebo IBM Z, takže kód, který není překompilován, by nemohl využívat výhod nových hardwarových prvků IBM Z. Nyní s ABO mají klienti ještě jednu možnost snížení procesor využití a provozní náklady jejich kriticky důležitých aplikací COBOL. Můžete si vyzkoušet ABO s vylepšenou a snadno použitelnou zkušební službou ABO Trial Cloud Service [4] bez instalace ABO ve vašem systému.
- Nejdříve "COBOL Optimizer" byl vyvinut společností Capex Corporation v polovině 70. let pro COBOL. Tento typ optimalizátoru závisel v tomto případě na znalostech „slabin“ ve standardním kompilátoru IBM COBOL a skutečně byl nahrazen (nebo opravený ) části objektového kódu s efektivnějším kódem. Náhradní kód může nahradit lineární vyhledávání v tabulce s binární vyhledávání například nebo někdy jednoduše nahradit relativně pomalou instrukci známou rychlejší instrukcí, která byla jinak funkčně ekvivalentní v jeho kontextu. Tato technika je nyní známá jako snížení síly. Například na IBM / 360 hardware
CLI
instrukce byla v závislosti na konkrétním modelu dvakrát až pětkrát rychlejší než aCLC
instrukce pro jednobajtové srovnání.[5][6]
Výhody
Hlavní výhodou reoptimalizace stávajících programů bylo, že zásoba již sestavených zákaznických programů (kód objektu ) lze vylepšit téměř okamžitě s minimálním úsilím, což snižuje procesor zdroje za fixní cenu (cena proprietární software ). Nevýhodou bylo, že nová vydání COBOLu by například vyžadovala (nabitou) údržbu optimalizátoru, který by zajišťoval případně změněné interní algoritmy COBOL. Protože se však nové verze překladačů COBOL často shodovaly Hardware upgrady, rychlejší hardware by obvykle více než kompenzoval návrat aplikačních programů k jejich předem optimalizovaným verzím (dokud nebyl vydán podpůrný optimalizátor).
Další optimalizátory
Některé binární optimalizátory ano spustitelná komprese, což snižuje velikost binárních souborů pomocí obecných komprese dat techniky, snižující požadavky na úložiště a doby přenosu a načítání, ale nezlepšující výkon za běhu. Skutečná konsolidace duplicitních modulů knihovny by také snížila požadavky na paměť.
Některé binární optimalizátory využívají run-time metriky (profilování ) introspektivně zlepšit výkon pomocí technik podobných JIT překladače.
Nedávný vývoj
Nověji vyvinuté „binární optimalizátory“ pro různé platformy, některé tvrdí novinka ale přesto v zásadě používající stejné (nebo podobné) techniky popsané výše zahrnují:
- IBM Automatická binární optimalizace pro z / OS (ABO) (2015)[7]
- IBM Automatická binární optimalizace pro z / OS (ABO), zkušební cloudová služba (2020)[8]
- Optimalizace binárního kódu Sun Studio[9] - což vyžaduje a profil fáze předem
- Návrh a konstrukce dynamického binárního optimalizátoru - od IBM T. J. Watson Res. Center (únor 2005)[10][11]
- QuaC: Rychlá binární optimalizace Generování běhového kódu v C[12] - (zdá se, že obsahuje některé prvky JIT)
- DynamoRIO
- COBRA: Adaptivní runtime binární optimalizační rámec pro vícevláknové aplikace[13]
- Spike Executable Optimizer (unixové jádro)[14]
- „SOLÁRNÍ“ optimalizace softwaru v době propojení a době běhu
Viz také
Reference
- ^ https://www.ibm.com/products/automatic-binary-optimizer-zos
- ^ https://www.ibm.com/it-infrastructure/z
- ^ https://www.ibm.com/us-en/marketplace/ibm-cobol
- ^ https://optimizer.ibm.com
- ^ http://www.bitsavers.org/pdf/ibm/360/A22_6825-1_360instrTiming.pdf
- ^ http://portal.acm.org/citation.cfm?id=358732&dl=GUIDE&dl=ACM
- ^ https://www.ibm.com/products/automatic-binary-optimizer-zos
- ^ https://optimizer.ibm.com
- ^ http://developers.sun.com/solaris/articles/binopt.html
- ^ Duesterwald, E. (2005). "Návrh a konstrukce dynamického binárního optimalizátoru". Sborník IEEE. 93 (2): 436–448. doi:10.1109 / JPROC.2004.840302.
- ^ http://portal.acm.org/citation.cfm?id=1254810.1254831
- ^ http://www.eecs.berkeley.edu/Pubs/TechRpts/1994/CSD-94-792.pdf
- ^ Kim, Jinpyo; Hsu, Wei-Chung; Yew, Pen-Chung (2007). "COBRA: Adaptivní runtime binární optimalizační rámec pro vícevláknové aplikace". 2007 Mezinárodní konference o paralelním zpracování (ICPP 2007). p. 25. doi:10.1109 / ICPP.2007.23. ISBN 978-0-7695-2933-2.
- ^ http://www.cesr.ncsu.edu/fddo4/papers/spike_fddo4.pdf