-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathall.bat
More file actions
141 lines (124 loc) · 4.11 KB
/
Copy pathall.bat
File metadata and controls
141 lines (124 loc) · 4.11 KB
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
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
@echo off
cd /d %~dp0
setlocal
rem Ves progon odnoy komandoy. Zapuskat bez argumentov.
set NAME=%~1
if "%NAME%"=="" set NAME=%COMPUTERNAME%
set OUT=Results\%NAME%
if not exist "%OUT%" mkdir "%OUT%"
echo ==========================================================
echo BuilderLohProof
echo Mashina: %NAME%
echo Rezultaty: %OUT%
echo ==========================================================
echo.
where dotnet >nul 2>&1
if errorlevel 1 goto nodotnet
echo [1/7] Build i chistka proshlogo progona
del /q checks-*.txt chunks-*.txt threshold-*.txt loh-*.txt reuse-*.txt 2>nul
rmdir /s /q BenchmarkDotNet.Artifacts 2>nul
dotnet build -c Release > "%OUT%\build.txt" 2>&1
if errorlevel 1 goto buildfail
echo ok
echo.
echo [2/7] Sverka otvetov na treh runtaymah
for %%R in (net8.0 net9.0 net10.0) do (
dotnet run -c Release -f %%R --no-build -- checks > "%OUT%\checks-%%R.txt" 2>&1
if errorlevel 1 goto checksfail
)
echo ok
echo.
echo [3/7] Otchety chunks, threshold, reuse na treh runtaymah
for %%R in (net8.0 net9.0 net10.0) do (
dotnet run -c Release -f %%R --no-build -- chunks > "%OUT%\chunks-%%R.txt" 2>&1
dotnet run -c Release -f %%R --no-build -- threshold > "%OUT%\threshold-%%R.txt" 2>&1
dotnet run -c Release -f %%R --no-build -- reuse > "%OUT%\reuse-%%R.txt" 2>&1
)
echo ok
echo.
echo [4/7] Prirost LOH. Kazhdyy scenariy svoim processom
for %%R in (net8.0 net9.0 net10.0) do (
call :loh %%R small
call :loh %%R long
call :loh %%R chunked
call :loh %%R chars
call :loh %%R capacity
call :loh %%R document
call :loh %%R documentChunked
call :loh %%R concat
call :loh %%R create
call :loh %%R pooled
call :loh %%R holdSmall
call :loh %%R holdLong
call :loh %%R holdChunked
call :loh %%R holdCapacity
call :loh %%R holdCleared
call :loh %%R holdCleared
call :loh %%R tostring
)
echo ok
echo.
rem Porog kuchi bolshih objektov nastraivaetsya. Peremennaya nazyvaetsya
rem DOTNET_GCLOHThreshold, znachenie v hex. 0xC0000 - eto 786 432, vyshe
rem samogo bolshogo kuska v zamerah. Otchet threshold sam pokazhet,
rem primenilos li: esli granica ostalas prezhney, znachit net.
echo [5/7] Prirost LOH na servernom sborshchike
rem Server GC menyaet byudzhety i chastotu sborok. Bez etogo progona
rem ostaetsya vopros, ne vyglyadit li vsyo inache na servere.
set DOTNET_gcServer=1
call :loh net10.0 small-srv small
call :loh net10.0 long-srv long
call :loh net10.0 chunked-srv chunked
call :loh net10.0 capacity-srv capacity
call :loh net10.0 holdLong-srv holdLong
call :loh net10.0 holdChunked-srv holdChunked
call :loh net10.0 holdCleared-srv holdCleared
dotnet run -c Release -f net10.0 --no-build -- reuse > "%OUT%\reuse-net10.0-srv.txt" 2>&1
set DOTNET_gcServer=
echo ok
echo.
echo [6/7] Te zhe otchety pri podnyatom poroge LOH
set DOTNET_GCLOHThreshold=0xC0000
dotnet run -c Release -f net10.0 --no-build -- threshold > "%OUT%\threshold-loh768k.txt" 2>&1
dotnet run -c Release -f net10.0 --no-build -- chunks > "%OUT%\chunks-loh768k.txt" 2>&1
dotnet run -c Release -f net10.0 --no-build -- loh long > "%OUT%\loh-net10.0-long-loh768k.txt" 2>&1
set DOTNET_GCLOHThreshold=
echo ok
echo.
echo [7/7] Zamery. Okolo chasa, 8 klassov, 71 zamer
dotnet run -c Release -f net10.0 --no-build
if errorlevel 1 goto benchfail
if exist BenchmarkDotNet.Artifacts\results (
if not exist "%OUT%\bench" mkdir "%OUT%\bench"
xcopy /y /q BenchmarkDotNet.Artifacts\results\*.* "%OUT%\bench\" > nul
copy /y BenchmarkDotNet.Artifacts\*.log "%OUT%\bench\" > nul 2>&1
)
dotnet --info > "%OUT%\environment.txt" 2>&1
echo ok
echo.
echo Gotovo. Vsyo lezhit v %OUT%
pause
exit /b 0
:loh
rem %1 - runtime, %2 - imya fayla, %3 - vid scenariya. Esli %3 pust,
rem imya fayla i vid sovpadayut.
set KIND=%3
if "%KIND%"=="" set KIND=%2
dotnet run -c Release -f %1 --no-build -- loh %KIND% > "%OUT%\loh-%1-%2.txt" 2>&1
exit /b 0
:nodotnet
echo DOTNET NE NAYDEN. Ustanovit SDK .NET 8, 9 i 10.
pause
exit /b 1
:buildfail
echo BUILD NE PROSHEL. Smotret %OUT%\build.txt
pause
exit /b 1
:checksfail
echo SVERKA OTVETOV NE PROSHLA. Smotret %OUT%\checks-*.txt
pause
exit /b 1
:benchfail
echo ZAMERY NE PROSHLI.
pause
exit /b 1