.NET Framework JIT e Bulldozer Istruzioni speciali
Domanda
AMD Bulldozer ha avuto successo nello spazio del server ma ha funzionato male sul desktop. A quanto ho capito, una delle principali cause di ciò è che le applicazioni del server sono state riscritte per utilizzare le istruzioni speciali di Bulldozer, che non vengono ancora utilizzate nelle applicazioni desktop. Will o ci aspettiamo che il compilatore giusto in tempo (JIT) li usi in 4.5, può/ torneranno portati su 4.0?
Chiarimento: la mia comprensione è stata che il JIT si compila per la macchina su cui è in esecuzione, non sulla macchina su cui è stata compilata in istruzioni IL. È stato affermato che a causa di queste applicazioni JIT possono effettivamente avere prestazioni più elevate del codice normale che viene compilato e collegato direttamente al binario.
Soluzione
Sfortunatamente, il JIT .NET non è particolarmente sofisticato quando si tratta di prestazioni:
- Anche sui server non fa pesanti ottimizzazioni come fa un compilatore C ++, sebbene abbia le stesse informazioni di un compilatore C ++. Semplicemente non fa certe cose
- Utilizza istruzioni speciali solo per alcune operazioni con galleggianti
- L'X64 ha anche problemi di qualità con ottimizzazioni non valide.
- Mancano alcune ovvie ottimizzazioni come l'analisi della fuga
Sembra che il JIT non sia stato sviluppato con un budget particolarmente elevato. Quindi dubito che vedremo istruzioni così specializzate utilizzate.