Optimize saving TaskGraph cache
This commit is contained in:
@@ -21,6 +21,7 @@ namespace Flax.Build.Graph
|
|||||||
|
|
||||||
private readonly List<BuildResultCache> _prevBuildCache = new List<BuildResultCache>();
|
private readonly List<BuildResultCache> _prevBuildCache = new List<BuildResultCache>();
|
||||||
private readonly List<string> _prevBuildCacheFiles = new List<string>();
|
private readonly List<string> _prevBuildCacheFiles = new List<string>();
|
||||||
|
private readonly Dictionary<string, int> _prevBuildCacheFileIndices = new Dictionary<string, int>();
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// The workspace folder of the task graph.
|
/// The workspace folder of the task graph.
|
||||||
@@ -315,6 +316,7 @@ namespace Flax.Build.Graph
|
|||||||
filesDates[i] = lastWrite;
|
filesDates[i] = lastWrite;
|
||||||
filesValid[i] = isValid;
|
filesValid[i] = isValid;
|
||||||
_prevBuildCacheFiles.Add(file);
|
_prevBuildCacheFiles.Add(file);
|
||||||
|
_prevBuildCacheFileIndices.Add(file, i);
|
||||||
|
|
||||||
if (!isValid || !cacheFile)
|
if (!isValid || !cacheFile)
|
||||||
FileCache.FileRemoveFromCache(file);
|
FileCache.FileRemoveFromCache(file);
|
||||||
@@ -474,11 +476,11 @@ namespace Flax.Build.Graph
|
|||||||
fileIndices.Clear();
|
fileIndices.Clear();
|
||||||
foreach (var file in files)
|
foreach (var file in files)
|
||||||
{
|
{
|
||||||
int fileIndex = _prevBuildCacheFiles.IndexOf(file);
|
if (!_prevBuildCacheFileIndices.TryGetValue(file, out int fileIndex))
|
||||||
if (fileIndex == -1)
|
|
||||||
{
|
{
|
||||||
fileIndex = _prevBuildCacheFiles.Count;
|
fileIndex = _prevBuildCacheFiles.Count;
|
||||||
_prevBuildCacheFiles.Add(file);
|
_prevBuildCacheFiles.Add(file);
|
||||||
|
_prevBuildCacheFileIndices.Add(file, fileIndex);
|
||||||
}
|
}
|
||||||
|
|
||||||
fileIndices.Add(fileIndex);
|
fileIndices.Add(fileIndex);
|
||||||
|
|||||||
Reference in New Issue
Block a user