2010-02-16 10 views
5

J'ai un projet qui exécute actuellement de nombreux programmes externes en utilisant java.lang.Process. En supposant que leur fonctionnalité soit également disponible sous forme de bibliothèque native, quels seraient les avantages de l'exécution desdites fonctions de bibliothèque en utilisant JNA à la place?Avantages de l'utilisation de l'exécution de processus JNA

Les exécutions de processus sont assez lourdes: elles durent quelques secondes. Ai-je raison de penser que les gains de performance seraient minimes?

+0

C'est l'une de ces questions qui me laisse juste me gratter la tête, car il serait si facile de se comparer à soi-même. –

+3

Pour étudier cela nécessite un engagement de temps. Étant donné que les utilisateurs de SO peuvent déjà avoir une certaine expérience de l'utilisation de la JNA dans le monde réel, j'espère pouvoir déterminer si la réalisation d'un tel benchmark est digne de cet effort. Par exemple - peut-être ai-je manqué quelque chose de tout à fait évident concernant la JNA et ce serait en fait un exercice inutile, même en le comparant ... – teabot

Répondre

3

Vous pourriez trouver cela utile: Execute native code via JNI/DLL or EXE?

Nous y sommes allés avec l'exécution native. Selon la réponse acceptée, il y a moins de risques de fuites de mémoire et il est facile de redémarrer le processus natif si nécessaire.