diff options
author | Marius Ungureanu <teromario@yahoo.com> | 2015-02-03 21:43:15 +0300 |
---|---|---|
committer | Marius Ungureanu <teromario@yahoo.com> | 2015-02-03 21:43:15 +0300 |
commit | 2f12f3d6752144ddbcd5a608bb87781190b04013 (patch) | |
tree | e8032b0e88bddd1cfe4089a4de9eed9e59000708 /main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Gui | |
parent | ee943316c671ecae5768fb42edff0eb3a527a63a (diff) | |
parent | 52cdd14ddbf9cc58c9e58b6ff6003bba00eb5891 (diff) |
Merge pull request #691 from mono/perfImprovements
Performance Improvements
Diffstat (limited to 'main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Gui')
-rw-r--r-- | main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Gui/Workbench.cs | 18 |
1 files changed, 9 insertions, 9 deletions
diff --git a/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Gui/Workbench.cs b/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Gui/Workbench.cs index 7f3d47920f..2dadadf773 100644 --- a/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Gui/Workbench.cs +++ b/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Gui/Workbench.cs @@ -1146,13 +1146,13 @@ namespace MonoDevelop.Ide.Gui List<FileData> fileStatus; object fileStatusLock = new object (); - + // http://msdn.microsoft.com/en-us/library/system.io.file.getlastwritetimeutc(v=vs.110).aspx + static DateTime NonExistentFile = new DateTime(1601, 1, 1); internal void SaveFileStatus () { - fileStatus = new List<FileData> (); - // DateTime t = DateTime.Now; List<FilePath> files = new List<FilePath> (GetKnownFiles ()); + fileStatus = new List<FileData> (files.Count); // Console.WriteLine ("SaveFileStatus(0) " + (DateTime.Now - t).TotalMilliseconds + "ms " + files.Count); ThreadPool.QueueUserWorkItem (delegate { @@ -1160,8 +1160,8 @@ namespace MonoDevelop.Ide.Gui lock (fileStatusLock) { foreach (FilePath file in files) { try { - FileInfo fi = new FileInfo (file); - FileData fd = new FileData (file, fi.Exists ? fi.LastWriteTimeUtc : DateTime.MinValue); + DateTime ft = File.GetLastWriteTimeUtc (file); + FileData fd = new FileData (file, ft != NonExistentFile ? ft : DateTime.MinValue); fileStatus.Add (fd); } catch { // Ignore @@ -1182,12 +1182,12 @@ namespace MonoDevelop.Ide.Gui // DateTime t = DateTime.Now; if (fileStatus == null) return; - List<FilePath> modified = new List<FilePath> (); + List<FilePath> modified = new List<FilePath> (fileStatus.Count); foreach (FileData fd in fileStatus) { try { - FileInfo fi = new FileInfo (fd.File); - if (fi.Exists) { - if (fi.LastWriteTimeUtc != fd.TimeUtc) + DateTime ft = File.GetLastWriteTimeUtc (fd.File); + if (ft != NonExistentFile) { + if (ft != fd.TimeUtc) modified.Add (fd.File); } else if (fd.TimeUtc != DateTime.MinValue) { FileService.NotifyFileRemoved (fd.File); |