Задать вопрос
nuclear_kote
@nuclear_kote

Возможно ли увеличить пропускную способность JNA?

Есть сишный метод который отдает массив структур (примерно 6000 за раз по ~1кб каждая), жаба его в несколько потоков дергает. в итоге в жабу должно приходить примерно 3 Гбита данных с си++. Почему приходит меньше 1 гбита. Изменение количества потоков в жабе не дает улучшение, так же как и изменение размера пачки в си++, очередь продолжает расти примерно с одной и той же скоростью. Складывается впечатление что просто не хватает пропускной способности

for (int i = 0; i < 6; i++) {
            new Thread(() -> {
                while (true) {
                    StructContainer container = cLib.get();
                    if (container == null || container.size <= 0) {
                        continue;
                    }
                }
            }).start();


struct PacketArray getPacket() {
    struct PacketArray packetArray;
    if (!queue.try_dequeue(packetArray)) {
        packetArray.size = 0;
    }
    return packetArray;
}


на стороне си++ используется moodycamel::ConcurrentQueue.
  • Вопрос задан
  • 116 просмотров
Подписаться 2 Сложный 10 комментариев
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы