Hi Denis,

Interesting results. Note that sun-jdk7 is already showing some regressions so the more intesting results are the old-to-new pisces comparisons. It's interesting to note that non-AA dashed ovals took a much bigger hit than AA dashed ovals so we need to see which code is fielding those and see what its issue is.

I'd stick with the new algorithm and lets look for ways to make dashed curves go faster. I know there are better "curve length" algorithms we could incorporate, but let's get a stake in the ground before we consider going back to flattening...

                        ...jim

On 10/22/2010 2:25 PM, Denis Lila wrote:
Hi Jim.

I was going to run these today, but fixing the dashing bug above and
rerunning the tests took a while and it's already 8:30 pm here and I
have to go home. I'll run them tomorrow morning.

I ran the benchmarks. I've attached the options file. I ran benchmarks
of my icedtea installation, closed source java, openjdk7 without the
webrev, and openjdk7 with the webrev.

The results files are at http://icedtea.classpath.org/~dlila/benchResults/
I think the names are pretty self explanatory.

The html comparisons are:
jdk6 vs latest work:
http://icedtea.classpath.org/~dlila/benchResults/JDK6vsLatest_html/Summary_Report.html

closed source vs latest work:
http://icedtea.classpath.org/~dlila/benchResults/SUNvsLatest_html/Summary_Report.html

and most importantly:
previous version of pisces in openjdk7 vs latest work:
http://icedtea.classpath.org/~dlila/benchResults/PrevVsLatest_html/Summary_Report.html

The improvements are significant. Running J2DAnalyzer on all the results files 
with
jdk6Bench.res as the basis produces the following summary:

Summary:
   jdk6Bench:
     Number of tests:  104
     Overall average:  311110.7986576862
     Best spread:      0.0% variance
     Worst spread:     10.96% variance
     (Basis for results comparison)

   sunBench:
     Number of tests:  104
     Overall average:  276654.4443479696
     Best spread:      0.25% variance
     Worst spread:     19.28% variance
     Comparison to basis:
       Best result:      6488.34% of basis
       Worst result:     43.74% of basis
       Number of wins:   80
       Number of ties:   2
       Number of losses: 22

   prevPisces:
     Number of tests:  104
     Overall average:  221539.3516605794
     Best spread:      0.08% variance
     Worst spread:     5.54% variance
     Comparison to basis:
       Best result:      350.33% of basis
       Worst result:     55.0% of basis
       Number of wins:   57
       Number of ties:   10
       Number of losses: 37

   latestPisces:
     Number of tests:  104
     Overall average:  226762.64157611743
     Best spread:      0.0% variance
     Worst spread:     3.03% variance
     Comparison to basis:
       Best result:      501.86% of basis
       Worst result:     26.23% of basis
       Number of wins:   72
       Number of ties:   4
       Number of losses: 28


But unfortunately, if you look at the individual test cases in the html
reports there are also some stepbacks, most notably in the dashing of
anything that isn't a straight line. In fact, the results of drawOval
show a 50%-500% improvement in non dashed drawing, and a 50%-25% deterioration
in dashed drawing. I was expecting this, after the binary search algorithm.
I've been thinking it might be better if we just go with the old algorithm
and simply use Dasher.LengthIterator to flatten the curves and feed the lines
to lineTo. Or we could just go with what we have and hope we find a better
algorithm.

Regards,
Denis.

Reply via email to