Přejít k navigační liště

Zdroják » Zprávičky » Zlepšení výkonu Mozilly pomocí pozdního vytváření rámů

Zlepšení výkonu Mozilly pomocí pozdního vytváření rámů

Na blogu Mozilla Hacks vyšel článek Better performance with Lazy Frame Construction. V článku je popisována nová technika pozdního („líného“) vytváření rámů pro elementy ve zobrazovaném dokumentu (rámy odpovídají zhruba „boxům“, známým z CSS, a určují velikost a umístění prvku). V současnosti se vytvoří pro každý element odpovídající rám ve chvíli přidání elementu do DOM stromu. Pomocí postupu, který popisuje odkazovaný článek, lze např. pomocí skriptů vytvořit několik desítek tisíc elementů naráz, a jejich „zarámování“ nechat až na konec a provést je najednou.

Článek udává téměř dvojnásobné zrychlení při vytváření velkého počtu elementů. Při nastavování absolutní pozice prvku je zrychlení ještě vyšší – článek uvádí příklad vytvoření dvou tisíc absolutně pozicovaných DIVů, které bez pozdního rámování trvalo téměř pět sekund (každý prvek se musel při vytvoření správně umístit), při použití uvedeného postupu trvala operace neuvěřitelných 130ms.

Komentáře

Odebírat
Upozornit na
guest
0 Komentářů
Nejstarší
Nejnovější Most Voted

TypeScript 7 v Go: rychlejší buildy, chybějící API

Betaverze TypeScriptu 7.0 ukazuje víc než rychlejší tsc. Microsoft převádí kompilátor a jazykovou službu z původní kódové základny psané v TypeScriptu a běžící jako JavaScript do Go, přidává paralelní typovou kontrolu a připravuje novou editorovou část postavenou na LSP. Pro část nástrojů ale nepůjde o prostou výměnu binárky: TypeScript 7 zatím nemá stabilní náhradu dnešního Compiler API.

Prolog nezmizel. Jen dnes žije v jiných nástrojích

Prolog nezmizel. Jeho hlavní myšlenku dnes potkáváme v nástrojích, které se Prologu na první pohled nepodobají: v CodeQL pro analýzu kódu, v Rego pro policy-as-code, v Z3 pro práci s omezeními a v Leanu pro formální důkazy. Každý řeší jiný problém, ale všechny připomínají totéž: někdy je lepší popsat vztahy, pravidla, omezení nebo tvrzení než vrstvit další if.