.NET Framework 4 gyorsítás 64 biten
![]() |
A Mai nap belefutottam egy érdekes problémába. Mégpedig abba, hogy 64 bitre fordítva a .NET Programomat, majd futtatva azt, valamiért iszonyat lassan indult el. 3-4x lassabban, mint a 32 bites változat. Kis utána járás után rájöttem, hogy valamiért nincsenek meg a natív 64 bites változatai a Framework-ben található szerelvényeknek |
A Framework-ben igen sok kód található, amit egy alkalmazás használhat. Mint tudjuk a .NET alkalmazások indításkor fordulnak le az adott processzoron futtatható kóddá. Ezért, hogy egy alkalmazás elindítása ne tartson 1-2 napig, némi szabad helyért cserébe a Framework telepítő telepítés közben létrehozza a telepített szerelvények lefordított változatát az adott gépre.
A .NET 4.0 megjelenéséig ez volt a helyzet, ezért tartott a korábbi változatok telepítése olyan sokáig. A .NET 4 esetén más a helyzet. Ott egy szolgáltatás települ, ami akkor állítja elő a natív binárisokat, ha éppen a gép üresjáratban van. Ezzel az a probléma, hogy észrevételem szerint ezt a folyamatot a 32 bites binárisok gyártásával kezdi, még egy 64 bites rendszeren is.
Így abban az esetben, ha van egy kihasznált gépünk (Pl laptop), ami üresjáratban nem sokat fut, vagy közvetlenül a Framework telepítése után szeretnénk egy programot futtatni, akkor azt fogjuk tapasztalni, hogy az nagyon lassan fut, sok időt vesz igénybe az elindítása.
Ekkor manuálisan közbeavatkozhatunk és létrehozhatjuk manuálisan a binárisokat. Ehhez az NGEN nevezetű programot kell futtatnunk, amely létrehozza ezen binárisokat.
- Először is szükségünk lesz egy parancssora, méghozzá adminisztrátori jogokkal
- Ezután az alábbi két parancsot kell kiadnunk:
cd C:\Windows\Microsoft.NET\Framework64\v4.0.30319 ngen update
- 32 bites binárisokat az alábbi 2 parancs segítségével lehet frissíteni:
cd C:\Windows\Microsoft.NET\Framework\v4.0.30319 ngen update
Ezen parancsok futtatása CPU sebességtől függően eltarthat egy ideig, utána azonban nagy valószínűséggel megoldódik a lassú 64 bites .NET program probléma