Skip to content

Commit 25005d8

Browse files
committed
Allow more parallelism when low on memory but not on ramdisk
1 parent cfc34fc commit 25005d8

2 files changed

Lines changed: 4 additions & 1 deletion

File tree

Runner/JobBase.cs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -615,6 +615,8 @@ protected int GetRemainingSystemMemoryGB()
615615
return (int)(memory.AvailablePhysical / 1024 / 1024 / 1024);
616616
}
617617

618+
protected static bool OnRamDisk => Environment.CurrentDirectory.StartsWith("/ramdisk", StringComparison.Ordinal);
619+
618620
protected async Task ChangeWorkingDirectoryToRamOrFastestDiskAsync(bool allowRamDisk = true)
619621
{
620622
string? newLocation = await ChangeWorkingDirectoryToRamOrFastestDiskAsyncCore(allowRamDisk);

Runner/Jobs/NuGetExtraAssembliesJob.cs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -120,7 +120,8 @@ private async Task ProcessApprovedPackagesAsync(List<(string Id, string Version,
120120
string diffOutputDir = "nuget-diff-temp";
121121
Directory.CreateDirectory(diffOutputDir);
122122

123-
int parallelism = Math.Min(Math.Min(Environment.ProcessorCount, GetRemainingSystemMemoryGB() / 3), approvedPackages.Count);
123+
int memoryParallelism = OnRamDisk ? GetRemainingSystemMemoryGB() / 3 : GetRemainingSystemMemoryGB() * 2;
124+
int parallelism = Math.Min(Math.Min(Environment.ProcessorCount, memoryParallelism), approvedPackages.Count);
124125
parallelism = Math.Max(parallelism, 1);
125126
var packageQueue = new Queue<(string Id, string Version, string PkgDir, string Dll, Dictionary<string, string> Deps)>(approvedPackages);
126127

0 commit comments

Comments
 (0)