Не должно быть такой разницы.
Исключаете ли вы создание и удаление экземпляра Hazelcast из ваших измерений?
После JMH Microbenchmark дает мне одинаковые числа в обоих случаях - когда Hazelcast создается + уничтожается и когда он полностью опускается:
@State(Scope.Benchmark)
public static class ExecutionPlan {
@Setup(Level.Trial)
public void setUp() {
Hazelcast.newHazelcastInstance().shutdown();
}
}
@Benchmark
public static void test(ExecutionPlan plan, Blackhole bh) throws Exception {
long[] numbers = new long[2<<20];
for (int i=0; i<numbers.length; i++) {
numbers[i] = i;
}
for (int i=0; i<numbers.length; i++) {
byte[] bytes = Long.toString(numbers[i]).getBytes("UTF-8");
bh.consume(MessageDigest.getInstance("SHA-1").digest(bytes));
}
}
Если вы по-прежнему испытываете снижение производительности, поделитесь кодом, воспроизводящим проблему, пожалуйста.