Objektumkód -optimalizáló - Object code optimizer

Image
A bináris optimalizáló a fordítóból veszi a meglévő kimenetet, és jobb végrehajtási fájlt hoz létre, ugyanazzal a funkcióval.

Az objektumkód -optimalizáló , más néven utólagos továbbképzés -optimalizáló, vagy a kód kis részei esetében a kukucskáló -optimalizáló , a forrásnyelvi fordítási lépésből - az objektumkódból vagy a bináris fájlból - veszi a kimenetet, és megpróbálja lecserélni a kód azonosítható részeit. csere kód, amely több algoritmikusan hatékonyabb (általában a nagyobb sebesség).

Példák

  • Az " IBM Automatic Binary Optimizer for z/OS" (ABO) 2015-ben mutatkozott be, mint egy élvonalbeli technológia, amelynek célja, hogy optimalizálja a COBOL alkalmazások teljesítményét az IBM Z nagyszámítógépeken, anélkül, hogy újra kellene fordítani a forrást. Fejlett optimalizálási technológiát használ, amelyet a legújabb Enterprise COBOL -ban szállítottak. Az ABO optimalizálja a fordított bináris fájlokat anélkül, hogy befolyásolná a program logikáját. Ennek eredményeként az alkalmazás gyorsabban fut, de a viselkedés változatlan marad, így a tesztelési erőfeszítések csökkenthetők. Az ügyfelek általában nem fordítják újra a kódjuk 100 százalékát, amikor új fordítóra vagy IBM Z hardverszintre frissítenek, így az újra nem fordított kód nem tudja kihasználni az új IBM Z hardver szolgáltatásait. Az ABO segítségével az ügyfeleknek még egy lehetőségük van csökkenteni az üzleti szempontból kritikus COBOL-alkalmazások CPU- kihasználtságát és üzemeltetési költségeit. Kipróbálhatja az ABO-t egy továbbfejlesztett, könnyen használható ABO Trial Cloud Service segítségével, anélkül, hogy telepítené az ABO-t a rendszerére.
  • A legkorábbi "COBOL optimalizálót" a Capex Corporation fejlesztette ki az 1970 -es évek közepén a COBOL számára . Ez a fajta optimalizáló ebben az esetben a szabványos IBM COBOL fordító „gyengeségeinek” ismeretétől függött, és ténylegesen kicserélte (vagy javította ) az objektumkódokat egy hatékonyabb kóddal. A pótkódra lehet cserélni egy lineáris táblázatkikeresési egy bináris kereséssel például, vagy néha egyszerűen cserélje viszonylag lassú utasítást ismert gyorsabb, amelyik egyébként funkcionálisan egyenértékű belül kontextusban. Ez a technika ma ismert erőt csökkentése . Például az IBM/360 hardveren az CLIutasítás az adott modelltől függően kétszer -ötször gyorsabb volt, mint az CLCegybájtos összehasonlításra vonatkozó utasítás.

Előnyök

A meglévő programok újraoptimalizálásának fő előnye az volt, hogy a már lefordított ügyfélprogramok ( objektumkód ) állománya szinte azonnal javítható volt minimális erőfeszítéssel, fix költséggel csökkentve a CPU erőforrásait (a szabadalmaztatott szoftver ára ). Hátránya volt, hogy például a COBOL új kiadásai (feltöltött) karbantartást igényelnek az optimalizáló számára az esetlegesen megváltozott belső COBOL algoritmusok kielégítése érdekében. Azonban, mivel új kibocsátások COBOL fordítóprogramok gyakran egybeesett hardver frissítéseket , a gyorsabb hardver rendszerint több mint ellensúlyozza a felhasználói programok visszatérve az előzetesen optimalizált változat (amíg a támogató optimalizáló adták).

Egyéb optimalizálók

Egyes bináris optimalizálók végrehajtható tömörítést végeznek , ami általános adattömörítési technikákkal csökkenti a bináris fájlok méretét , csökkenti a tárolási követelményeket, valamint az átviteli és betöltési időket, de nem javítja a futási idő teljesítményét. A duplikált könyvtári modulok tényleges összevonása szintén csökkenti a memóriaigényt.

Egyes bináris optimalizálók futásidejű mutatókat ( profilalkotást ) használnak a teljesítmény introspektív javítására a JIT- fordítókhoz hasonló technikákkal .

Legutóbbi fejlemények

A közelmúltban kifejlesztett „bináris optimalizálók” különböző platformokra, amelyek közül néhány újdonságot állít, de ennek ellenére lényegében ugyanazokat a (vagy hasonló) technikákat alkalmazzák, mint korábban leírták:

Lásd még

Hivatkozások