This Bugzilla instance is a read-only archive of historic NetBeans bug reports. To report a bug in NetBeans please follow the project's instructions for reporting issues.

Bug 225628

Summary: Optimize state of XML lexer
Product: xml Reporter: Svata Dedic <sdedic>
Component: LexerAssignee: Svata Dedic <sdedic>
Status: RESOLVED FIXED    
Severity: normal CC: sj-nb
Priority: P3 Keywords: PLAN
Version: 7.3   
Hardware: PC   
OS: Linux   
Issue Type: DEFECT Exception Reporter:
Bug Depends on:    
Bug Blocks: 223953    

Description Svata Dedic 2013-02-01 11:10:30 UTC
The XML lexer uses a bitfield Integer as its state. Since bits are shifted e.g. 24bits, the Integer.valueOf() will not cache the values, and in large documents, an Integer is allocated for each token.
If the bits are used more reasonably (e.g. consider to merge subState and prevState ?), there could be a table of all possible states pre-filled (e.g. 2500 x Integer max ?).

See defect #223953, in a 15M document, number of Integers is 1,9M and their allocated size alone about 23Mbytes.
Comment 1 Svata Dedic 2013-04-29 09:34:35 UTC
implemented in http://hg.netbeans.org/jet-main/rev/4871fcd8e4d9
Comment 2 Quality Engineering 2013-05-02 14:13:54 UTC
Integrated into 'main-golden', will be available in build *201305021042* on http://bits.netbeans.org/dev/nightly/ (upload may still be in progress)
Changeset: http://hg.netbeans.org/main-golden/rev/4871fcd8e4d9
User: Svata Dedic <sdedic@netbeans.org>
Log: #225628: Lexer states reduced so they fit into byte