You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@lucenenet.apache.org by ni...@apache.org on 2020/11/12 09:20:00 UTC

[lucenenet] branch master updated (d5c5ca4 -> 1a02f66)

This is an automated email from the ASF dual-hosted git repository.

nightowl888 pushed a change to branch master
in repository https://gitbox.apache.org/repos/asf/lucenenet.git.


    from d5c5ca4  build/Dependencies.props: Downgraded Microsoft.Extensions.Configuration to 2.0.0 to allow applications using older versions to avoid conflicts (#388)
     new c0f9767  Revert "Lucene.Net.Search.FieldCacheImpl: Removed field value types and declared Get methods inline using delegate methods"
     new 1a02f66  Lucene.Net.Search.FieldCacheImpl: Removed unused outerInstance fields and marked fields readonly, as allowed

The 2 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.


Summary of changes:
 src/Lucene.Net/Search/FieldCacheImpl.cs | 102 ++++++++++++++++++++++++++++++--
 1 file changed, 96 insertions(+), 6 deletions(-)


[lucenenet] 01/02: Revert "Lucene.Net.Search.FieldCacheImpl: Removed field value types and declared Get methods inline using delegate methods"

Posted by ni...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

nightowl888 pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/lucenenet.git

commit c0f97677ee8a9f96b72a03782af995488060ebfe
Author: Shad Storhaug <sh...@shadstorhaug.com>
AuthorDate: Wed Nov 4 06:07:56 2020 +0700

    Revert "Lucene.Net.Search.FieldCacheImpl: Removed field value types and declared Get methods inline using delegate methods"
    
    This reverts commit 34758c1315391794825f33a3f48b5a3dd6083745.
    
    As per #370, using delegates creates extra allocations so we trade some maintainability for top performance in this case.
---
 src/Lucene.Net/Search/FieldCacheImpl.cs | 120 ++++++++++++++++++++++++++++++--
 1 file changed, 114 insertions(+), 6 deletions(-)

diff --git a/src/Lucene.Net/Search/FieldCacheImpl.cs b/src/Lucene.Net/Search/FieldCacheImpl.cs
index 569cdec..2640e13 100644
--- a/src/Lucene.Net/Search/FieldCacheImpl.cs
+++ b/src/Lucene.Net/Search/FieldCacheImpl.cs
@@ -580,7 +580,7 @@ namespace Lucene.Net.Search
             {
                 // Not cached here by FieldCacheImpl (cached instead
                 // per-thread by SegmentReader):
-                return new FieldCache.Bytes(get: (docID) => (byte)valuesIn.Get(docID));
+                return new FieldCache_BytesAnonymousInnerClassHelper(this, valuesIn);
             }
             else
             {
@@ -604,6 +604,24 @@ namespace Lucene.Net.Search
             }
         }
 
+        private class FieldCache_BytesAnonymousInnerClassHelper : FieldCache.Bytes
+        {
+            private readonly FieldCacheImpl outerInstance;
+
+            private NumericDocValues valuesIn;
+
+            public FieldCache_BytesAnonymousInnerClassHelper(FieldCacheImpl outerInstance, NumericDocValues valuesIn)
+            {
+                this.outerInstance = outerInstance;
+                this.valuesIn = valuesIn;
+            }
+
+            public override byte Get(int docID)
+            {
+                return (byte)valuesIn.Get(docID);
+            }
+        }
+
         internal class BytesFromArray : FieldCache.Bytes
         {
             private readonly sbyte[] values;
@@ -738,7 +756,7 @@ namespace Lucene.Net.Search
             {
                 // Not cached here by FieldCacheImpl (cached instead
                 // per-thread by SegmentReader):
-                return new FieldCache.Int16s(get: (docID) => (short)valuesIn.Get(docID));
+                return new FieldCache_Int16sAnonymousInnerClassHelper(this, valuesIn);
             }
             else
             {
@@ -760,6 +778,24 @@ namespace Lucene.Net.Search
             }
         }
 
