Мы запускаем приложения C ++ Ultra Low-Latence на компьютере Linux, и мы используем закрепленные потоки.
Наши клиенты используют Hazelcast, поэтому мы также используем их для хранения данных в карте. Hazelcast :: Client :: HAZELCAST_CLIENT :: SET_EXECUTOR_POOL_SIZE I Установить размер пула на 1, что немного уменьшенное количество потоков, но он по -прежнему больше 50.
Так большое количество потоков только для написания информации в карту Hazelcast разрушает все наши низкие настройки латентности, как у нас есть 16 -й запас, когда я только что не соответствует переключателям. Хотите записать данные на карту полностью последовательно, и мне здесь не нужна параллелизм.hazelcast::client::client_config hz_config;
hz_config.set_cluster_name("dev");
hazelcast::client::config::client_network_config network_config;
network_config.add_address(hazelcast::client::address("myhost", 12345));
hz_config.set_network_config(network_config);
hz_config.set_property("hazelcast.client.internal.executor.pool.size", "1");
hz_config.set_property("hazelcast.client.event.thread.count", "1");
hz_config.set_property("hazelcast.client.max.concurrent.invocations", "1");
hz_config.set_executor_pool_size(1);
hazelcast::client::hazelcast_client hz_client(hz_config.get());
std::shared_ptr hz_map(hz_client.get_map("matrix_md_map").get());
// hz_map_.put(key, value);
Подробнее здесь: https://stackoverflow.com/questions/796 ... -to-1-or-2