2010-02-16 24 views
5

Ho un progetto che attualmente esegue molti programmi esterni utilizzando java.lang.Process. Supponendo che la loro funzionalità sia disponibile anche in forma di libreria nativa, quali sarebbero i vantaggi dell'esecuzione di tali funzioni di libreria usando invece JNA?Vantaggi dell'utilizzo dell'esecuzione del processo JNA

Le esecuzioni del processo sono piuttosto pesanti e richiedono alcuni secondi. Ho ragione nel ritenere che i guadagni in termini di prestazioni sarebbero minimi?

+0

Questa è una di quelle domande che mi lascia semplicemente grattarmi la testa, perché sarebbe così facile fare un benchmark per se stessi. –

+3

Per indagare su questo è necessario un impegno di tempo. Dato che gli utenti SO possono già avere un'esperienza del mondo reale nell'utilizzo di JNA, spero di determinare se l'esecuzione di tale benchmark sia degna di tale sforzo. Ad esempio, forse mi è sfuggito qualcosa di ovvio: JNA e sarebbe in effetti un esercizio inutile, anche con un benchmarking ... – teabot

risposta

3

Si potrebbe trovare utile questo: Execute native code via JNI/DLL or EXE?

siamo andati con l'esecuzione nativa. Secondo la risposta accettata, c'è meno rischio di perdite di memoria ed è facile riavviare il processo nativo secondo necessità.