В чем разница между лимитом и емкостью в ByteBuffer?

В API запросов нет или нечетких методов сопоставления, которые вы, вероятно, уже догадались, если вы проверили API и руководство по запросам .

Не только обсуждался этот вопрос ad nauseam на SO [ 1 ] [ 2 ] [ 3 ] [ ] 4 ] [ 5 ], но я несколько раз затрагивал, почему нужно использовать реальную поисковую систему , вместо того, основанный на поиске.

Существует причина, по которой веб-сайту Google часто легче найти результаты, чем использовать встроенный поиск, и это является основным компонентом этого сбоя.

Со всеми что ответ на ваш вопрос о том, как это сделать вручную, поскольку нет встроенных содержит, заключается в том, чтобы настроить серверный процесс, который загружает / передает данные в память и выполняет ручной поиск содержимого, предпочтительно с помощью своего рода кеширование.

Но, честно говоря, ElasticSearch быстрее и проще и эффективнее здесь. Поскольку это обширная тема, я отложу вас на сообщение в блоге по этому вопросу .

41
задан Jacek Laskowski 24 October 2016 в 13:22
поделиться

2 ответа

Его лучше всего проиллюстрировать ЗДЕСЬ в этой статье : в основном они различаются в зависимости от режима,

  • В Режим записи Емкость и предел одинаковы.
  • Но в режиме Read Limit означает предел того, сколько данных вы можете прочитать из данных

enter image description here

50
ответ дан Sab 24 October 2016 в 13:22
поделиться

емкость - это максимальный размер буфера, который определяется при создании буфера и никогда не изменяется, предел - это фактический размер, который можно изменить. Вы не можете читать или писать без ограничений.

    ByteBuffer b= ByteBuffer.allocate(10); // capacity = 10, limit = 10
    b.limit(1);    //set limit to 1
    b.put((byte)1);
    b.put((byte)1); //causes java.nio.BufferOverflowException
3
ответ дан Evgeniy Dorofeev 24 October 2016 в 13:22
поделиться
Другие вопросы по тегам:

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