J'ai écrit un programme en Java et j'en ai fait un test, qui teste le programme quelques milliards de fois avec différentes données de test. Le programme lui-même fait seulement le calcul et travaille avec des chaînes (je ne peux pas fournir le code source, désolé). Pour accélérer les choses, il utilise un pool de threads avec 15 threads sur un CPU 8 Core avec 16 threads, où il faut jusqu'à 12 heures pour terminer.Java énorme Différence de performance avec le même test
Le problème est que les performances de l'ensemble du test diffèrent du début à la fin. Après un peu de réchauffement, j'obtiens normalement 3 millions de tests par seconde, mais parfois seulement 2 millions de tests par seconde. Cette différence de performance reste pendant tout le temps de test (8-12 heures), donc cela n'a rien à voir avec le JIT. Si j'annule un test lent et que je l'exécute à nouveau avec exactement la même ligne de commande, il y a de bonnes chances que le second essai soit plus rapide. Jusqu'à présent, j'ai remarqué une différence allant jusqu'à 50% du début à la fin. Est-ce que je fais quelque chose de complètement faux ou quelle pourrait être la cause?
peut être à cause de la mise en cache –
@Nachiket mais pourquoi la performance devrait-elle être différente sur 8 heures? –