ADS 성능 재고: JNI, C++ 통합 및 알림을 통한 개선 노력에도 불구하고 지속적인 병목 현상
본 논문에서는 TwinCAT ADS 프로토콜을 Java 클라이언트 프로그램에 통합할 때 JNI와 C++ 프로그램을 JNA의 대안으로 조사했지만, 읽기 및 쓰기 작업의 성능은 크게 다르지 않다는 것을 발견했습니다. 또한 Java 프로파일러를 사용하여 실행 시간의 95% 이상이 네이티브 라이브러리에서 사용된다는 것을 확인했습니다. 따라서 JNA와 JNI 간의 (예상된) 차이가 없거나 JIT 최적화가 누락된 것은 놀라운 일이 아닙니다. 대안으로 변경 시 알림 기능을 조사한 결과, 충분히 강력한 머신에서 10kHz의 읽기 속도를 달성할 수 있음을 보여주었습니다.