[Henry it would be great if you could compare this with your earlier profiles 
when testing.]

Change ptw-20110302-zEx by [email protected] on 2011-03-02 18:20:29 EST
    in /Users/ptw/OpenLaszlo/trunk-devo
    for http://svn.openlaszlo.org/openlaszlo/trunk

Summary: Improve CSS rule parsing

Bugs Fixed: LPP-9785 CSS Parser needs to break up parsing of large rule sets 
(partial)

Technical Reviewer: [email protected] (pending)
QA Reviewer: [email protected] (pending)

Overview:
    Rethink how to partition rules into cohorts:  base on ability to
    discriminate applicability quickly, not on specificity.  Remove
    concat-ing of applicable rules (which is a big overhead in
    time/space for large rule sets), replace with state machine that
    examines rules for applicability and only concats when applicable.

Details:
    huge.css:  Large CSS ruleset for testing

    speedtest.lzx:  Use huge.css, add many styled subviews for lookup
    test.

    LzCSSStyle:  See overview.  Also:  conditionalize debug printer,
    replace StyleDependencies object with a closure, break out
    [name=...] rules to their own cohort, only call the compound rule
    evaluator when the last selector completely matches.

    StyleSheetCompiler:  Sort rules at compile time by specificity to
    reduce runtime sorting overhead.

Tests:
    smokecheck, style/metasuite

Files:
A       test/style/constraints/huge.css
M       test/style/constraints/speedtest.lzx
M       WEB-INF/lps/lfc/services/LzCSSStyle.lzs
M       WEB-INF/lps/server/src/org/openlaszlo/compiler/StyleSheetCompiler.java

Changeset: http://svn.openlaszlo.org/openlaszlo/patches/ptw-20110302-zEx.tar

Reply via email to