C'è un modo semplice di codificare il codice C# JIT in anticipo, piuttosto che attendere la prima volta che il codice viene richiamato? Ho letto di NGEN ma non penso che mi possa aiutare.Evitare l'overhead CIT JIT
La mia applicazione attende e risponde a un evento esterno specifico proveniente da una porta UDP e nessuno del codice del percorso critico è (a) eseguito prima dell'arrivo dell'evento o (b) mai eseguito di nuovo, quindi il costo di JIT è alta in questo scenario. Controllando con il profiler ANTS, il sovraccarico per JIT è intorno al 40-50%, a volte arriva fino al 90%. La mia applicazione è estremamente sensibile alla latenza e ogni millisecondo conta.
Il mio pensiero iniziale è che potrei aggiungere un parametro bool a ogni metodo di percorso critico e chiamare quei metodi prima che si verifichi l'evento, al fine di avviare la compilazione JIT. Tuttavia, c'è un modo più carino e meno hacky?
Molte grazie
Perché NGEN non ti può aiutare? –
Hai determinato che è un problema? O pensi semplicemente che potrebbe essere? –
Sono (praticamente) certo che è il problema Henk. Ho appena implementato su un singolo metodo il mio approccio hacky e l'overhead JIT per quel metodo nel profiler ANTS è scomparso. – endian