-
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathrun_benchmarks.ps1
67 lines (53 loc) · 2.02 KB
/
run_benchmarks.ps1
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
$ErrorActionPreference = "Stop"
# Ensure that is being run from dir where script locates (helpful when running on remote machine)
$workingDir = $(Get-Location).Path
Write-Host "Working directory:" $workingDir
if ($workingDir -ne $PSScriptRoot) {
Set-Location $PSScriptRoot
Write-Host "Changed working directory to script root:" $(Get-Location).Path
}
$workingDir = $(Get-Location).Path
# script
git clean -fdX
# stop all
./remove_containers.ps1
# solution
Set-Location $workingDir
Set-Location .\EFCore.Extensions.SaveOptimizer
dotnet build -c Release
$benchmarks = @(
'.\EFCore.Extensions.SaveOptimizer\EFCore.Extensions.SaveOptimizer.SqlServer.Benchmark',
'.\EFCore.Extensions.SaveOptimizer\EFCore.Extensions.SaveOptimizer.Oracle21.Benchmark',
'.\EFCore.Extensions.SaveOptimizer\EFCore.Extensions.SaveOptimizer.Sqlite.Benchmark',
'.\EFCore.Extensions.SaveOptimizer\EFCore.Extensions.SaveOptimizer.Postgres.Benchmark',
'.\EFCore.Extensions.SaveOptimizer\EFCore.Extensions.SaveOptimizer.PomeloMySql.Benchmark',
'.\EFCore.Extensions.SaveOptimizer\EFCore.Extensions.SaveOptimizer.Firebird3.Benchmark',
'.\EFCore.Extensions.SaveOptimizer\EFCore.Extensions.SaveOptimizer.Firebird4.Benchmark',
'.\EFCore.Extensions.SaveOptimizer\EFCore.Extensions.SaveOptimizer.PomeloMariaDb.Benchmark',
'.\EFCore.Extensions.SaveOptimizer\EFCore.Extensions.SaveOptimizer.Cockroach.Benchmark',
'.\EFCore.Extensions.SaveOptimizer\EFCore.Extensions.SaveOptimizer.CockroachMulti.Benchmark'
)
foreach($benchmark in $benchmarks) {
# Run
Set-Location $workingDir
Set-Location $benchmark
.\run.ps1
# plots & logs
Set-Location $workingDir
try {
.\preserve_logs.ps1
}
catch {
Write-Host "Unable to preserve logs for $($benchmark)"
}
try {
.\generate_plots.ps1
}
catch {
Write-Host "Unable to generate plots for $($benchmark)"
}
}
# cleanup
Set-Location $workingDir
Set-Location .\EFCore.Extensions.SaveOptimizer
git clean -fdX