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 - Optimize state of XML lexer
Summary: Optimize state of XML lexer
Status: RESOLVED FIXED
Alias: None
Product: xml
Classification: Unclassified
Component: Lexer (show other bugs)
Version: 7.3
Hardware: PC Linux
: P3 normal (vote)
Assignee: Svata Dedic
URL:
Keywords: PLAN
Depends on:
Blocks: 223953
  Show dependency tree
 
Reported: 2013-02-01 11:10 UTC by Svata Dedic
Modified: 2013-05-02 14:13 UTC (History)
1 user (show)

See Also:
Issue Type: DEFECT
Exception Reporter:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
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