powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / ByteBufferPool
20 сообщений из 20, страница 1 из 1
ByteBufferPool
    #39031725
freeVan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Всем привет!

У меня такая задача нужен ByteBufferPool.
Использую Intellij IDEA.

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

У меня по умолчанию есть интерфейс ByteBufferPool из пакета com.sun.corba.se.pept.transport.ByteBufferPool.
В пакете есть еще ByteBufferPoolImpl класс, имплементирующий ByteBufferPool , в конструкторе которого объект ORB.

Ну и поискав в сети я нашел много классов которые также реализуют интерфейс ByteBufferPool,
при этом конструкторы эти классов не содержат никаких загадочных для меня параметров.
Я не знаю как эти классы засунуть мне в IDEA.

Вопрос такой, как мне слепить ByteBufferPool из того что имею, или, как мне прикрутить класс ElasticByteBufferPool из пакета org.apache.hadoop.io которого нет в IDEA.

Я умею добавлять репезитории мавен, но пишет No files were downloaded for 'org.apache.hadoop:hadoop-yarn-api:2.7.0'
Помогите мне пожалуйста, ччет не могу сам никак.
...
Рейтинг: 0 / 0
ByteBufferPool
    #39031925
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
мрене нужен пул буферов котрый динамически создает столько буферов сколько просят,
а также уничтожает или както их уменьшает чтоб не хавать память.
Здесь из коробки GC + Weak* коллекции решают базовые задачи которые
возникают у пользователя. Есть также паттерн Object Pool. Ты его нагугишь
легко для всех ЯП. Советовать что-то эдакое можно только вникнув в предметную
область. Я-бы исходил из статистики. Сколько транзакций на создание пула.
Какова средняя минимальная и максимальная длина этих байт массивов и т.п.
Каковы накладные расходы на конструктор. Может пул и ненужен вовсе.
...
Рейтинг: 0 / 0
ByteBufferPool
    #39031927
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторЯ не знаю как эти классы засунуть мне в IDEA.
Фраза требует прояснения. Разработчик не "засовывает" классы в IDEA.
Попробуй использовать терминологию GUI которую ты видишь на экране, если не
можешь сделать технический перевод.
...
Рейтинг: 0 / 0
ByteBufferPool
    #39031929
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторЯ умею добавлять репезитории мавен, но пишет No files were downloaded
Где пишет? Что ты делал ДО этого события?

Артефакт http://mvnrepository.com/artifact/org.apache.hadoop/hadoop-yarn-api/2.7.0
реально существует. Это правда. Но ты делаешь что-то не зависящее от его
существования или несущестоввания
...
Рейтинг: 0 / 0
ByteBufferPool
    #39031933
freeVan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton,

Пишу сервер на noi2.
AsynchronousSocketChannel
к серверу предпологается подключение каналов, для каждого создается ByteBuffer. Вот тут то и необходимо использовать пул, который создает\выделяет ByteBuffer и после операций I/O ByteBuffer передается обратно в пул. Экономит память, так как есть медленные каналы.
...
Рейтинг: 0 / 0
ByteBufferPool
    #39031937
freeVan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton,

Перегрупперую вопрос:

есть класс ElasticByteBufferPool находится в пакете org.apache.hadoop.io .
Как мне установить этот пакет к себе проект?
...
Рейтинг: 0 / 0
ByteBufferPool
    #39031952
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Твой вопрос не по Java. А по среде разработки и системам сборки. Но я уже
устал как Платон задавать вопросы. И прошу тебя опубликовать самодостаточный
архив Idea/Nb/Eclipse/mvn/ant/gradle который моделирует твою ошибку
хотя-бы на уровне HelloWorld.
...
Рейтинг: 0 / 0
ByteBufferPool
    #39031994
mad_nazgul
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
freeVanmayton,

Перегрупперую вопрос:

есть класс ElasticByteBufferPool находится в пакете org.apache.hadoop.io .
Как мне установить этот пакет к себе проект?

Зависит от системы сборки, которая используется.
Для ANT нужно положить в папочку с библиотеками и прописать classpath.

Для maven прописать зависимость в dependences.

В Gradle так же прописать зависимость.

Itelij IDEA работает со всеми тремя и даже немного поможет правильно указать зависимости.
...
Рейтинг: 0 / 0
ByteBufferPool
    #39032070
freeVan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mad_nazgul,


Вы правы, не хватает зависимостей.

Я где их брать чтоб потом с ними чтото делать.
Вот есть похожая проблема и ее вроде как решение:
https://toster.ru/q/90531

Вот эту библиотеку мне нужно добавить:
http://mvnrepository.com/artifact/org.apache.hadoop/hadoop-yarn-api/2.7.0

где взять ее зависимости?
...
Рейтинг: 0 / 0
ByteBufferPool
    #39032110
mad_nazgul
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
freeVanmad_nazgul,


Вы правы, не хватает зависимостей.

Я где их брать чтоб потом с ними чтото делать.
Вот есть похожая проблема и ее вроде как решение:
https://toster.ru/q/90531

Вот эту библиотеку мне нужно добавить:
http://mvnrepository.com/artifact/org.apache.hadoop/hadoop-yarn-api/2.7.0

где взять ее зависимости?

Зависит от вашей системы сборки.

У нас на проектах используют maven.
Обычно Intellij IDEA может сама прописать найти зависимости по классу.

Если не находит, то можно скачать конкретную jar и добавить к себе в локальный репозиторий.
Чуть геморройнее и и переносимость проекта нулевая.
Но как костыль пойдет.
...
Рейтинг: 0 / 0
ByteBufferPool
    #39032140
freeVan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mad_nazgul,

Спасибо вам за вашу активность.

Сначала я скачивал этот jar:
http://mvnrepository.com/artifact/org.apache.hadoop/hadoop-yarn-api
прописывая импорт import org.apache.hadoop.io... ничего не импортировалось.
Как оказалось это не тот файл что мне нужен, он не содержит классы.

Скачал этот jar:
http://mvnrepository.com/artifact/org.apache.hadoop/hadoop-common/2.7.1
и все классы из org.apache.hadoop стали доступны.


В общем еще много чем не умею пользоваться, могу не совсем понятно объяснять что мне необходимо.
...
Рейтинг: 0 / 0
ByteBufferPool
    #39032164
freeVan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mad_nazgul,

Теперь новая проблема.
Класс который мне нужен вроде как есть, и методы есть.
ElasticByteBufferPool.getBuffer() - работает правильно,
ElasticByteBufferPool.putBuffer() - выдает Exception NoClassDefFoundError.

В сети вообще ничего нет про этот класс.
...
Рейтинг: 0 / 0
ByteBufferPool
    #39032171
забыл ник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вас же три раза спросили - какая у вас система сборки? От этого зависит ответ. Судя по всему тот джарник что вы скачали в рантайме зависит еще от одного класса, которого нету в класспас, зачастую это какой нить commons-collections или commons-logging
...
Рейтинг: 0 / 0
ByteBufferPool
    #39032173
freeVan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
забыл ник,

Не понимаю какая у меня система.
Все по дэфолту, как IDEA установил так и пользуюсь, ни плагинов ни чего не качал в нее.
Проект создавал просто new progect - Java - JavaEE - выбрал где JDK и все
...
Рейтинг: 0 / 0
ByteBufferPool
    #39032184
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
ByteBufferPool
    #39032191
freeVan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton,

Да, так и делаю.
...
Рейтинг: 0 / 0
ByteBufferPool
    #39032198
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну... тогда всё как-бы "чики-пики". Всё работает?

И кстати - публикация скринов или сорцов весьма сильно ускоряет решение вопроса. Весьма...
...
Рейтинг: 0 / 0
ByteBufferPool
    #39032203
freeVan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton,

Да тут публиковать нечего почти:

ElasticByteBufferPool pool = new ElasticByteBufferPool();
ByteBuffer buffer = pool.getBuffer(true, 1024);
System.out.println(buffer);
pool.putBuffer(byteBuffer); вот тут то и вылетает

Exception in thread "main" java.lang.NoClassDefFoundError: com/google/common/collect/ComparisonChain
at org.apache.hadoop.io.ElasticByteBufferPool$Key.compareTo(ElasticByteBufferPool.java:51)
at org.apache.hadoop.io.ElasticByteBufferPool$Key.compareTo(ElasticByteBufferPool.java:40)
at java.util.TreeMap.compare(TreeMap.java:1290)
at java.util.TreeMap.put(TreeMap.java:538)
at org.apache.hadoop.io.ElasticByteBufferPool.putBuffer(ElasticByteBufferPool.java:108)
at com.clubok.Testing.main(Testing.java:75)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:497)
at com.intellij.rt.execution.application.AppMain.main(AppMain.java:140)
Caused by: java.lang.ClassNotFoundException: com.google.common.collect.ComparisonChain
at java.net.URLClassLoader.findClass(URLClassLoader.java:381)
at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:331)
at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
... 11 more
...
Рейтинг: 0 / 0
ByteBufferPool
    #39032215
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
По всей видимости нужно подключить Guava ('com.google.guava:guava:xx.x') для фазы runtime.
...
Рейтинг: 0 / 0
ByteBufferPool
    #39032234
freeVan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton,

Супер. ошибки больше нет.

Только вопрос возник:
1 ElasticByteBufferPool pool = new ElasticByteBufferPool(); - создаю пул
2 ByteBuffer buffer = pool.getBuffer(true, 1024); - выделяю из пула байт_буфер
3 System.out.println(buffer); - java.nio.DirectByteBuffer[pos=0 lim=1024 cap=1024]
4 pool.putBuffer(buffer); - возвращаю байт_буфер в пул
5 System.out.println(buffer); - java.nio.DirectByteBuffer[pos=0 lim=1024 cap=1024]


В пункте 5 разве не должен быть NULL ?
...
Рейтинг: 0 / 0
20 сообщений из 20, страница 1 из 1
Форумы / Java [игнор отключен] [закрыт для гостей] / ByteBufferPool
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]