2017-06-16 4 views
0

J'ai un FatJar signé assez grand (~ 150Mb) et j'ai juste essayé de l'exécuter et il s'avère qu'il fonctionne beaucoup plus lentement que son équivalent non signé. J'utilise jdk1.8.0_131 (sur Mac).FatJar signé est vraiment lent à l'exécution

Je suis curieux de savoir si c'est normal ou s'il y a quelques trucs et astuces que je peux utiliser pour accélérer les choses. J'ai remarqué que le processus de signature signe en réalité chaque entrée individuelle dans le pot, par opposition à la signature de l'ensemble Jar. J'imagine donc que la lenteur est due au fait que le chargeur de classe doit vérifier la signature de chaque classe qu'il essaie de charger.

Donc, ma question est, est-il un moyen de changer ce comportement? Puis-je avoir le chargeur de classe en quelque sorte juste vérifier que le JAR est correctement signé pour commencer et se comporter comme si c'était un JAR non signé? Sinon, je vais implémenter mon propre mécanisme de signature/vérification. Je veux juste m'assurer que je ne manque rien avant de faire ça.

+0

Quelle version de Java utilisez-vous le pot? –

+0

Juste mis à jour la question avec cette information. jdk1.8.0_131 sur un Mac. – StFS

Répondre

0

Ce peut être un bug Java.

Voir here

En fait signe vérification ne devrait pas a un impact significatif sur la performance globale.

Essayez donc de mettre à jour la version JDK.

+0

Merci, malheureusement, il ne semble pas que ce soit le cas pour moi. Nous utilisons JDK 1.8 (jdk1.8.0_131). Je vais mettre à jour ma question pour en prendre note. – StFS