[ 
https://issues.apache.org/jira/browse/LUCENE-3738?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13242550#comment-13242550
 ] 

Michael McCandless commented on LUCENE-3738:
--------------------------------------------

Removing the asserts apparently didn't change the perf...

I can reproduce the slowdown in a separate test (before/after this commit):

{noformat}
                Task    QPS base StdDev base    QPS vInt StdDev vInt      Pct 
diff
              IntNRQ        7.11        0.89        6.73        0.58  -23% -   
17%
             Prefix3       16.07        0.96       15.65        0.72  -12% -    
8%
            Wildcard       20.14        0.91       19.67        0.77  -10% -    
6%
            PKLookup      154.62        5.08      151.11        2.82   -7% -    
2%
              Fuzzy1       85.24        1.53       83.87        1.18   -4% -    
1%
              Fuzzy2       44.11        1.03       43.96        0.44   -3% -    
3%
            SpanNear        3.23        0.11        3.22        0.07   -5% -    
5%
      TermBGroup1M1P       42.35        0.49       42.43        1.43   -4% -    
4%
             Respell       65.11        1.91       65.27        1.27   -4% -    
5%
          AndHighMed       54.18        4.04       54.50        2.27  -10% -   
13%
         TermGroup1M       31.27        0.35       31.46        0.63   -2% -    
3%
        TermBGroup1M       45.01        0.33       45.37        1.42   -3% -    
4%
         AndHighHigh       13.35        0.71       13.46        0.50   -7% -   
10%
                Term       82.71        3.12       83.56        2.33   -5% -    
7%
           OrHighMed       10.66        0.67       10.78        0.44   -8% -   
12%
          OrHighHigh        7.08        0.42        7.19        0.26   -7% -   
11%
        SloppyPhrase        5.11        0.24        5.20        0.31   -8% -   
13%
              Phrase       11.14        0.75       11.40        0.50   -8% -   
14%
{noformat}

But then Uwe made a patch (I'll attach) reducing the byte code for the
unrolled methods:

{noformat}
                Task    QPS base StdDev base    QPS vInt StdDev vInt      Pct 
diff
            SpanNear        3.24        0.13        3.18        0.07   -7% -    
4%
              Phrase       11.34        0.68       11.13        0.38  -10% -    
7%
        SloppyPhrase        5.17        0.23        5.08        0.18   -9% -    
6%
      TermBGroup1M1P       41.92        0.80       41.57        0.94   -4% -    
3%
         TermGroup1M       30.74        0.68       30.81        0.96   -5% -    
5%
                Term       80.87        3.52       81.29        2.05   -6% -    
7%
        TermBGroup1M       43.94        0.93       44.17        1.32   -4% -    
5%
          AndHighMed       53.71        2.62       54.21        1.97   -7% -    
9%
         AndHighHigh       13.20        0.42       13.41        0.41   -4% -    
8%
             Respell       65.37        2.70       66.53        3.29   -7% -   
11%
              Fuzzy1       84.29        2.11       86.44        3.36   -3% -    
9%
            PKLookup      149.81        4.20      153.87        9.46   -6% -   
12%
          OrHighHigh        7.19        0.28        7.40        0.48   -7% -   
13%
           OrHighMed       10.82        0.43       11.16        0.73   -7% -   
14%
              Fuzzy2       43.72        0.96       45.24        2.03   -3% -   
10%
            Wildcard       18.96        1.00       20.05        0.39   -1% -   
13%
             Prefix3       14.96        0.83       15.89        0.27   -1% -   
14%
              IntNRQ        5.89        0.58        6.95        0.17    4% -   
34%
{noformat}

So... I think we should commit it!

                
> Be consistent about negative vInt/vLong
> ---------------------------------------
>
>                 Key: LUCENE-3738
>                 URL: https://issues.apache.org/jira/browse/LUCENE-3738
>             Project: Lucene - Java
>          Issue Type: Bug
>            Reporter: Michael McCandless
>            Assignee: Uwe Schindler
>             Fix For: 3.6, 4.0
>
>         Attachments: ByteArrayDataInput.java.patch, LUCENE-3738.patch, 
> LUCENE-3738.patch, LUCENE-3738.patch, LUCENE-3738.patch, LUCENE-3738.patch
>
>
> Today, write/readVInt "allows" a negative int, in that it will encode and 
> decode correctly, just horribly inefficiently (5 bytes).
> However, read/writeVLong fails (trips an assert).
> I'd prefer that both vInt/vLong trip an assert if you ever try to write a 
> negative number... it's badly trappy today.  But, unfortunately, we sometimes 
> rely on this... had we had this assert in 'since the beginning' we could have 
> avoided that.
> So, if we can't add that assert in today, I think we should at least fix 
> readVLong to handle negative longs... but then you quietly spend 9 bytes 
> (even more trappy!).

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: 
https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to