반응형
자바의 네이티브 인터페이스 (JNI)는 C, C++ 등의 네이티브 프로그래밍 언어로 작성된 네이티브 메서드를 호출할 때 사용한다.
네이티브 메서드가 수행하는 계산은 네이티브 언어로 실행되며, 자바언어로 전달된다.
네이티브 기능에 경우 기존에 자바가 많은 발전이 있기전에 기존에 만들어져있는 기능등을 사용하기 위해서 자주 사용되었다.
하지만 자바가 발전하면서 대부분의 기능들이 자바에서 문제없이 사용이 가능하게 되었다.
네이티브 메서드를 사용하는 것 보다, 자바로 새로 구현된 기능을 사용하는 것이 성능이 더 빠르다. 그 이유는 자바에서 사용하는 JVM 속도가 훨씬 개선되어, 1.3 이후부터는 네이티브 메서드를 사용할 필요가 없다.
또한 네이티브 메서드에서 가장 심각한 문제는 안전하지 않기 때문에, 메모리 훼손 문제가 있을 수 있다. 또한 네이티브 메서드는 디버깅도 어렵고 네이티브 코드와 자바코드를 넘나들어야 하기 때문에 기본적이 비용이 들어서 성능이 떨어진다.
그렇기 때문에 네이티브 메서드를 사용하는 것은 자제 하도록 한다.
# 참고 (Memory Corruption)
https://en.wikipedia.org/wiki/Memory_corruption
반응형
'JAVA > Effective Java' 카테고리의 다른 글
규칙 56 - 일반적으로 통용되는 작명 관습을 따르라 (0) | 2018.05.29 |
---|---|
규칙 55 - 신중하게 최적화하라 (0) | 2018.05.29 |
규칙 53 - 리플렉션 대신 인터페이스를 이용하라 (0) | 2018.05.29 |
규칙 52 - 객체를 참조할 때는 그 인터페이스를 사용하라. (0) | 2018.05.29 |
규칙 51 - 문자열 연결 시 성능에 주의하라 (0) | 2018.05.29 |