Как избежать автобоксов примитивов в массивах в javonet - PullRequest
0 голосов
/ 24 апреля 2018

Согласно примеру в https://www.javonet.com/java-devs/guides/working-with-net-arrays-and-collections-from-java-with-javonet/,, если dll, которую вызывает Java, возвращает массив целых, Javonet будет отображать только массив классов Integer (не примитивов). Поскольку в моем случае массивы огромны (массивы ~ 2 ГБ), есть ли какой-нибудь способ для Javonet НЕ выполнять автоматическую коробку, а вместо этого возвращать массив примитивов?

1 Ответ

0 голосов
/ 28 апреля 2018

Мы внедрили механизм, позволяющий вам выбирать, должен ли Javonet возвращать упакованные или распакованные массивы. Он может использоваться для всей области вашего приложения или временно настраиваться для определенных операций, однако следует помнить, что его бета-сборка и параметр влияют на все потоки, поэтому при их выборочном использовании следует использовать с осторожностью.

Пожалуйста, используйте эту сборку: http://download.javonet.com/1.5/javonet-1.5hf15-primitivearrays-opti-jtdn.jar

Чтобы активировать режим примитивных массивов, вызовите в любое время:

Javonet.setUsePrimitiveArrays(true);

Этот режим влияет на все типы примитивов: int, long, short, byte, float, double, boolean, char ... Чтобы отменить этот режим, просто установите "false".

После подтверждения того, что это повышает вашу производительность, мы включим его в окончательную сборку и обновим этот ответ соответственно.

...