Class ConcurrentQNameMap
java.lang.Object
com.thoughtworks.xstream.io.xml.QNameMap
com.github._1c_syntax.bsl.reader.common.xstream.ConcurrentQNameMap
QNameMap с потокобезопасными картами без блокировок на чтении.
Штатный QNameMap хранит соответствия в Collections.synchronizedMap, а
getJavaClassName(QName) вызывается на каждый XML-элемент. При параллельном чтении
(метаданные читаются parallelStream) все потоки сериализуются на мониторе этой общей
карты — по профилю это заметная доля CPU. Здесь карты — ConcurrentHashMap, чтение
которых свободно от блокировок; отображения регистрируются один раз до начала чтения.
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptiongetJavaClassName(QName qname) voidregisterMapping(QName qname, String javaClassName) Methods inherited from class com.thoughtworks.xstream.io.xml.QNameMap
getDefaultNamespace, getDefaultPrefix, registerMapping, setDefaultNamespace, setDefaultPrefix
-
Constructor Details
-
ConcurrentQNameMap
public ConcurrentQNameMap()
-
-
Method Details
-
getJavaClassName
- Overrides:
getJavaClassNamein classQNameMap
-
getQName
-
registerMapping
- Overrides:
registerMappingin classQNameMap
-