bytedeco/javacpp

Struct memory allocation is slow

Open

#299 opened on May 13, 2019

View on GitHub
 (9 comments) (0 reactions) (0 assignees)Java (4,279 stars) (620 forks)batch import
enhancementhelp wanted

Description

I run a simple benchmark calling window API's GetSystemTime using JavaCpp's built-in windows API wrappers. This code allocates a struct, calls the native API and fetches some field from the struct:

		SYSTEMTIME systemtime = new SYSTEMTIME();
		windows.GetSystemTime(systemtime);
		return systemtime.wSecond();

Profiling shows that the first line takes >90% of the overall execution time

image

I believe that there is some space for optimization here. The same thing implemented with Bridj or JNR outperforms JNI+JavaCpp just because of faster allocation, see the benchmark at https://github.com/zakgof/java-native-benchmark.

Say, with Bridj allocation takes <50% of the overall time:

image

Contributor guide

Struct memory allocation is slow · bytedeco/javacpp#299 | Good First Issue