J'étudie certaines défaillances de tests unitaires. Les tests transmettent un ancien serveur de construction qui a été configuré manuellement (et non documenté). J'essaie de les exécuter dans une machine virtuelle propre.Puis-je obtenir les "processus utilisateur max" de Linux en Java?
Mon dernier problème est un test unitaire qui crée des threads 10K.
for (int i = 0; i < 10000; i++) {
final Thread thread = new Thread(new Runnable() { ... });
threads.add(thread);
thread.start();
}
Eh bien, les processus utilisateur max dans l'environnement propre sont seulement 4K. Je me demandais si Java pouvait atteindre cette limite. Le test n'a vraiment pas besoin de 10K, il a juste besoin d'un nombre arbitrairement grand.
Oh, c'est intéressant ... pas multi-plateforme sur son propre (nous avons devs Win et Linux ici), mais un début. –
Notez également que vous devrez exécuter bash avec les options appropriées (il y a probablement d'autres exemples sur SO), car ulimit n'est pas un exécutable autonome – spudone
Les limites de thread Windows sont ... compliquées. Cela dépend de la version et du 32 ou 64 bits, entre autres choses. Je ne connais pas d'ulimit simple. Voir ici: http://blogs.technet.com/b/markrussinovich/archive/2009/07/08/3261309.aspx – spudone