Рейтинг темы:
  • 0 Голос(ов) - 0 в среднем
  • 1
  • 2
  • 3
  • 4
  • 5
Проблемы с javolution FastMap
#1
Уважаемые гуру java у меня небольшой вопрос.

При использовании FastMap иногда в сборке вылетают исключения вида:

При вызове:
myFastMap.get(key);
Цитата:java.lang.NullPointerException
at javolution.util.FastMap.getEntry(FastMap.java:418)
at javolution.util.FastMap.get(FastMap.java:406)

На строке цикла вида:
for (Object value: myFastMap.values())
Цитата:java.lang.NullPointerException
at javolution.util.FastMap$Entry.access$000(FastMap.java:1576)
at javolution.util.FastMap$ValueIterator.next(FastMap.java:1201)

1. Это кривизна FastMap и желательно от него отказаться?
2. Коллизии при использовании коллекции в многопоточном приложении без синхронизации?
Ответ
#2
Варианта 2
1) посмотри в исходнике и исправь
2) я выкладывал на другом форуме ммо javolution-5.5.1 fixed
Ответ
#3
У меня нет исходников javolution
Ответ
#4
не реклама
http://javolution.org/
Ответ
#5
Спасибо.
А вообще в чем преимущества FastMap по сравнению скажем с обычным HashMap или ConcurrentHashMap?
Действительно оно намного более Fast?
Кстати пишут что FastMap потоко безопасен. Значит скорее всего косяк внутри библиотеки моей версии.
Ответ
#6
flopix;432535 Написал:А вообще в чем преимущества FastMap по сравнению скажем с обычным HashMap или ConcurrentHashMap?
В том что там используется пул для нод/бакетов/других inner-объектов из-за чего не происходит де-аллокации/алокации памяти на каждое modify-действие. И некоторые другие изменения, вроде weak interator из коробки для любых коллекций.


flopix;432531 Написал:желательно от него отказаться?
Такое обычно используется в исключительных ситуациях (realtime java / глубокие оптимизации под конкретную задачу / ...), людьми, которые понимают что они делают и зачем. В остальных случаях это излишне, в добавок, при неправильном использовании может еще сожрать огромное количество памяти и даже тормозить на вытаскивании/возвращении в пул объектов, если пул огромен (пул там кстати wait-free, хе-хе).

Если Вы не знаете нахрена этот джаволюшен нужен, чем он отличается от дефолтных коллекций, то он Вам не нужен и даже вреден.
m0nster.art - clear client patches, linkz to utils & code.
Гадаю по капче.
Ответ
#7
Javolution - это библиотека в реальном времени, которая позволяет быстрее и быстрее прогнозировать Java или Java-Like / C ++. Действительно, предсказание времени может быть легко разрушено за счет использования стандартной библиотеки, которая неприемлема для критически важных систем.
:ugar: Прямо с вики
[Изображение: eef130fb094bcb48c1580f140a110d2f.png]

[Изображение: klichko_96841852_orig_.jpg]
Ответ


Возможно похожие темы ...
Тема Автор Ответы Просмотры Последний пост
  Проблемы с Java (memory allocation) linliss 20 8,105 04-21-2013, 10:45 PM
Последний пост: linliss

Перейти к форуму:


Пользователи, просматривающие эту тему: 2 Гость(ей)