Skip to content

Cache directory exists in rar#2702

Merged
cdmihai merged 2 commits intodotnet:vs15.5from
cdmihai:cacheDirectoryExistsInRAR
Nov 6, 2017
Merged

Cache directory exists in rar#2702
cdmihai merged 2 commits intodotnet:vs15.5from
cdmihai:cacheDirectoryExistsInRAR

Conversation

@cdmihai
Copy link
Copy Markdown
Contributor

@cdmihai cdmihai commented Nov 3, 2017

The cache is local to one RAR execution, just like the file existence cache.

(times below are relative to all RAR invocations on a Roslyn build)

Before:
image

After:
image

Second commit is a code cleanup change that makes everything hard to read.

@cdmihai
Copy link
Copy Markdown
Contributor Author

cdmihai commented Nov 4, 2017

It does not appear to do much for small projects. Memory regresses a bit due to the new cache. MVC (which has the most dependencies) shows the most improvement.

Evaluation: Time (ms)

Test Overall Significant δ Value
DotnetConsoleProject yes 94.1869 -> 93.2235 (-1.023%)
DotnetWebProject 🔴 yes 136.5201 -> 137.3331 (0.596%)
DotnetMvcProject yes 162.1589 -> 161.0449 (-0.687%)
Picasso 🔴 yes 764.3207 -> 772.244 (1.037%)
SmallP2POldCsproj 🔴 yes 134.3707 -> 134.7648 (0.293%)
SmallP2PNewCsproj yes 248.9259 -> 247.9689 (-0.384%)
Generated_100_100_v150 🔴 yes 1587.1591 -> 1654.5322 (4.245%)
LargeP2POldCsproj 👌 no 2218.4311 -> 2225.9235 (0.338%)
roslyn ::ok_hand: no 9476.6876 -> 9456.8238 (-0.21%)

Evaluation: Memory (bytes)

Test Overall Significant δ Value
DotnetConsoleProject ::ok_hand: no 5092541 -> 5091959 (-0.011%)
DotnetWebProject ::ok_hand: no 6767842 -> 6767323 (-0.008%)
DotnetMvcProject 👌 no 7609519 -> 7610707 (0.016%)
Picasso 🔴 yes 33896346 -> 33896596 (0.001%)
SmallP2POldCsproj 👌 no 6107809 -> 6107889 (0.001%)
SmallP2PNewCsproj ::ok_hand: no 10552626 -> 10552606 (0%)
Generated_100_100_v150 ::ok_hand: no 140411454 -> 140411333 (0%)
LargeP2POldCsproj 👌 no 83130160 -> 83131688 (0.002%)
roslyn ::ok_hand: no 395717476 -> 394570870 (-0.29%)

Build: Time (ms)

Test Overall Significant δ Value
DotnetConsoleProject yes 23.2288 -> 23.034 (-0.839%)
DotnetWebProject ::ok_hand: no 28.176 -> 28.1249 (-0.181%)
DotnetMvcProject yes 31.5316 -> 31.1843 (-1.101%)
Picasso yes 4556.6159 -> 4525.992 (-0.672%)
SmallP2POldCsproj 🔴 yes 199.2638 -> 200.814 (0.778%)
SmallP2PNewCsproj ::ok_hand: no 177.5466 -> 177.449 (-0.055%)

Build: Memory (bytes)

Test Overall Significant δ Value
DotnetConsoleProject 👌 no 1165536 -> 1165785 (0.021%)
DotnetWebProject 👌 no 1311429 -> 1311690 (0.02%)
DotnetMvcProject 🔴 yes 1482301 -> 1485413 (0.21%)
Picasso 👌 no 194396412 -> 195396448 (0.514%)
SmallP2POldCsproj yes 8185164 -> 8180674 (-0.055%)
SmallP2PNewCsproj 👌 no 7258168 -> 7260618 (0.034%)

@radical
Copy link
Copy Markdown
Member

radical commented Nov 4, 2017

Could using this with RAR be a problem in case of parallel builds with common output directories or shared assembly directories?

@cdmihai
Copy link
Copy Markdown
Contributor Author

cdmihai commented Nov 6, 2017

File existence and directory enumerations were already being cached per RAR call, so I don't think this would aggravate things more.

Copy link
Copy Markdown
Contributor

@AndyGerlicher AndyGerlicher left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Approved, @cdmihai merge it please.

@cdmihai cdmihai merged commit dc105f9 into dotnet:vs15.5 Nov 6, 2017
@cdmihai cdmihai deleted the cacheDirectoryExistsInRAR branch April 26, 2018 17:43
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants