|
|
|
ByteBufferPool
|
|||
|---|---|---|---|
|
#18+
Всем привет! У меня такая задача нужен 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' Помогите мне пожалуйста, ччет не могу сам никак. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.08.2015, 15:34 |
|
||
|
ByteBufferPool
|
|||
|---|---|---|---|
|
#18+
мрене нужен пул буферов котрый динамически создает столько буферов сколько просят, а также уничтожает или както их уменьшает чтоб не хавать память. Здесь из коробки GC + Weak* коллекции решают базовые задачи которые возникают у пользователя. Есть также паттерн Object Pool. Ты его нагугишь легко для всех ЯП. Советовать что-то эдакое можно только вникнув в предметную область. Я-бы исходил из статистики. Сколько транзакций на создание пула. Какова средняя минимальная и максимальная длина этих байт массивов и т.п. Каковы накладные расходы на конструктор. Может пул и ненужен вовсе. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.08.2015, 21:56 |
|
||
|
ByteBufferPool
|
|||
|---|---|---|---|
|
#18+
авторЯ не знаю как эти классы засунуть мне в IDEA. Фраза требует прояснения. Разработчик не "засовывает" классы в IDEA. Попробуй использовать терминологию GUI которую ты видишь на экране, если не можешь сделать технический перевод. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.08.2015, 21:59 |
|
||
|
ByteBufferPool
|
|||
|---|---|---|---|
|
#18+
авторЯ умею добавлять репезитории мавен, но пишет No files were downloaded Где пишет? Что ты делал ДО этого события? Артефакт http://mvnrepository.com/artifact/org.apache.hadoop/hadoop-yarn-api/2.7.0 реально существует. Это правда. Но ты делаешь что-то не зависящее от его существования или несущестоввания ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.08.2015, 22:01 |
|
||
|
ByteBufferPool
|
|||
|---|---|---|---|
|
#18+
mayton, Пишу сервер на noi2. AsynchronousSocketChannel к серверу предпологается подключение каналов, для каждого создается ByteBuffer. Вот тут то и необходимо использовать пул, который создает\выделяет ByteBuffer и после операций I/O ByteBuffer передается обратно в пул. Экономит память, так как есть медленные каналы. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.08.2015, 22:09 |
|
||
|
ByteBufferPool
|
|||
|---|---|---|---|
|
#18+
mayton, Перегрупперую вопрос: есть класс ElasticByteBufferPool находится в пакете org.apache.hadoop.io . Как мне установить этот пакет к себе проект? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.08.2015, 22:22 |
|
||
|
ByteBufferPool
|
|||
|---|---|---|---|
|
#18+
Твой вопрос не по Java. А по среде разработки и системам сборки. Но я уже устал как Платон задавать вопросы. И прошу тебя опубликовать самодостаточный архив Idea/Nb/Eclipse/mvn/ant/gradle который моделирует твою ошибку хотя-бы на уровне HelloWorld. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.08.2015, 23:14 |
|
||
|
ByteBufferPool
|
|||
|---|---|---|---|
|
#18+
freeVanmayton, Перегрупперую вопрос: есть класс ElasticByteBufferPool находится в пакете org.apache.hadoop.io . Как мне установить этот пакет к себе проект? Зависит от системы сборки, которая используется. Для ANT нужно положить в папочку с библиотеками и прописать classpath. Для maven прописать зависимость в dependences. В Gradle так же прописать зависимость. Itelij IDEA работает со всеми тремя и даже немного поможет правильно указать зависимости. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.08.2015, 06:26 |
|
||
|
ByteBufferPool
|
|||
|---|---|---|---|
|
#18+
mad_nazgul, Вы правы, не хватает зависимостей. Я где их брать чтоб потом с ними чтото делать. Вот есть похожая проблема и ее вроде как решение: https://toster.ru/q/90531 Вот эту библиотеку мне нужно добавить: http://mvnrepository.com/artifact/org.apache.hadoop/hadoop-yarn-api/2.7.0 где взять ее зависимости? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.08.2015, 09:42 |
|
||
|
ByteBufferPool
|
|||
|---|---|---|---|
|
#18+
freeVanmad_nazgul, Вы правы, не хватает зависимостей. Я где их брать чтоб потом с ними чтото делать. Вот есть похожая проблема и ее вроде как решение: https://toster.ru/q/90531 Вот эту библиотеку мне нужно добавить: http://mvnrepository.com/artifact/org.apache.hadoop/hadoop-yarn-api/2.7.0 где взять ее зависимости? Зависит от вашей системы сборки. У нас на проектах используют maven. Обычно Intellij IDEA может сама прописать найти зависимости по классу. Если не находит, то можно скачать конкретную jar и добавить к себе в локальный репозиторий. Чуть геморройнее и и переносимость проекта нулевая. Но как костыль пойдет. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.08.2015, 10:24 |
|
||
|
ByteBufferPool
|
|||
|---|---|---|---|
|
#18+
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 стали доступны. В общем еще много чем не умею пользоваться, могу не совсем понятно объяснять что мне необходимо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.08.2015, 10:50 |
|
||
|
ByteBufferPool
|
|||
|---|---|---|---|
|
#18+
mad_nazgul, Теперь новая проблема. Класс который мне нужен вроде как есть, и методы есть. ElasticByteBufferPool.getBuffer() - работает правильно, ElasticByteBufferPool.putBuffer() - выдает Exception NoClassDefFoundError. В сети вообще ничего нет про этот класс. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.08.2015, 11:22 |
|
||
|
ByteBufferPool
|
|||
|---|---|---|---|
|
#18+
вас же три раза спросили - какая у вас система сборки? От этого зависит ответ. Судя по всему тот джарник что вы скачали в рантайме зависит еще от одного класса, которого нету в класспас, зачастую это какой нить commons-collections или commons-logging ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.08.2015, 11:27 |
|
||
|
ByteBufferPool
|
|||
|---|---|---|---|
|
#18+
забыл ник, Не понимаю какая у меня система. Все по дэфолту, как IDEA установил так и пользуюсь, ни плагинов ни чего не качал в нее. Проект создавал просто new progect - Java - JavaEE - выбрал где JDK и все ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.08.2015, 11:37 |
|
||
|
ByteBufferPool
|
|||
|---|---|---|---|
|
#18+
freeVan, почитай тут https://www.jetbrains.com/idea/help/configuring-module-dependencies-and-libraries.html#d1552849e472 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.08.2015, 11:53 |
|
||
|
ByteBufferPool
|
|||
|---|---|---|---|
|
#18+
mayton, Да, так и делаю. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.08.2015, 12:01 |
|
||
|
ByteBufferPool
|
|||
|---|---|---|---|
|
#18+
Ну... тогда всё как-бы "чики-пики". Всё работает? И кстати - публикация скринов или сорцов весьма сильно ускоряет решение вопроса. Весьма... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.08.2015, 12:05 |
|
||
|
ByteBufferPool
|
|||
|---|---|---|---|
|
#18+
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 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.08.2015, 12:10 |
|
||
|
ByteBufferPool
|
|||
|---|---|---|---|
|
#18+
По всей видимости нужно подключить Guava ('com.google.guava:guava:xx.x') для фазы runtime. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.08.2015, 12:24 |
|
||
|
ByteBufferPool
|
|||
|---|---|---|---|
|
#18+
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 ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.08.2015, 12:34 |
|
||
|
|

start [/forum/topic.php?fid=59&msg=39031933&tid=2125034]: |
0ms |
get settings: |
7ms |
get forum list: |
8ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
233ms |
get topic data: |
7ms |
get forum data: |
1ms |
get page messages: |
46ms |
get tp. blocked users: |
1ms |
| others: | 255ms |
| total: | 562ms |

| 0 / 0 |
