trait MemoryOptimisationStrategy[Token <: OptimisationToken] extends AnyRef
Memory usage in DOMs is often dominated by repeated elements. Xerces and co use string tables to optimise memory usage, with DTM a key example.
Performing lookups is expensive so the strategies can have selective levels of lookup. Developers may therefore choose appropriate levels that best fit their trade-off between space and time.
There will, of course, be temporary garbage created for such a scheme but it should pay off for larger messages.
- Alphabetic
- By Inheritance
- MemoryOptimisationStrategy
- AnyRef
- Any
- Hide All
- Show All
- Public
- All
Abstract Value Members
- abstract def createToken(implicit ver: XmlVersion, fromParser: FromParser): Token
Concrete Value Members
-
final
def
!=(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
-
final
def
##(): Int
- Definition Classes
- AnyRef → Any
-
final
def
==(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
-
final
def
asInstanceOf[T0]: T0
- Definition Classes
- Any
-
def
attribute(qname: xml.AttributeQName, value: String, token: Token): Attribute
It is expected that certain attributes have fixed values, ie.
It is expected that certain attributes have fixed values, ie. booleans or based on schema enums etc, this function allows such optimisations.
The qname will have been obtained via a call to either noNamespaceQName, unprefixedQName or prefixedQName, so any optimisations provided by them can be leveraged.
-
def
clone(): AnyRef
- Attributes
- protected[lang]
- Definition Classes
- AnyRef
- Annotations
- @throws( ... ) @native()
-
def
elem(name: QName, attributes: xml.Attributes, namespaces: Map[String, String], token: Token): Elem
For files without large (and varied) attribute counts per repeated element it may represent significant space savings to optimise against the entire Elem itself.
For files without large (and varied) attribute counts per repeated element it may represent significant space savings to optimise against the entire Elem itself.
The Elements QName is garaunteed to be the last QName evaluated via the QName functions (i.e. Attributes are done first then the Elems QName)
-
final
def
eq(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
-
def
equals(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
-
def
finalize(): Unit
- Attributes
- protected[lang]
- Definition Classes
- AnyRef
- Annotations
- @throws( classOf[java.lang.Throwable] )
-
final
def
getClass(): Class[_]
- Definition Classes
- AnyRef → Any
- Annotations
- @native()
-
def
hashCode(): Int
- Definition Classes
- AnyRef → Any
- Annotations
- @native()
-
final
def
isInstanceOf[T0]: Boolean
- Definition Classes
- Any
-
final
def
ne(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
- def noNamespaceQName(local: String, token: Token): NoNamespaceQName
-
final
def
notify(): Unit
- Definition Classes
- AnyRef
- Annotations
- @native()
-
final
def
notifyAll(): Unit
- Definition Classes
- AnyRef
- Annotations
- @native()
- def prefixedQName(local: String, uri: String, prefix: String, token: Token): PrefixedQName
-
final
def
synchronized[T0](arg0: ⇒ T0): T0
- Definition Classes
- AnyRef
-
def
toString(): String
- Definition Classes
- AnyRef → Any
- def unprefixedQName(local: String, uri: String, token: Token): UnprefixedQName
-
final
def
wait(): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws( ... )
-
final
def
wait(arg0: Long, arg1: Int): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws( ... )
-
final
def
wait(arg0: Long): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws( ... ) @native()