Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/mono/monodevelop.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMarius Ungureanu <teromario@yahoo.com>2015-02-03 21:43:15 +0300
committerMarius Ungureanu <teromario@yahoo.com>2015-02-03 21:43:15 +0300
commit2f12f3d6752144ddbcd5a608bb87781190b04013 (patch)
treee8032b0e88bddd1cfe4089a4de9eed9e59000708 /main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Gui
parentee943316c671ecae5768fb42edff0eb3a527a63a (diff)
parent52cdd14ddbf9cc58c9e58b6ff6003bba00eb5891 (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.cs18
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);