Ano. Ale na render stanici nikdo browser nebude otevírat.
Prostě univerzální záplata není a nebude.
Buď vám jde o bezpečí a vypnete SMT a nebo vám jde o MT výkon a máte SMT=ON. Naštěstí tyto požadavky jdou málokdy proti sobě. Až na provozovatele cloudu.
Win11 se snaží o oboje, tak zahodili podporu ZEN 1. Linux se s tím bude muset poprat.
15. 8. 2023, 08:16 editováno autorem komentáře
Chytání takové exception jsou možná desetitisíce cyklů - žádná VM to takto nedělá. Dělení je samo o sobě celkem nákladná operace, takže nějaký jcc se tam úplně ztratí. Navíc moderní compiler na x86 bude preferovat 32-bit division, takže může klidně vygenerovat i další skok, který se rozhodne mezi 32-bit a 64-bit dělením (clang to takto třeba dělá).
No, jsou tu dvě možnosti:
a. O něco rychlejší běžný provoz za cenu poněkud pomalého (řádově pomalejšího) handlování chyby.
b. O něco pomalejší běžný provoz a rychlejší handlování chyby.
Nevím, jak se rozhodli tvůrci kterých kompilátorů, ale budu-li považovat dělení nulou za vzácný jev, jehož optimalizace nemá takovou prioritu, dává mi A smysl.