Performace e Java Native Interface

2 respostas
Rubem_Azenha

pessoal, como é a performace do java qndo se usa Java Native Interface(JNI)
tipo, perde velocidade?

2 Respostas

Luca

Olá

O uso de JNI compõe-se de 3 partes:
1.- O que foi feito em Java
2 - O que foi feito em C (ou qualquer outra linguagem que se pode escrever bibliotecas carregadas dinâmicamente)
3 - Transição entre as 2 linguagens com as conversões de dados e alocações de memória entre elas.

Para executar o passo (3), estão disponíveis uma séria limitada de funções cujo principal objetivo não é a performance. Aqui é que reside o motivo da sua pergunta, já que em (1) ou (2) JNI não tem nada a ver. O Java quando chama classes nativa usa uma gama mais ampla que permite melhor performance, mas estes pacotes não estão documentados e disponíveis para o programador.

Conclusão: usar JNI nem sempre melhora a performance do sistema porque há um pequeno atraso na transição entre as 2 linguagens que as vezes não compensa a adoção de outras linguagens para executar tarefas específicas que o Java também é capaz de fazer. Quase sempre é melhor usar o JNI somente quando o Java não é capaz de fazer como por exemplo acessar uma DLL de uma impressora fiscal.

[]s
Luca

louds

JNI, via de régra, é leeeeento. Estou me referindo ao bridge java -> nativo e não a performance do código nativo ou do java.

Criado 10 de setembro de 2004
Ultima resposta 11 de set. de 2004
Respostas 2
Participantes 3