+        private class FieldCache_Int16sAnonymousInnerClassHelper : FieldCache.Int16s
+        {
+            private readonly FieldCacheImpl outerInstance;
+
+            private NumericDocValues valuesIn;
+
+            public FieldCache_Int16sAnonymousInnerClassHelper(FieldCacheImpl outerInstance, NumericDocValues valuesIn)
+            {
+                this.outerInstance = outerInstance;
+                this.valuesIn = valuesIn;
+            }
+
+            public override short Get(int docID)
+            {
+                return (short)valuesIn.Get(docID);
+            }
+        }
+
         /// <summary>
         /// NOTE: This was ShortsFromArray in Lucene
         /// </summary>
@@ -895,7 +931,7 @@ namespace Lucene.Net.Search
             {
                 // Not cached here by FieldCacheImpl (cached instead
                 // per-thread by SegmentReader):
-                return new FieldCache.Int32s(get: (docID) => (int)valuesIn.Get(docID));
+                return new FieldCache_Int32sAnonymousInnerClassHelper(this, valuesIn);
             }
             else
             {
@@ -917,6 +953,24 @@ namespace Lucene.Net.Search
             }
         }
 
+        private class FieldCache_Int32sAnonymousInnerClassHelper : FieldCache.Int32s
+        {
+            private readonly FieldCacheImpl outerInstance;
+
+            private NumericDocValues valuesIn;
+
+            public FieldCache_Int32sAnonymousInnerClassHelper(FieldCacheImpl outerInstance, NumericDocValues valuesIn)
+            {
+                this.outerInstance = outerInstance;
+                this.valuesIn = valuesIn;
+            }
+
+            public override int Get(int docID)
+            {
+                return (int)valuesIn.Get(docID);
+            }
+        }
+
         /// <summary>
         /// NOTE: This was IntsFromArray in Lucene
         /// </summary>
@@ -1175,7 +1229,7 @@ namespace Lucene.Net.Search
             {
                 // Not cached here by FieldCacheImpl (cached instead
                 // per-thread by SegmentReader):
-                return new FieldCache.Singles(get: (docID) => J2N.BitConversion.Int32BitsToSingle((int)valuesIn.Get(docID)));
+                return new FieldCache_SinglesAnonymousInnerClassHelper(this, valuesIn);
             }
             else
             {
@@ -1197,6 +1251,24 @@ namespace Lucene.Net.Search
             }
         }
 
+        private class FieldCache_SinglesAnonymousInnerClassHelper : FieldCache.Singles
+        {
+            private readonly FieldCacheImpl outerInstance;
+
+            private NumericDocValues valuesIn;
+
+            public FieldCache_SinglesAnonymousInnerClassHelper(FieldCacheImpl outerInstance, NumericDocValues valuesIn)
+            {
+                this.outerInstance = outerInstance;
+                this.valuesIn = valuesIn;
+            }
+
+            public override float Get(int docID)
+            {
+                return J2N.BitConversion.Int32BitsToSingle((int)valuesIn.Get(docID));
+            }
+        }
+
         /// <summary>
         /// NOTE: This was FloatsFromArray in Lucene
         /// </summary>
@@ -1326,7 +1398,7 @@ namespace Lucene.Net.Search
             {
                 // Not cached here by FieldCacheImpl (cached instead
                 // per-thread by SegmentReader):
-                return new FieldCache.Int64s(get: (docID) => valuesIn.Get(docID));
+                return new FieldCache_Int64sAnonymousInnerClassHelper(this, valuesIn);
             }
             else
             {
@@ -1348,6 +1420,24 @@ namespace Lucene.Net.Search
             }
         }
 
+        private class FieldCache_Int64sAnonymousInnerClassHelper : FieldCache.Int64s
+        {
+            private readonly FieldCacheImpl outerInstance;
+
+            private NumericDocValues valuesIn;
+
+            public FieldCache_Int64sAnonymousInnerClassHelper(FieldCacheImpl outerInstance, NumericDocValues valuesIn)
+            {
+                this.outerInstance = outerInstance;
+                this.valuesIn = valuesIn;
+            }
+
+            public override long Get(int docID)
+            {
+                return valuesIn.Get(docID);
+            }
+        }
+
         /// <summary>
         /// NOTE: This was LongsFromArray in Lucene
         /// </summary>
@@ -1489,7 +1579,7 @@ namespace Lucene.Net.Search
             {
                 // Not cached here by FieldCacheImpl (cached instead
                 // per-thread by SegmentReader):
-                return new FieldCache.Doubles(get: (docID) => J2N.BitConversion.Int64BitsToDouble(valuesIn.Get(docID)));
+                return new FieldCache_DoublesAnonymousInnerClassHelper(this, valuesIn);
             }
             else
             {
@@ -1511,6 +1601,24 @@ namespace Lucene.Net.Search
             }
         }
 
