2012-04-23 2 views
1

J'ai écrit des tests pour un code Java. Je suis en train d'exécuter les tests, mais il échoue avec un dicton d'erreur:Impossible d'allouer de la mémoire dans le bloc TLS statique

java.lang.unsatisfiedlinkerror: cannot allocate memory in static TLS block. 

J'ai essayé beaucoup de recherche Google. Mais n'a pas obtenu beaucoup de là. Est-ce que quelqu'un sait les raisons de cette erreur et les résolutions possibles? Merci

+0

À quoi ressemble votre code? – unholysampler

+0

Utilisez-vous des bibliothèques JNI? – Perception

Répondre

1

TLS est ThreadLocalStorage et il semble que vous essayez d'insérer trop dans un objet ThreadLocal. La machine virtuelle préalloue de la mémoire pour chaque thread pour cela. AFAIK vous ne pouvez pas l'ajuster vous-même, le seul indicateur que je connaisse qui ajuste la consommation de la mémoire des threads est le '-XX: ThreadStackSize =' et il n'y a aucune garantie que cela réglera l'un de vos problèmes. Le meilleur que je peux offrir est de réécrire votre code.

Questions connexes