Vlákno názorů k článku
Firefox ve Wine rychlejší než nativně od Sten - Hmm, a nemůže za to nakonec i386 architektura...

  • Článek je starý, nové názory již nelze přidávat.
  • 17. 2. 2009 13:56

    Sten (neregistrovaný)
    Hmm, a nemůže za to nakonec i386 architektura ve spojení s ELF PIC? ELF Position Independent Code, který je používán ve sdílených knihovnách, má takovou ošklivou vlastnost, že dělá odkazy relativně, na rozdíl od windowsího PE, kde jsou absolutní a v případě potřeby při startu přepsané dle tabulky odkazů, což na i386 a PowerPC způsobuje nutnost načítat GOT (Global Offset Table), neboť tyto architektury neumožňují jednoduchý přístup k instruction pointeru, což je extrémně pomalé? ELF tímhle problémem na jiných architekturách (třeba x86-64) netrpí, protože tam se dá adresovat relativně k instruction pointeru a tím se celá tahle šaškárna vypustí.
  • 17. 2. 2009 17:05

    anonymní
    Odkazy/tabulky/relokace fungují v ELF a PE prakticky stejně. Je otázka, jak je ten který překladač využije, ale ve formátu samotném to podle mě není.
  • 17. 2. 2009 19:09

    Sten (neregistrovaný)
    Ten rozdíl se týká odkazů uvnitř jedné knihovny, nikoliv o odkazy mezi více knihovnami, tam se PE a ELF chovají stejně a musí jít přes relokační tabulky. Jinak to zaprvé není problém formátu, ale architektury a zadruhé to lze obejít přes nedokumentovanou instrukci (de facto push eip), ale je to prasárna a nikdo nezaručuje, že to bude fungovat na všech implementacích x86.