Bonjour,
Je suis en train d'instrumenter des parties critiques de mon code et j'ai un problème de performance que je n'arrive pas à expliquer. J'ai une grosse fonction (+500 lignes) dont le coût d'appel est systématiquement d'environ 2ms la 1ere fois que je l'appelle, à chaque exécution du programme. Pour clarifier, ce n'est pas la fonction elle-même qui prend du temps (elle est déjà très optimisée), juste son appel :
Ce qui affiche :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18 long startTimestamp; long endTimestamp; public static void Init() { startTimestamp = Stopwatch.GetTimestamp(); GrosseFonction(); float ms = 1000f * (endTimestamp - startTimestamp) / (float)Stopwatch.Frequency; System.Console.WriteLine("Coût d'appel {0}ms", ms); } public static void GrosseFonction() { endTimestamp = Stopwatch.GetTimestamp(); // plein de code qui ne fait aucune allocation et dont le coût est inférieur à 50µs }
Ce qui est énorme ! Une idée de ce qui peut se passer ? J'utilise le .Net Framework 4.
Code : Sélectionner tout - Visualiser dans une fenêtre à part Coût d'appel 1.907ms
Merci
Partager