- [Obsolete("Use Dispose() instead")]
+ //[Obsolete("Use Dispose() instead")]
public override void Close()
{
Dispose();
Is Close obsolete or not?...
On Mon, Jun 18, 2012 at 1:21 AM, <[email protected]> wrote:
> Author: ccurrens
> Date: Sun Jun 17 22:21:07 2012
> New Revision: 1351173
>
> URL: http://svn.apache.org/viewvc?rev=1351173&view=rev
> Log:
> [LUCENENET-495] - Replaced several instances of DateTime.Now with
> DateTime.UtcNow. Improves performance by ~31%
>
> Modified:
> incubator/lucene.net/trunk/src/core/Index/ReusableStringReader.cs
> incubator/lucene.net/trunk/src/core/Index/SegmentInfos.cs
> incubator/lucene.net/trunk/src/core/Index/Term.cs
> incubator/lucene.net/trunk/src/core/Lucene.Net.csproj
> incubator/lucene.net/trunk/src/core/Search/FilterManager.cs
> incubator/lucene.net/trunk/src/core/Store/RAMDirectory.cs
> incubator/lucene.net/trunk/src/core/Store/RAMFile.cs
> incubator/lucene.net/trunk/src/core/Store/RAMOutputStream.cs
> incubator/lucene.net/trunk/src/core/Support/CollectionsHelper.cs
>
> Modified: incubator/
> lucene.net/trunk/src/core/Index/ReusableStringReader.cs
> URL:
> http://svn.apache.org/viewvc/incubator/lucene.net/trunk/src/core/Index/ReusableStringReader.cs?rev=1351173&r1=1351172&r2=1351173&view=diff
>
> ==============================================================================
> ---
> incubator/lucene.net/trunk/src/core/Index/ReusableStringReader.cs(original)
> +++ incubator/lucene.net/trunk/src/core/Index/ReusableStringReader.cs Sun
> Jun 17 22:21:07 2012
> @@ -67,7 +67,7 @@ namespace Lucene.Net.Index
> }
> }
>
> - [Obsolete("Use Dispose() instead")]
> + //[Obsolete("Use Dispose() instead")]
> public override void Close()
> {
> Dispose();
>
> Modified: incubator/lucene.net/trunk/src/core/Index/SegmentInfos.cs
> URL:
> http://svn.apache.org/viewvc/incubator/lucene.net/trunk/src/core/Index/SegmentInfos.cs?rev=1351173&r1=1351172&r2=1351173&view=diff
>
> ==============================================================================
> --- incubator/lucene.net/trunk/src/core/Index/SegmentInfos.cs (original)
> +++ incubator/lucene.net/trunk/src/core/Index/SegmentInfos.cs Sun Jun 17
> 22:21:07 2012
> @@ -121,7 +121,7 @@ namespace Lucene.Net.Index
> /// <summary> counts how often the index has been changed
> by adding or deleting docs.
> /// starting with the current time in milliseconds forces
> to create unique version numbers.
> /// </summary>
> - private long version = (DateTime.Now.Ticks /
> TimeSpan.TicksPerMillisecond);
> + private long version = (DateTime.UtcNow.Ticks /
> TimeSpan.TicksPerMillisecond);
>
> private long generation = 0; // generation of the
> "segments_N" for the next commit
> private long lastGeneration = 0; // generation of the
> "segments_N" file we last successfully read
> @@ -303,7 +303,7 @@ namespace Lucene.Net.Index
> {
> // in old format the version number
> may be at the end of the file
> if (input.FilePointer >=
> input.Length())
> - version =
> (DateTime.Now.Ticks / TimeSpan.TicksPerMillisecond);
> + version =
> (DateTime.UtcNow.Ticks / TimeSpan.TicksPerMillisecond);
> // old file format without version
> number
> else
> version = input.ReadLong();
> // read version
>
> Modified: incubator/lucene.net/trunk/src/core/Index/Term.cs
> URL:
> http://svn.apache.org/viewvc/incubator/lucene.net/trunk/src/core/Index/Term.cs?rev=1351173&r1=1351172&r2=1351173&view=diff
>
> ==============================================================================
> --- incubator/lucene.net/trunk/src/core/Index/Term.cs (original)
> +++ incubator/lucene.net/trunk/src/core/Index/Term.cs Sun Jun 17 22:21:07
> 2012
> @@ -141,12 +141,12 @@ namespace Lucene.Net.Index
> return String.CompareOrdinal(field,
> other.field);
> }
>
> - /// <summary>Resets the field and text of a Term.
> </summary>
> - internal void Set(System.String fld, System.String txt)
> - {
> - field = fld;
> - text = txt;
> - }
> + ///// <summary>Resets the field and text of a Term. </summary>
> + //internal void Set(System.String fld, System.String txt)
> + //{
> + // field = fld;
> + // text = txt;
> + //}
>
> public override System.String ToString()
> {
>
> Modified: incubator/lucene.net/trunk/src/core/Lucene.Net.csproj
> URL:
> http://svn.apache.org/viewvc/incubator/lucene.net/trunk/src/core/Lucene.Net.csproj?rev=1351173&r1=1351172&r2=1351173&view=diff
>
> ==============================================================================
> --- incubator/lucene.net/trunk/src/core/Lucene.Net.csproj (original)
> +++ incubator/lucene.net/trunk/src/core/Lucene.Net.csproj Sun Jun 17
> 22:21:07 2012
> @@ -86,7 +86,7 @@
> <WarningLevel>4</WarningLevel>
> <DebugType>full</DebugType>
> <ErrorReport>prompt</ErrorReport>
> -
> <CodeAnalysisRuleSet>BasicDesignGuidelineRules.ruleset</CodeAnalysisRuleSet>
> + <CodeAnalysisRuleSet>blah.ruleset</CodeAnalysisRuleSet>
> <RunCodeAnalysis>false</RunCodeAnalysis>
> </PropertyGroup>
> <PropertyGroup Condition=" '$(Configuration)|$(Platform)' ==
> 'Release|AnyCPU' ">
>
> Modified: incubator/lucene.net/trunk/src/core/Search/FilterManager.cs
> URL:
> http://svn.apache.org/viewvc/incubator/lucene.net/trunk/src/core/Search/FilterManager.cs?rev=1351173&r1=1351172&r2=1351173&view=diff
>
> ==============================================================================
> --- incubator/lucene.net/trunk/src/core/Search/FilterManager.cs (original)
> +++ incubator/lucene.net/trunk/src/core/Search/FilterManager.cs Sun Jun
> 17 22:21:07 2012
> @@ -110,7 +110,7 @@ namespace Lucene.Net.Search
> fi = cache[filter.GetHashCode()];
> if (fi != null)
> {
> - fi.timestamp =
> System.DateTime.Now.Ticks;
> + fi.timestamp =
> System.DateTime.UtcNow.Ticks;
> return fi.filter;
> }
> cache[filter.GetHashCode()] = new
> FilterItem(filter);
> @@ -130,7 +130,7 @@ namespace Lucene.Net.Search
> public FilterItem(Filter filter)
> {
> this.filter = filter;
> - this.timestamp = System.DateTime.Now.Ticks;
> + this.timestamp =
> System.DateTime.UtcNow.Ticks;
> }
> }
>
>
> Modified: incubator/lucene.net/trunk/src/core/Store/RAMDirectory.cs
> URL:
> http://svn.apache.org/viewvc/incubator/lucene.net/trunk/src/core/Store/RAMDirectory.cs?rev=1351173&r1=1351172&r2=1351173&view=diff
>
> ==============================================================================
> --- incubator/lucene.net/trunk/src/core/Store/RAMDirectory.cs (original)
> +++ incubator/lucene.net/trunk/src/core/Store/RAMDirectory.cs Sun Jun 17
> 22:21:07 2012
> @@ -121,7 +121,11 @@ namespace Lucene.Net.Store
> }
> if (file == null)
> throw new
> System.IO.FileNotFoundException(name);
> - return file.LastModified;
> +
> + // RAMOutputStream.Flush() was changed to use DateTime.UtcNow.
> + // Convert it back to local time before returning (previous
> behavior)
> + return new
> DateTime(file.LastModified*TimeSpan.TicksPerMillisecond,
> DateTimeKind.Utc).ToLocalTime().Ticks/
> + TimeSpan.TicksPerMillisecond;
> }
>
> /// <summary>Set the modified time of an existing file to
> now.</summary>
> @@ -137,7 +141,7 @@ namespace Lucene.Net.Store
> if (file == null)
> throw new
> System.IO.FileNotFoundException(name);
>
> - long ts2, ts1 = System.DateTime.Now.Ticks;
> + long ts2, ts1 = System.DateTime.UtcNow.Ticks /
> TimeSpan.TicksPerMillisecond;
> do
> {
> try
> @@ -151,7 +155,7 @@ namespace Lucene.Net.Store
> ThreadClass.Current().Interrupt();
> throw new
> System.SystemException(ie.Message, ie);
> }
> - ts2 = System.DateTime.Now.Ticks;
> + ts2 = System.DateTime.UtcNow.Ticks /
> TimeSpan.TicksPerMillisecond;
> }
> while (ts1 == ts2);
>
>
> Modified: incubator/lucene.net/trunk/src/core/Store/RAMFile.cs
> URL:
> http://svn.apache.org/viewvc/incubator/lucene.net/trunk/src/core/Store/RAMFile.cs?rev=1351173&r1=1351172&r2=1351173&view=diff
>
> ==============================================================================
> --- incubator/lucene.net/trunk/src/core/Store/RAMFile.cs (original)
> +++ incubator/lucene.net/trunk/src/core/Store/RAMFile.cs Sun Jun 17
> 22:21:07 2012
> @@ -32,7 +32,7 @@ namespace Lucene.Net.Store
> internal long sizeInBytes;
>
> // This is publicly modifiable via Directory.touchFile(),
> so direct access not supported
> - private long lastModified = (DateTime.Now.Ticks /
> TimeSpan.TicksPerMillisecond);
> + private long lastModified = (DateTime.UtcNow.Ticks /
> TimeSpan.TicksPerMillisecond);
>
> // File used as buffer, in no RAMDirectory
> public /*internal*/ RAMFile()
>
> Modified: incubator/lucene.net/trunk/src/core/Store/RAMOutputStream.cs
> URL:
> http://svn.apache.org/viewvc/incubator/lucene.net/trunk/src/core/Store/RAMOutputStream.cs?rev=1351173&r1=1351172&r2=1351173&view=diff
>
> ==============================================================================
> --- incubator/lucene.net/trunk/src/core/Store/RAMOutputStream.cs(original)
> +++ incubator/lucene.net/trunk/src/core/Store/RAMOutputStream.cs Sun Jun
> 17 22:21:07 2012
> @@ -43,7 +43,7 @@ namespace Lucene.Net.Store
> {
> }
>
> - public /*internal*/ RAMOutputStream(RAMFile f)
> + internal RAMOutputStream(RAMFile f)
> {
> file = f;
>
> @@ -173,7 +173,7 @@ namespace Lucene.Net.Store
>
> public override void Flush()
> {
> - file.LastModified = (DateTime.Now.Ticks /
> TimeSpan.TicksPerMillisecond);
> + file.LastModified = (DateTime.UtcNow.Ticks /
> TimeSpan.TicksPerMillisecond);
> SetFileLength();
> }
>
>
> Modified: incubator/lucene.net/trunk/src/core/Support/CollectionsHelper.cs
> URL:
> http://svn.apache.org/viewvc/incubator/lucene.net/trunk/src/core/Support/CollectionsHelper.cs?rev=1351173&r1=1351172&r2=1351173&view=diff
>
> ==============================================================================
> --- incubator/lucene.net/trunk/src/core/Support/CollectionsHelper.cs(original)
> +++ incubator/lucene.net/trunk/src/core/Support/CollectionsHelper.cs Sun
> Jun 17 22:21:07 2012
> @@ -37,17 +37,30 @@ namespace Lucene.Net.Support
>
> public static void AddIfNotContains(System.Collections.Hashtable
> hashtable, System.Object item)
> {
> - if (hashtable.Contains(item) == false)
> + // Added lock around check. Even though the collection
> should already have
> + // a synchronized wrapper around it, it doesn't prevent this
> test from having
> + // race conditions. Two threads can (and have in
> TestIndexReaderReopen) call
> + // hashtable.Contains(item) == false at the same time, then
> both try to add to
> + // the hashtable, causing an ArgumentException. locking on
> the collection
> + // prevents this. -- cc
> + lock (hashtable)
> {
> - hashtable.Add(item, item);
> + if (hashtable.Contains(item) == false)
> + {
> + hashtable.Add(item, item);
> + }
> }
> }
>
> public static void AddIfNotContains(System.Collections.ArrayList
> hashtable, System.Object item)
> {
> - if (hashtable.Contains(item) == false)
> + // see AddIfNotContains(Hashtable, object) for information
> about the lock
> + lock (hashtable)
> {
> - hashtable.Add(item);
> + if (hashtable.Contains(item) == false)
> + {
> + hashtable.Add(item);
> + }
> }
> }
>
>
>
>
>