Хроника-Очередь: Почему занято-ожидающий хвостик при вращении генерирует мусор (нечего читать)?

У меня есть цикл ожидания, в котором хвостовик постоянно пытается прочитать из очереди:

      final Bytes<ByteBuffer> bbb = Bytes.elasticByteBuffer(MAX_SIZE, MAX_SIZE);

// Busy wait loop.
while (true) {
    tailer.readDocument(wire -> {
        wire.read().marshallable(m -> {
            m.read(DATA).bytes(bbb, true);
            long rcvAt = m.read(RCVAT).int64();

            System.out.println(rcvAt);
        });
    });
}

Почему этот код генерирует мусор, даже если из очереди нечего читать?

Соответствующие флаги JVM: -server -XX:InitialHeapSize=64m -XX:MaxHeapSize=64m

Журналы сборщика мусора и профиль памяти:

Визуальная виртуальная машина

Журналы GC заполнены такими журналами:

      ...
[30.071s][info][gc     ] GC(1755) Pause Young (Normal) (G1 Evacuation Pause) 23M->6M(30M) 0.250ms
[30.084s][info][gc     ] GC(1756) Pause Young (Normal) (G1 Evacuation Pause) 23M->7M(30M) 0.386ms
[30.096s][info][gc     ] GC(1757) Pause Young (Normal) (G1 Evacuation Pause) 24M->7M(30M) 0.544ms
[30.109s][info][gc     ] GC(1758) Pause Young (Normal) (G1 Evacuation Pause) 24M->7M(30M) 0.759ms
[30.122s][info][gc     ] GC(1759) Pause Young (Normal) (G1 Evacuation Pause) 24M->7M(30M) 0.808ms
[30.135s][info][gc     ] GC(1760) Pause Young (Normal) (G1 Evacuation Pause) 24M->7M(30M) 0.937ms
...

0 ответов

Другие вопросы по тегам