+        private class FieldCache_DoublesAnonymousInnerClassHelper : FieldCache.Doubles
+        {
+            private readonly FieldCacheImpl outerInstance;
+
+            private NumericDocValues valuesIn;
+
+            public FieldCache_DoublesAnonymousInnerClassHelper(FieldCacheImpl outerInstance, NumericDocValues valuesIn)
+            {
+                this.outerInstance = outerInstance;
+                this.valuesIn = valuesIn;
+            }
+
+            public override double Get(int docID)
+            {
+                return J2N.BitConversion.Int64BitsToDouble(valuesIn.Get(docID));
+            }
+        }
+
         internal class DoublesFromArray : FieldCache.Doubles
         {
             private readonly double[] values;


[lucenenet] 02/02: Lucene.Net.Search.FieldCacheImpl: Removed unused outerInstance fields and marked fields readonly, as allowed

Posted by ni...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

nightowl888 pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/lucenenet.git

commit 1a02f667e7d71a8e22514f1bde68d3167843ca40
Author: Shad Storhaug <sh...@shadstorhaug.com>
AuthorDate: Tue Nov 10 23:26:52 2020 +0700

    Lucene.Net.Search.FieldCacheImpl: Removed unused outerInstance fields and marked fields readonly, as allowed
---
 src/Lucene.Net/Search/FieldCacheImpl.cs | 54 +++++++++++----------------------
 1 file changed, 18 insertions(+), 36 deletions(-)

diff --git a/src/Lucene.Net/Search/FieldCacheImpl.cs b/src/Lucene.Net/Search/FieldCacheImpl.cs
index 2640e13..f00a57c 100644
--- a/src/Lucene.Net/Search/FieldCacheImpl.cs
+++ b/src/Lucene.Net/Search/FieldCacheImpl.cs
@@ -580,7 +580,7 @@ namespace Lucene.Net.Search
             {
                 // Not cached here by FieldCacheImpl (cached instead
                 // per-thread by SegmentReader):
-                return new FieldCache_BytesAnonymousInnerClassHelper(this, valuesIn);
+                return new FieldCache_BytesAnonymousInnerClassHelper(valuesIn);
             }
             else
             {
@@ -606,13 +606,10 @@ namespace Lucene.Net.Search
 
         private class FieldCache_BytesAnonymousInnerClassHelper : FieldCache.Bytes
         {
-            private readonly FieldCacheImpl outerInstance;
-
-            private NumericDocValues valuesIn;
+            private readonly NumericDocValues valuesIn;
 
-            public FieldCache_BytesAnonymousInnerClassHelper(FieldCacheImpl outerInstance, NumericDocValues valuesIn)
+            public FieldCache_BytesAnonymousInnerClassHelper(NumericDocValues valuesIn)
             {
-                this.outerInstance = outerInstance;
                 this.valuesIn = valuesIn;
             }
 
@@ -756,7 +753,7 @@ namespace Lucene.Net.Search
             {
                 // Not cached here by FieldCacheImpl (cached instead
                 // per-thread by SegmentReader):
-                return new FieldCache_Int16sAnonymousInnerClassHelper(this, valuesIn);
+                return new FieldCache_Int16sAnonymousInnerClassHelper(valuesIn);
             }
             else
             {
@@ -780,13 +777,10 @@ namespace Lucene.Net.Search
 
         private class FieldCache_Int16sAnonymousInnerClassHelper : FieldCache.Int16s
         {
-            private readonly FieldCacheImpl outerInstance;
-
-            private NumericDocValues valuesIn;
+            private readonly NumericDocValues valuesIn;
 
-            public FieldCache_Int16sAnonymousInnerClassHelper(FieldCacheImpl outerInstance, NumericDocValues valuesIn)
+            public FieldCache_Int16sAnonymousInnerClassHelper(NumericDocValues valuesIn)
             {
-                this.outerInstance = outerInstance;
                 this.valuesIn = valuesIn;
             }
 
@@ -931,7 +925,7 @@ namespace Lucene.Net.Search
             {
                 // Not cached here by FieldCacheImpl (cached instead
                 // per-thread by SegmentReader):
-                return new FieldCache_Int32sAnonymousInnerClassHelper(this, valuesIn);
+                return new FieldCache_Int32sAnonymousInnerClassHelper(valuesIn);
             }
             else
             {
@@ -955,13 +949,10 @@ namespace Lucene.Net.Search
 
         private class FieldCache_Int32sAnonymousInnerClassHelper : FieldCache.Int32s
         {
-            private readonly FieldCacheImpl outerInstance;
+            private readonly NumericDocValues valuesIn;
 
-            private NumericDocValues valuesIn;
-
-            public FieldCache_Int32sAnonymousInnerClassHelper(FieldCacheImpl outerInstance, NumericDocValues valuesIn)
+            public FieldCache_Int32sAnonymousInnerClassHelper(NumericDocValues valuesIn)
             {
-                this.outerInstance = outerInstance;
                 this.valuesIn = valuesIn;
             }
 
@@ -1229,7 +1220,7 @@ namespace Lucene.Net.Search
             {
                 // Not cached here by FieldCacheImpl (cached instead
                 // per-thread by SegmentReader):
-                return new FieldCache_SinglesAnonymousInnerClassHelper(this, valuesIn);
+                return new FieldCache_SinglesAnonymousInnerClassHelper(valuesIn);
             }
             else
             {
@@ -1253,13 +1244,10 @@ namespace Lucene.Net.Search
 
         private class FieldCache_SinglesAnonymousInnerClassHelper : FieldCache.Singles
         {
-            private readonly FieldCacheImpl outerInstance;
-
-            private NumericDocValues valuesIn;
+            private readonly NumericDocValues valuesIn;
 
-            public FieldCache_SinglesAnonymousInnerClassHelper(FieldCacheImpl outerInstance, NumericDocValues valuesIn)
+            public FieldCache_SinglesAnonymousInnerClassHelper(NumericDocValues valuesIn)
             {
-                this.outerInstance = outerInstance;
                 this.valuesIn = valuesIn;
             }
 
@@ -1398,7 +1386,7 @@ namespace Lucene.Net.Search
             {
                 // Not cached here by FieldCacheImpl (cached instead
                 // per-thread by SegmentReader):
-                return new FieldCache_Int64sAnonymousInnerClassHelper(this, valuesIn);
+                return new FieldCache_Int64sAnonymousInnerClassHelper(valuesIn);
             }
             else
             {
@@ -1422,13 +1410,10 @@ namespace Lucene.Net.Search
 
         private class FieldCache_Int64sAnonymousInnerClassHelper : FieldCache.Int64s
         {
-            private readonly FieldCacheImpl outerInstance;
-
-            private NumericDocValues valuesIn;
+            private readonly NumericDocValues valuesIn;
 
-            public FieldCache_Int64sAnonymousInnerClassHelper(FieldCacheImpl outerInstance, NumericDocValues valuesIn)
+            public FieldCache_Int64sAnonymousInnerClassHelper(NumericDocValues valuesIn)
             {
-                this.outerInstance = outerInstance;
                 this.valuesIn = valuesIn;
             }
 
@@ -1579,7 +1564,7 @@ namespace Lucene.Net.Search
             {
                 // Not cached here by FieldCacheImpl (cached instead
                 // per-thread by SegmentReader):
-                return new FieldCache_DoublesAnonymousInnerClassHelper(this, valuesIn);
+                return new FieldCache_DoublesAnonymousInnerClassHelper(valuesIn);
             }
             else
             {
@@ -1603,13 +1588,10 @@ namespace Lucene.Net.Search
 
         private class FieldCache_DoublesAnonymousInnerClassHelper : FieldCache.Doubles
         {
-            private readonly FieldCacheImpl outerInstance;
+            private readonly NumericDocValues valuesIn;
 
-            private NumericDocValues valuesIn;
-
-            public FieldCache_DoublesAnonymousInnerClassHelper(FieldCacheImpl outerInstance, NumericDocValues valuesIn)
+            public FieldCache_DoublesAnonymousInnerClassHelper(NumericDocValues valuesIn)
             {
-                this.outerInstance = outerInstance;
                 this.valuesIn = valuesIn;
             }