Почему Hazelcast перетаскивает производительность, хотя и не работает? - PullRequest
0 голосов
/ 15 июня 2019

Hazelcast не полностью отключается.По крайней мере, так говорит мой анализ производительности.Если я выполняю приведенный ниже код (экземпляр hazelcast сформировал кластер с ровно одним другим узлом в другом виртуальном узле в той же сети), он постоянно на 10-20% медленнее, чем выполнение кода без создания экземпляра hazelcast.Что действительно заставляет меня задуматься, так это потеря производительности, хотя и до завершения работы экземпляра hazelcast.

HazelcastInstance hi = Hazelcast.newHazelcastInstance()
hi.shutdown
... code goes here ...

1 Ответ

1 голос
/ 17 июня 2019

Не должно быть такой разницы.

Исключаете ли вы создание и удаление экземпляра 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));
    }
}

Если вы по-прежнему испытываете снижение производительности, поделитесь кодом, воспроизводящим проблему, пожалуйста.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...