diff --git a/.gitignore b/.gitignore index dbd3dd677d1c..b3ac01be870e 100644 --- a/.gitignore +++ b/.gitignore @@ -301,3 +301,6 @@ cross/rootfs/* # JIT32 files src/jit32 + +# performance testing sandbox +sandbox diff --git a/perf.groovy b/perf.groovy index e7100f8de975..a95b68142caf 100644 --- a/perf.groovy +++ b/perf.groovy @@ -23,42 +23,61 @@ def static getOSGroup(def os) { assert osGroup != null : "Could not find os group for ${os}" return osGroupMap[os] } - +// Setup perflab tests runs [true, false].each { isPR -> ['Windows_NT'].each { os -> - def newJob = job(Utilities.getFullJobName(project, "perf_${os}", isPR)) { - // Set the label. - label('performance') - steps { - // Batch - batchFile("C:\\tools\\nuget install Microsoft.BenchView.JSONFormat -Source http://benchviewtestfeed.azurewebsites.net/nuget -OutputDirectory C:\\tools -Prerelease") - batchFile("python C:\\tools\\Microsoft.BenchView.JSONFormat.0.1.0-pre008\\tools\\machinedata.py") - batchFile("set __TestIntermediateDir=int&&build.cmd release x64") - batchFile("tests\\runtest.cmd release x64") - batchFile("tests\\scripts\\run-xunit-perf.cmd") - } - } + ['x64'].each { architecture -> + def configuration = 'Release' + def runType = isPR ? 'private' : 'rolling' + def benchViewName = isPR ? 'coreclr private %ghprbPullTitle%' : 'coreclr rolling %GIT_BRANCH_WITHOUT_ORIGIN% %GIT_COMMIT%' + def newJob = job(Utilities.getFullJobName(project, "perf_perflab_${os}", isPR)) { + // Set the label. + label('windows_clr_perf') + wrappers { + credentialsBinding { + string('BV_UPLOAD_SAS_TOKEN', 'CoreCLR Perf BenchView Sas') + } + } - // Save machinedata.json to /artifact/bin/ Jenkins dir - def archiveSettings = new ArchivalSettings() - archiveSettings.addFiles('sandbox\\perf-*.xml') - archiveSettings.addFiles('machinedata.json') - Utilities.addArchival(newJob, archiveSettings) + steps { + // Batch + + batchFile("C:\\Tools\\nuget.exe install Microsoft.BenchView.JSONFormat -Source http://benchviewtestfeed.azurewebsites.net/nuget -OutputDirectory C:\\tools -Prerelease -ExcludeVersion") + //Do this here to remove the origin but at the front of the branch name as this is a problem for BenchView + //we have to do it all as one statement because cmd is called each time and we lose the set environment variable + batchFile("if [%GIT_BRANCH:~0,7%] == [origin/] (set GIT_BRANCH_WITHOUT_ORIGIN=%GIT_BRANCH:origin/=%) else (set GIT_BRANCH_WITHOUT_ORIGIN=%GIT_BRANCH%)\n" + + "py C:\\tools\\Microsoft.BenchView.JSONFormat\\tools\\submission-metadata.py --name " + "\"" + benchViewName + "\"" + " --user " + "\"dotnet-bot@microsoft.com\"\n" + + "py C:\\tools\\Microsoft.BenchView.JSONFormat\\tools\\build.py git --branch %GIT_BRANCH_WITHOUT_ORIGIN% --type " + runType) + batchFile("py C:\\tools\\Microsoft.BenchView.JSONFormat\\tools\\machinedata.py") + batchFile("set __TestIntermediateDir=int&&build.cmd release ${architecture}") + batchFile("tests\\runtest.cmd release ${architecture} GenerateLayoutOnly") + batchFile("tests\\scripts\\run-xunit-perf.cmd -arch ${architecture} -configuration ${configuration} -testBinLoc bin\\tests\\Windows_NT.${architecture}.Release\\performance\\perflab\\Perflab -library -uploadToBenchview C:\\Tools\\Microsoft.Benchview.JSONFormat\\tools -runtype " + runType) + batchFile("tests\\scripts\\run-xunit-perf.cmd -arch ${architecture} -configuration ${configuration} -testBinLoc bin\\tests\\Windows_NT.${architecture}.Release\\Jit\\Performance\\CodeQuality -uploadToBenchview C:\\Tools\\Microsoft.Benchview.JSONFormat\\tools -runtype " + runType) + } + } - Utilities.standardJobSetup(newJob, project, isPR, "*/${branch}") - if (isPR) { - TriggerBuilder builder = TriggerBuilder.triggerOnPullRequest() - builder.setGithubContext("${os} Perf Tests") - builder.triggerOnlyOnComment() - builder.setCustomTriggerPhrase("(?i).*test\\W+${os}\\W+perf.*") - builder.triggerForBranch(branch) - builder.emitTrigger(newJob) - } - else { - // Set a push trigger - TriggerBuilder builder = TriggerBuilder.triggerOnCommit() - builder.emitTrigger(newJob) - } + // Save machinedata.json to /artifact/bin/ Jenkins dir + def archiveSettings = new ArchivalSettings() + archiveSettings.addFiles('perf-*.xml') + archiveSettings.addFiles('perf-*.etl') + Utilities.addArchival(newJob, archiveSettings) + + Utilities.standardJobSetup(newJob, project, isPR, "*/${branch}") + + if (isPR) { + TriggerBuilder builder = TriggerBuilder.triggerOnPullRequest() + builder.setGithubContext("${os} CoreCLR Perf Tests") + builder.triggerOnlyOnComment() + builder.setCustomTriggerPhrase("(?i).*test\\W+${os}\\W+perf.*") + builder.triggerForBranch(branch) + builder.emitTrigger(newJob) + } + else { + // Set a push trigger + TriggerBuilder builder = TriggerBuilder.triggerOnCommit() + builder.emitTrigger(newJob) + } + } } } @@ -122,6 +141,8 @@ def static getOSGroup(def os) { } } + Utilities.setMachineAffinity(newJob, os, 'latest-or-auto') // Just run against Linux VM's for now. + // Save machinedata.json to /artifact/bin/ Jenkins dir def archiveSettings = new ArchivalSettings() archiveSettings.addFiles('perf-*.xml') @@ -142,4 +163,4 @@ def static getOSGroup(def os) { builder.emitTrigger(newJob) } } // os -} // isPR +} // isPR \ No newline at end of file diff --git a/tests/scripts/run-xunit-perf.cmd b/tests/scripts/run-xunit-perf.cmd index cece893cab1a..89a7dac23ff7 100644 --- a/tests/scripts/run-xunit-perf.cmd +++ b/tests/scripts/run-xunit-perf.cmd @@ -5,11 +5,18 @@ @setlocal @echo off -set HERE=%CD% +rem Set defaults for the file extension, architecture and configuration set CORECLR_REPO=%CD% -set CORECLR_OVERLAY=%CORECLR_REPO%\bin\tests\Windows_NT.x64.Release\Tests\Core_Root -set CORECLR_PERF=%CORECLR_REPO%\bin\tests\Windows_NT.x64.Release\Jit\Performance\CodeQuality -set RUNLOG=%HERE%\bin\Logs\perfrun.log +set TEST_FILE_EXT=exe +set TEST_ARCH=x64 +set TEST_CONFIG=Release + +goto :ARGLOOP + +:SETUP + +set CORECLR_OVERLAY=%CORECLR_REPO%\bin\tests\Windows_NT.%TEST_ARCH%.%TEST_CONFIG%\Tests\Core_Root +set RUNLOG=%CORECLR_REPO%\bin\Logs\perfrun.log if NOT EXIST %CORECLR_OVERLAY% ( echo Can't find test overlay directory '%CORECLR_OVERLAY%' @@ -17,8 +24,6 @@ if NOT EXIST %CORECLR_OVERLAY% ( exit /B 1 ) -:SETUP - @echo --- setting up sandbox rd /s /q sandbox @@ -29,34 +34,115 @@ pushd sandbox @rem xunit and perf xcopy /sy %CORECLR_REPO%\packages\Microsoft.DotNet.xunit.performance.runner.Windows\1.0.0-alpha-build0035\tools\* . > %RUNLOG% -xcopy /sy %CORECLR_REPO%\packages\Microsoft.DotNet.xunit.performance.analysis\1.0.0-alpha-build0035\tools\* . > %RUNLOG% -xcopy /sy %CORECLR_REPO%\packages\xunit.console.netcore\1.0.2-prerelease-00101\runtimes\any\native\* . > %RUNLOG% -xcopy /sy %CORECLR_REPO%\bin\tests\Windows_NT.x64.Release\Tests\Core_Root\* . > %RUNLOG% +xcopy /sy %CORECLR_REPO%\packages\Microsoft.DotNet.xunit.performance.analysis\1.0.0-alpha-build0035\tools\* . >> %RUNLOG% +xcopy /sy %CORECLR_REPO%\packages\xunit.console.netcore\1.0.2-prerelease-00101\runtimes\any\native\* . >> %RUNLOG% +xcopy /sy %CORECLR_REPO%\bin\tests\Windows_NT.%TEST_ARCH%.%TEST_CONFIG%\Tests\Core_Root\* . >> %RUNLOG% @rem find and stage the tests - -for /R %CORECLR_PERF% %%T in (*.exe) do ( +for /R %CORECLR_PERF% %%T in (*.%TEST_FILE_EXT%) do ( call :DOIT %%T ) goto :EOF :DOIT - set BENCHNAME=%~n1 set PERFOUT=perf-%BENCHNAME% set XMLOUT=%PERFOUT%-summary.xml echo --- Running %BENCHNAME% -xcopy /s %1 . > %RUNLOG% +xcopy /s %1 . >> %RUNLOG% -set CORE_ROOT=%HERE%\sandbox +set CORE_ROOT=%CORECLR_REPO%\sandbox -xunit.performance.run.exe %BENCHNAME%.exe -runner xunit.console.netcore.exe -runnerhost corerun.exe -verbose -runid %PERFOUT% > %BENCHNAME%.out +xunit.performance.run.exe %BENCHNAME%.%TEST_FILE_EXT% -runner xunit.console.netcore.exe -runnerhost corerun.exe -verbose -runid %PERFOUT% > %BENCHNAME%.out xunit.performance.analysis.exe %PERFOUT%.xml -xml %XMLOUT% > %BENCHNAME%-analysis.out -type %XMLOUT% | findstr "test name" -type %XMLOUT% | findstr Duration -type %XMLOUT% | findstr InstRetired +@rem optionally upload results to benchview +if not [%BENCHVIEW_PATH%] == [] ( + py %BENCHVIEW_PATH%\measurement.py xunit perf-%BENCHNAME%.xml --better desc --drop-first-value + py %BENCHVIEW_PATH%\submission.py measurement.json ^ + --build ..\build.json ^ + --machine-data ..\machinedata.json ^ + --metadata ..\submission-metadata.json ^ + --group "CoreCLR" ^ + --type "%RUN_TYPE%" ^ + --config-name "%TEST_CONFIG%" ^ + --config Configuration "%TEST_CONFIG%" ^ + --config OS "Windows_NT" ^ + --arch "%TEST_ARCH%" ^ + --machinepool "PerfSnake" + py %BENCHVIEW_PATH%\upload.py submission.json --container coreclr + REM Save off the results to the root directory for recovery later in Jenkins + xcopy perf-%BENCHNAME%*.xml %CORECLR_REPO%\ + xcopy perf-%BENCHNAME%*.etl %CORECLR_REPO%\ +) else ( + type %XMLOUT% | findstr "test name" + type %XMLOUT% | findstr Duration + type %XMLOUT% | findstr InstRetired +) + +goto :EOF + +:ARGLOOP +IF /I [%1] == [-testBinLoc] ( +set CORECLR_PERF=%CORECLR_REPO%\%2 +shift +shift +goto :ARGLOOP +) +IF /I [%1] == [-runtype] ( +set RUN_TYPE=%2 +shift +shift +goto :ARGLOOP +) +IF /I [%1] == [-library] ( +set TEST_FILE_EXT=dll +shift +goto :ARGLOOP +) +IF /I [%1] == [-uploadtobenchview] ( +set BENCHVIEW_PATH=%2 +shift +shift +goto :ARGLOOP +) +IF /I [%1] == [-arch] ( +set TEST_ARCH=%2 +shift +shift +goto :ARGLOOP +) +IF /I [%1] == [-configuration] ( +set TEST_CONFIG=%2 +shift +shift +goto :ARGLOOP +) +if /I [%1] == [-?] ( +goto :USAGE +) +if /I [%1] == [-help] ( +goto :USAGE +) + +if [%CORECLR_PERF%] == [] ( +goto :USAGE +) + +goto :SETUP + +:USAGE +echo run-xunit-perf.cmd -testBinLoc ^ [-library] [-arch] ^ [-configuration] ^ [-uploadToBenchview] ^ [-runtype] ^ + +echo For the path to the tests you can pass a parent directory and the script will grovel for +echo all tests in subdirectories and run them. +echo The library flag denotes whether the tests are build as libraries (.dll) or an executable (.exe) +echo Architecture defaults to x64 and configuration defaults to release. +echo -uploadtoBenchview is used to specify a path to the Benchview tooling and when this flag is +echo set we will upload the results of the tests to the coreclr container in benchviewupload. +echo Runtype sets the runtype that we upload to Benchview, rolling for regular runs, and private for +echo PRs. diff --git a/tests/src/JIT/Performance/CodeQuality/BenchF/Adams/Adams.csproj b/tests/src/JIT/Performance/CodeQuality/BenchF/Adams/Adams.csproj index 91fe0d6aac9e..580bd54343c3 100644 --- a/tests/src/JIT/Performance/CodeQuality/BenchF/Adams/Adams.csproj +++ b/tests/src/JIT/Performance/CodeQuality/BenchF/Adams/Adams.csproj @@ -13,6 +13,7 @@ $(ProgramFiles)\Common Files\microsoft shared\VSTT\11.0\UITestExtensionPackages ..\..\ 7a9bfb7d + .NETStandard,Version=v1.4 diff --git a/tests/src/JIT/Performance/CodeQuality/BenchF/BenchMk2/BenchMk2.csproj b/tests/src/JIT/Performance/CodeQuality/BenchF/BenchMk2/BenchMk2.csproj index 4d4906212ad4..a8c38ad6637a 100644 --- a/tests/src/JIT/Performance/CodeQuality/BenchF/BenchMk2/BenchMk2.csproj +++ b/tests/src/JIT/Performance/CodeQuality/BenchF/BenchMk2/BenchMk2.csproj @@ -13,6 +13,7 @@ $(ProgramFiles)\Common Files\microsoft shared\VSTT\11.0\UITestExtensionPackages ..\..\ 7a9bfb7d + .NETStandard,Version=v1.4 diff --git a/tests/src/JIT/Performance/CodeQuality/BenchF/BenchMrk/BenchMrk.csproj b/tests/src/JIT/Performance/CodeQuality/BenchF/BenchMrk/BenchMrk.csproj index 0986eeea0329..a2acd3bea86a 100644 --- a/tests/src/JIT/Performance/CodeQuality/BenchF/BenchMrk/BenchMrk.csproj +++ b/tests/src/JIT/Performance/CodeQuality/BenchF/BenchMrk/BenchMrk.csproj @@ -13,6 +13,7 @@ $(ProgramFiles)\Common Files\microsoft shared\VSTT\11.0\UITestExtensionPackages ..\..\ 7a9bfb7d + .NETStandard,Version=v1.4 diff --git a/tests/src/JIT/Performance/CodeQuality/BenchF/Bisect/Bisect.csproj b/tests/src/JIT/Performance/CodeQuality/BenchF/Bisect/Bisect.csproj index 4b2487c795fd..210f6f194031 100644 --- a/tests/src/JIT/Performance/CodeQuality/BenchF/Bisect/Bisect.csproj +++ b/tests/src/JIT/Performance/CodeQuality/BenchF/Bisect/Bisect.csproj @@ -13,6 +13,7 @@ $(ProgramFiles)\Common Files\microsoft shared\VSTT\11.0\UITestExtensionPackages ..\..\ 7a9bfb7d + .NETStandard,Version=v1.4 diff --git a/tests/src/JIT/Performance/CodeQuality/BenchF/DMath/DMath.csproj b/tests/src/JIT/Performance/CodeQuality/BenchF/DMath/DMath.csproj index cc70fbfe14f6..6ca118436505 100644 --- a/tests/src/JIT/Performance/CodeQuality/BenchF/DMath/DMath.csproj +++ b/tests/src/JIT/Performance/CodeQuality/BenchF/DMath/DMath.csproj @@ -13,6 +13,7 @@ $(ProgramFiles)\Common Files\microsoft shared\VSTT\11.0\UITestExtensionPackages ..\..\ 7a9bfb7d + .NETStandard,Version=v1.4 diff --git a/tests/src/JIT/Performance/CodeQuality/BenchF/FFT/FFT.csproj b/tests/src/JIT/Performance/CodeQuality/BenchF/FFT/FFT.csproj index 3025d4a34c6f..bfb377fe62b5 100644 --- a/tests/src/JIT/Performance/CodeQuality/BenchF/FFT/FFT.csproj +++ b/tests/src/JIT/Performance/CodeQuality/BenchF/FFT/FFT.csproj @@ -13,6 +13,7 @@ $(ProgramFiles)\Common Files\microsoft shared\VSTT\11.0\UITestExtensionPackages ..\..\ 7a9bfb7d + .NETStandard,Version=v1.4 diff --git a/tests/src/JIT/Performance/CodeQuality/BenchF/InProd/InProd.csproj b/tests/src/JIT/Performance/CodeQuality/BenchF/InProd/InProd.csproj index fb85de3d37a4..416c1b966202 100644 --- a/tests/src/JIT/Performance/CodeQuality/BenchF/InProd/InProd.csproj +++ b/tests/src/JIT/Performance/CodeQuality/BenchF/InProd/InProd.csproj @@ -13,6 +13,7 @@ $(ProgramFiles)\Common Files\microsoft shared\VSTT\11.0\UITestExtensionPackages ..\..\ 7a9bfb7d + .NETStandard,Version=v1.4 diff --git a/tests/src/JIT/Performance/CodeQuality/BenchF/InvMt/InvMt.csproj b/tests/src/JIT/Performance/CodeQuality/BenchF/InvMt/InvMt.csproj index ebbd3bf950d3..c7a4bb91b0ce 100644 --- a/tests/src/JIT/Performance/CodeQuality/BenchF/InvMt/InvMt.csproj +++ b/tests/src/JIT/Performance/CodeQuality/BenchF/InvMt/InvMt.csproj @@ -13,6 +13,7 @@ $(ProgramFiles)\Common Files\microsoft shared\VSTT\11.0\UITestExtensionPackages ..\..\ 7a9bfb7d + .NETStandard,Version=v1.4 diff --git a/tests/src/JIT/Performance/CodeQuality/BenchF/LLoops/LLoops.csproj b/tests/src/JIT/Performance/CodeQuality/BenchF/LLoops/LLoops.csproj index b44736393c9f..cabdbd6607cd 100644 --- a/tests/src/JIT/Performance/CodeQuality/BenchF/LLoops/LLoops.csproj +++ b/tests/src/JIT/Performance/CodeQuality/BenchF/LLoops/LLoops.csproj @@ -13,6 +13,7 @@ $(ProgramFiles)\Common Files\microsoft shared\VSTT\11.0\UITestExtensionPackages ..\..\ 7a9bfb7d + .NETStandard,Version=v1.4 diff --git a/tests/src/JIT/Performance/CodeQuality/BenchF/Lorenz/Lorenz.csproj b/tests/src/JIT/Performance/CodeQuality/BenchF/Lorenz/Lorenz.csproj index efd935bb745f..593474426a1a 100644 --- a/tests/src/JIT/Performance/CodeQuality/BenchF/Lorenz/Lorenz.csproj +++ b/tests/src/JIT/Performance/CodeQuality/BenchF/Lorenz/Lorenz.csproj @@ -13,6 +13,7 @@ $(ProgramFiles)\Common Files\microsoft shared\VSTT\11.0\UITestExtensionPackages ..\..\ 7a9bfb7d + .NETStandard,Version=v1.4 diff --git a/tests/src/JIT/Performance/CodeQuality/BenchF/MatInv4/MatInv4.csproj b/tests/src/JIT/Performance/CodeQuality/BenchF/MatInv4/MatInv4.csproj index 5b1272f5da73..13238071d262 100644 --- a/tests/src/JIT/Performance/CodeQuality/BenchF/MatInv4/MatInv4.csproj +++ b/tests/src/JIT/Performance/CodeQuality/BenchF/MatInv4/MatInv4.csproj @@ -13,6 +13,7 @@ $(ProgramFiles)\Common Files\microsoft shared\VSTT\11.0\UITestExtensionPackages ..\..\ 7a9bfb7d + .NETStandard,Version=v1.4 diff --git a/tests/src/JIT/Performance/CodeQuality/BenchF/NewtE/NewtE.csproj b/tests/src/JIT/Performance/CodeQuality/BenchF/NewtE/NewtE.csproj index 225f7ed3089f..dcf02d3f67e9 100644 --- a/tests/src/JIT/Performance/CodeQuality/BenchF/NewtE/NewtE.csproj +++ b/tests/src/JIT/Performance/CodeQuality/BenchF/NewtE/NewtE.csproj @@ -13,6 +13,7 @@ $(ProgramFiles)\Common Files\microsoft shared\VSTT\11.0\UITestExtensionPackages ..\..\ 7a9bfb7d + .NETStandard,Version=v1.4 diff --git a/tests/src/JIT/Performance/CodeQuality/BenchF/NewtR/NewtR.csproj b/tests/src/JIT/Performance/CodeQuality/BenchF/NewtR/NewtR.csproj index 2d68e6c73e48..1502b8541014 100644 --- a/tests/src/JIT/Performance/CodeQuality/BenchF/NewtR/NewtR.csproj +++ b/tests/src/JIT/Performance/CodeQuality/BenchF/NewtR/NewtR.csproj @@ -13,6 +13,7 @@ $(ProgramFiles)\Common Files\microsoft shared\VSTT\11.0\UITestExtensionPackages ..\..\ 7a9bfb7d + .NETStandard,Version=v1.4 diff --git a/tests/src/JIT/Performance/CodeQuality/BenchF/Regula/Regula.csproj b/tests/src/JIT/Performance/CodeQuality/BenchF/Regula/Regula.csproj index 5f8aacec420c..4cd3e0e069bc 100644 --- a/tests/src/JIT/Performance/CodeQuality/BenchF/Regula/Regula.csproj +++ b/tests/src/JIT/Performance/CodeQuality/BenchF/Regula/Regula.csproj @@ -13,6 +13,7 @@ $(ProgramFiles)\Common Files\microsoft shared\VSTT\11.0\UITestExtensionPackages ..\..\ 7a9bfb7d + .NETStandard,Version=v1.4 diff --git a/tests/src/JIT/Performance/CodeQuality/BenchF/Romber/Romber.csproj b/tests/src/JIT/Performance/CodeQuality/BenchF/Romber/Romber.csproj index 934a837cce17..64bbe04cdbb3 100644 --- a/tests/src/JIT/Performance/CodeQuality/BenchF/Romber/Romber.csproj +++ b/tests/src/JIT/Performance/CodeQuality/BenchF/Romber/Romber.csproj @@ -13,6 +13,7 @@ $(ProgramFiles)\Common Files\microsoft shared\VSTT\11.0\UITestExtensionPackages ..\..\ 7a9bfb7d + .NETStandard,Version=v1.4 diff --git a/tests/src/JIT/Performance/CodeQuality/BenchF/Secant/Secant.csproj b/tests/src/JIT/Performance/CodeQuality/BenchF/Secant/Secant.csproj index fa24d12ce4c8..1a0758ba5146 100644 --- a/tests/src/JIT/Performance/CodeQuality/BenchF/Secant/Secant.csproj +++ b/tests/src/JIT/Performance/CodeQuality/BenchF/Secant/Secant.csproj @@ -13,6 +13,7 @@ $(ProgramFiles)\Common Files\microsoft shared\VSTT\11.0\UITestExtensionPackages ..\..\ 7a9bfb7d + .NETStandard,Version=v1.4 diff --git a/tests/src/JIT/Performance/CodeQuality/BenchF/Simpsn/Simpsn.csproj b/tests/src/JIT/Performance/CodeQuality/BenchF/Simpsn/Simpsn.csproj index ee590d5a9dba..67f81313f692 100644 --- a/tests/src/JIT/Performance/CodeQuality/BenchF/Simpsn/Simpsn.csproj +++ b/tests/src/JIT/Performance/CodeQuality/BenchF/Simpsn/Simpsn.csproj @@ -13,6 +13,7 @@ $(ProgramFiles)\Common Files\microsoft shared\VSTT\11.0\UITestExtensionPackages ..\..\ 7a9bfb7d + .NETStandard,Version=v1.4 diff --git a/tests/src/JIT/Performance/CodeQuality/BenchF/SqMtx/SqMtx.csproj b/tests/src/JIT/Performance/CodeQuality/BenchF/SqMtx/SqMtx.csproj index af1c2a431ed3..d371554449c2 100644 --- a/tests/src/JIT/Performance/CodeQuality/BenchF/SqMtx/SqMtx.csproj +++ b/tests/src/JIT/Performance/CodeQuality/BenchF/SqMtx/SqMtx.csproj @@ -13,6 +13,7 @@ $(ProgramFiles)\Common Files\microsoft shared\VSTT\11.0\UITestExtensionPackages ..\..\ 7a9bfb7d + .NETStandard,Version=v1.4 diff --git a/tests/src/JIT/Performance/CodeQuality/BenchF/Trap/Trap.csproj b/tests/src/JIT/Performance/CodeQuality/BenchF/Trap/Trap.csproj index 5df6f5f24b5e..8a46ca61d719 100644 --- a/tests/src/JIT/Performance/CodeQuality/BenchF/Trap/Trap.csproj +++ b/tests/src/JIT/Performance/CodeQuality/BenchF/Trap/Trap.csproj @@ -13,6 +13,7 @@ $(ProgramFiles)\Common Files\microsoft shared\VSTT\11.0\UITestExtensionPackages ..\..\ 7a9bfb7d + .NETStandard,Version=v1.4 diff --git a/tests/src/JIT/Performance/CodeQuality/BenchF/Whetsto/Whetsto.csproj b/tests/src/JIT/Performance/CodeQuality/BenchF/Whetsto/Whetsto.csproj index b3860d200ca6..46898e31884c 100644 --- a/tests/src/JIT/Performance/CodeQuality/BenchF/Whetsto/Whetsto.csproj +++ b/tests/src/JIT/Performance/CodeQuality/BenchF/Whetsto/Whetsto.csproj @@ -13,6 +13,7 @@ $(ProgramFiles)\Common Files\microsoft shared\VSTT\11.0\UITestExtensionPackages ..\..\ 7a9bfb7d + .NETStandard,Version=v1.4 diff --git a/tests/src/JIT/Performance/CodeQuality/BenchI/8Queens/8Queens.csproj b/tests/src/JIT/Performance/CodeQuality/BenchI/8Queens/8Queens.csproj index 5101c0189aa2..efef461379f1 100644 --- a/tests/src/JIT/Performance/CodeQuality/BenchI/8Queens/8Queens.csproj +++ b/tests/src/JIT/Performance/CodeQuality/BenchI/8Queens/8Queens.csproj @@ -13,6 +13,7 @@ $(ProgramFiles)\Common Files\microsoft shared\VSTT\11.0\UITestExtensionPackages ..\..\ 7a9bfb7d + .NETStandard,Version=v1.4 diff --git a/tests/src/JIT/Performance/CodeQuality/BenchI/Ackermann/Ackermann.csproj b/tests/src/JIT/Performance/CodeQuality/BenchI/Ackermann/Ackermann.csproj index 0437fa292d61..8d0feb5a017f 100644 --- a/tests/src/JIT/Performance/CodeQuality/BenchI/Ackermann/Ackermann.csproj +++ b/tests/src/JIT/Performance/CodeQuality/BenchI/Ackermann/Ackermann.csproj @@ -13,6 +13,7 @@ $(ProgramFiles)\Common Files\microsoft shared\VSTT\11.0\UITestExtensionPackages ..\..\ 7a9bfb7d + .NETStandard,Version=v1.4 diff --git a/tests/src/JIT/Performance/CodeQuality/BenchI/AddArray/AddArray.csproj b/tests/src/JIT/Performance/CodeQuality/BenchI/AddArray/AddArray.csproj index 0f2e52cec966..2fd1aae52114 100644 --- a/tests/src/JIT/Performance/CodeQuality/BenchI/AddArray/AddArray.csproj +++ b/tests/src/JIT/Performance/CodeQuality/BenchI/AddArray/AddArray.csproj @@ -13,6 +13,7 @@ $(ProgramFiles)\Common Files\microsoft shared\VSTT\11.0\UITestExtensionPackages ..\..\ 7a9bfb7d + .NETStandard,Version=v1.4 diff --git a/tests/src/JIT/Performance/CodeQuality/BenchI/AddArray2/AddArray2.csproj b/tests/src/JIT/Performance/CodeQuality/BenchI/AddArray2/AddArray2.csproj index 76a5be9a1a00..cb8f12ddb2a9 100644 --- a/tests/src/JIT/Performance/CodeQuality/BenchI/AddArray2/AddArray2.csproj +++ b/tests/src/JIT/Performance/CodeQuality/BenchI/AddArray2/AddArray2.csproj @@ -13,6 +13,7 @@ $(ProgramFiles)\Common Files\microsoft shared\VSTT\11.0\UITestExtensionPackages ..\..\ 7a9bfb7d + .NETStandard,Version=v1.4 diff --git a/tests/src/JIT/Performance/CodeQuality/BenchI/Array1/Array1.csproj b/tests/src/JIT/Performance/CodeQuality/BenchI/Array1/Array1.csproj index ff6b6fce9d75..b7d791882315 100644 --- a/tests/src/JIT/Performance/CodeQuality/BenchI/Array1/Array1.csproj +++ b/tests/src/JIT/Performance/CodeQuality/BenchI/Array1/Array1.csproj @@ -13,6 +13,7 @@ $(ProgramFiles)\Common Files\microsoft shared\VSTT\11.0\UITestExtensionPackages ..\..\ 7a9bfb7d + .NETStandard,Version=v1.4 diff --git a/tests/src/JIT/Performance/CodeQuality/BenchI/Array2/Array2.csproj b/tests/src/JIT/Performance/CodeQuality/BenchI/Array2/Array2.csproj index 134badce0e55..0932bfb0ea4e 100644 --- a/tests/src/JIT/Performance/CodeQuality/BenchI/Array2/Array2.csproj +++ b/tests/src/JIT/Performance/CodeQuality/BenchI/Array2/Array2.csproj @@ -13,6 +13,7 @@ $(ProgramFiles)\Common Files\microsoft shared\VSTT\11.0\UITestExtensionPackages ..\..\ 7a9bfb7d + .NETStandard,Version=v1.4 diff --git a/tests/src/JIT/Performance/CodeQuality/BenchI/BenchE/BenchE.csproj b/tests/src/JIT/Performance/CodeQuality/BenchI/BenchE/BenchE.csproj index 4cba1ed5b5f3..0def91ffa276 100644 --- a/tests/src/JIT/Performance/CodeQuality/BenchI/BenchE/BenchE.csproj +++ b/tests/src/JIT/Performance/CodeQuality/BenchI/BenchE/BenchE.csproj @@ -13,6 +13,7 @@ $(ProgramFiles)\Common Files\microsoft shared\VSTT\11.0\UITestExtensionPackages ..\..\ 7a9bfb7d + .NETStandard,Version=v1.4 diff --git a/tests/src/JIT/Performance/CodeQuality/BenchI/BubbleSort/BubbleSort.csproj b/tests/src/JIT/Performance/CodeQuality/BenchI/BubbleSort/BubbleSort.csproj index a72e88e18b9c..6fabe89c8e5c 100644 --- a/tests/src/JIT/Performance/CodeQuality/BenchI/BubbleSort/BubbleSort.csproj +++ b/tests/src/JIT/Performance/CodeQuality/BenchI/BubbleSort/BubbleSort.csproj @@ -13,6 +13,7 @@ $(ProgramFiles)\Common Files\microsoft shared\VSTT\11.0\UITestExtensionPackages ..\..\ 7a9bfb7d + .NETStandard,Version=v1.4 diff --git a/tests/src/JIT/Performance/CodeQuality/BenchI/BubbleSort2/BubbleSort2.csproj b/tests/src/JIT/Performance/CodeQuality/BenchI/BubbleSort2/BubbleSort2.csproj index ab9e7105a2a7..7b5fb93ed902 100644 --- a/tests/src/JIT/Performance/CodeQuality/BenchI/BubbleSort2/BubbleSort2.csproj +++ b/tests/src/JIT/Performance/CodeQuality/BenchI/BubbleSort2/BubbleSort2.csproj @@ -13,6 +13,7 @@ $(ProgramFiles)\Common Files\microsoft shared\VSTT\11.0\UITestExtensionPackages ..\..\ 7a9bfb7d + .NETStandard,Version=v1.4 diff --git a/tests/src/JIT/Performance/CodeQuality/BenchI/CSieve/CSieve.csproj b/tests/src/JIT/Performance/CodeQuality/BenchI/CSieve/CSieve.csproj index a1eb705bd198..599dcd7b7425 100644 --- a/tests/src/JIT/Performance/CodeQuality/BenchI/CSieve/CSieve.csproj +++ b/tests/src/JIT/Performance/CodeQuality/BenchI/CSieve/CSieve.csproj @@ -13,6 +13,7 @@ $(ProgramFiles)\Common Files\microsoft shared\VSTT\11.0\UITestExtensionPackages ..\..\ 7a9bfb7d + .NETStandard,Version=v1.4 diff --git a/tests/src/JIT/Performance/CodeQuality/BenchI/Fib/Fib.csproj b/tests/src/JIT/Performance/CodeQuality/BenchI/Fib/Fib.csproj index 3d2b2ad1f183..2b8c995bd86c 100644 --- a/tests/src/JIT/Performance/CodeQuality/BenchI/Fib/Fib.csproj +++ b/tests/src/JIT/Performance/CodeQuality/BenchI/Fib/Fib.csproj @@ -13,6 +13,7 @@ $(ProgramFiles)\Common Files\microsoft shared\VSTT\11.0\UITestExtensionPackages ..\..\ 7a9bfb7d + .NETStandard,Version=v1.4 diff --git a/tests/src/JIT/Performance/CodeQuality/BenchI/HeapSort/HeapSort.csproj b/tests/src/JIT/Performance/CodeQuality/BenchI/HeapSort/HeapSort.csproj index 095077c7b060..2afbe54997d9 100644 --- a/tests/src/JIT/Performance/CodeQuality/BenchI/HeapSort/HeapSort.csproj +++ b/tests/src/JIT/Performance/CodeQuality/BenchI/HeapSort/HeapSort.csproj @@ -13,6 +13,7 @@ $(ProgramFiles)\Common Files\microsoft shared\VSTT\11.0\UITestExtensionPackages ..\..\ 7a9bfb7d + .NETStandard,Version=v1.4 diff --git a/tests/src/JIT/Performance/CodeQuality/BenchI/IniArray/IniArray.csproj b/tests/src/JIT/Performance/CodeQuality/BenchI/IniArray/IniArray.csproj index 2ec72bc76c77..2fab51071a6b 100644 --- a/tests/src/JIT/Performance/CodeQuality/BenchI/IniArray/IniArray.csproj +++ b/tests/src/JIT/Performance/CodeQuality/BenchI/IniArray/IniArray.csproj @@ -13,6 +13,7 @@ $(ProgramFiles)\Common Files\microsoft shared\VSTT\11.0\UITestExtensionPackages ..\..\ 7a9bfb7d + .NETStandard,Version=v1.4 diff --git a/tests/src/JIT/Performance/CodeQuality/BenchI/LogicArray/LogicArray.csproj b/tests/src/JIT/Performance/CodeQuality/BenchI/LogicArray/LogicArray.csproj index 0fcc3a01cab8..0281fb4ca72b 100644 --- a/tests/src/JIT/Performance/CodeQuality/BenchI/LogicArray/LogicArray.csproj +++ b/tests/src/JIT/Performance/CodeQuality/BenchI/LogicArray/LogicArray.csproj @@ -13,6 +13,7 @@ $(ProgramFiles)\Common Files\microsoft shared\VSTT\11.0\UITestExtensionPackages ..\..\ 7a9bfb7d + .NETStandard,Version=v1.4 diff --git a/tests/src/JIT/Performance/CodeQuality/BenchI/Midpoint/Midpoint.csproj b/tests/src/JIT/Performance/CodeQuality/BenchI/Midpoint/Midpoint.csproj index 6aa956cd6f42..e7e379be8343 100644 --- a/tests/src/JIT/Performance/CodeQuality/BenchI/Midpoint/Midpoint.csproj +++ b/tests/src/JIT/Performance/CodeQuality/BenchI/Midpoint/Midpoint.csproj @@ -13,6 +13,7 @@ $(ProgramFiles)\Common Files\microsoft shared\VSTT\11.0\UITestExtensionPackages ..\..\ 7a9bfb7d + .NETStandard,Version=v1.4 diff --git a/tests/src/JIT/Performance/CodeQuality/BenchI/MulMatrix/MulMatrix.csproj b/tests/src/JIT/Performance/CodeQuality/BenchI/MulMatrix/MulMatrix.csproj index 9be21df26276..5046b02d9e5e 100644 --- a/tests/src/JIT/Performance/CodeQuality/BenchI/MulMatrix/MulMatrix.csproj +++ b/tests/src/JIT/Performance/CodeQuality/BenchI/MulMatrix/MulMatrix.csproj @@ -13,6 +13,7 @@ $(ProgramFiles)\Common Files\microsoft shared\VSTT\11.0\UITestExtensionPackages ..\..\ 7a9bfb7d + .NETStandard,Version=v1.4 diff --git a/tests/src/JIT/Performance/CodeQuality/BenchI/NDhrystone/NDhrystone.csproj b/tests/src/JIT/Performance/CodeQuality/BenchI/NDhrystone/NDhrystone.csproj index e86f5f22dd2b..ea175a5d0430 100644 --- a/tests/src/JIT/Performance/CodeQuality/BenchI/NDhrystone/NDhrystone.csproj +++ b/tests/src/JIT/Performance/CodeQuality/BenchI/NDhrystone/NDhrystone.csproj @@ -13,6 +13,7 @@ $(ProgramFiles)\Common Files\microsoft shared\VSTT\11.0\UITestExtensionPackages ..\..\ 7a9bfb7d + .NETStandard,Version=v1.4 diff --git a/tests/src/JIT/Performance/CodeQuality/BenchI/Permutate/Permutate.csproj b/tests/src/JIT/Performance/CodeQuality/BenchI/Permutate/Permutate.csproj index bebd6b755f8a..cbe211430477 100644 --- a/tests/src/JIT/Performance/CodeQuality/BenchI/Permutate/Permutate.csproj +++ b/tests/src/JIT/Performance/CodeQuality/BenchI/Permutate/Permutate.csproj @@ -13,6 +13,7 @@ $(ProgramFiles)\Common Files\microsoft shared\VSTT\11.0\UITestExtensionPackages ..\..\ 7a9bfb7d + .NETStandard,Version=v1.4 diff --git a/tests/src/JIT/Performance/CodeQuality/BenchI/Pi/Pi.csproj b/tests/src/JIT/Performance/CodeQuality/BenchI/Pi/Pi.csproj index e6990ed7981f..d7d212eace94 100644 --- a/tests/src/JIT/Performance/CodeQuality/BenchI/Pi/Pi.csproj +++ b/tests/src/JIT/Performance/CodeQuality/BenchI/Pi/Pi.csproj @@ -13,6 +13,7 @@ $(ProgramFiles)\Common Files\microsoft shared\VSTT\11.0\UITestExtensionPackages ..\..\ 7a9bfb7d + .NETStandard,Version=v1.4 diff --git a/tests/src/JIT/Performance/CodeQuality/BenchI/Puzzle/Puzzle.csproj b/tests/src/JIT/Performance/CodeQuality/BenchI/Puzzle/Puzzle.csproj index 4dacd1c8b2ae..185bb7c08e8b 100644 --- a/tests/src/JIT/Performance/CodeQuality/BenchI/Puzzle/Puzzle.csproj +++ b/tests/src/JIT/Performance/CodeQuality/BenchI/Puzzle/Puzzle.csproj @@ -13,6 +13,7 @@ $(ProgramFiles)\Common Files\microsoft shared\VSTT\11.0\UITestExtensionPackages ..\..\ 7a9bfb7d + .NETStandard,Version=v1.4 diff --git a/tests/src/JIT/Performance/CodeQuality/BenchI/QuickSort/QuickSort.csproj b/tests/src/JIT/Performance/CodeQuality/BenchI/QuickSort/QuickSort.csproj index 6fef9d75013d..f079692c3c64 100644 --- a/tests/src/JIT/Performance/CodeQuality/BenchI/QuickSort/QuickSort.csproj +++ b/tests/src/JIT/Performance/CodeQuality/BenchI/QuickSort/QuickSort.csproj @@ -13,6 +13,7 @@ $(ProgramFiles)\Common Files\microsoft shared\VSTT\11.0\UITestExtensionPackages ..\..\ 7a9bfb7d + .NETStandard,Version=v1.4 diff --git a/tests/src/JIT/Performance/CodeQuality/BenchI/TreeInsert/TreeInsert.csproj b/tests/src/JIT/Performance/CodeQuality/BenchI/TreeInsert/TreeInsert.csproj index b19f4c113dfb..919c7d2b6e06 100644 --- a/tests/src/JIT/Performance/CodeQuality/BenchI/TreeInsert/TreeInsert.csproj +++ b/tests/src/JIT/Performance/CodeQuality/BenchI/TreeInsert/TreeInsert.csproj @@ -13,6 +13,7 @@ $(ProgramFiles)\Common Files\microsoft shared\VSTT\11.0\UITestExtensionPackages ..\..\ 7a9bfb7d + .NETStandard,Version=v1.4 diff --git a/tests/src/JIT/Performance/CodeQuality/BenchI/TreeSort/TreeSort.csproj b/tests/src/JIT/Performance/CodeQuality/BenchI/TreeSort/TreeSort.csproj index bf4eb1d9dc68..b9f78517a96f 100644 --- a/tests/src/JIT/Performance/CodeQuality/BenchI/TreeSort/TreeSort.csproj +++ b/tests/src/JIT/Performance/CodeQuality/BenchI/TreeSort/TreeSort.csproj @@ -13,6 +13,7 @@ $(ProgramFiles)\Common Files\microsoft shared\VSTT\11.0\UITestExtensionPackages ..\..\ 7a9bfb7d + .NETStandard,Version=v1.4 diff --git a/tests/src/JIT/Performance/CodeQuality/BenchI/XposMatrix/XposMatrix.csproj b/tests/src/JIT/Performance/CodeQuality/BenchI/XposMatrix/XposMatrix.csproj index ff18db8a3a02..922fd5fc3956 100644 --- a/tests/src/JIT/Performance/CodeQuality/BenchI/XposMatrix/XposMatrix.csproj +++ b/tests/src/JIT/Performance/CodeQuality/BenchI/XposMatrix/XposMatrix.csproj @@ -13,6 +13,7 @@ $(ProgramFiles)\Common Files\microsoft shared\VSTT\11.0\UITestExtensionPackages ..\..\ 7a9bfb7d + .NETStandard,Version=v1.4 diff --git a/tests/src/JIT/Performance/CodeQuality/BenchmarksGame/binarytrees/binarytrees.csproj b/tests/src/JIT/Performance/CodeQuality/BenchmarksGame/binarytrees/binarytrees.csproj index 76582ebd15fc..d970a78c23ef 100644 --- a/tests/src/JIT/Performance/CodeQuality/BenchmarksGame/binarytrees/binarytrees.csproj +++ b/tests/src/JIT/Performance/CodeQuality/BenchmarksGame/binarytrees/binarytrees.csproj @@ -13,6 +13,7 @@ $(ProgramFiles)\Common Files\microsoft shared\VSTT\11.0\UITestExtensionPackages ..\..\ 7a9bfb7d + .NETStandard,Version=v1.4 true diff --git a/tests/src/JIT/Performance/CodeQuality/BenchmarksGame/fasta/fasta.csproj b/tests/src/JIT/Performance/CodeQuality/BenchmarksGame/fasta/fasta.csproj index 3b241824b42c..c153dfae3985 100644 --- a/tests/src/JIT/Performance/CodeQuality/BenchmarksGame/fasta/fasta.csproj +++ b/tests/src/JIT/Performance/CodeQuality/BenchmarksGame/fasta/fasta.csproj @@ -13,6 +13,7 @@ $(ProgramFiles)\Common Files\microsoft shared\VSTT\11.0\UITestExtensionPackages ..\..\ 7a9bfb7d + .NETStandard,Version=v1.4 diff --git a/tests/src/JIT/Performance/CodeQuality/BenchmarksGame/fastaredux/fastaredux.csproj b/tests/src/JIT/Performance/CodeQuality/BenchmarksGame/fastaredux/fastaredux.csproj index 04f5f5b7e121..38459d270fda 100644 --- a/tests/src/JIT/Performance/CodeQuality/BenchmarksGame/fastaredux/fastaredux.csproj +++ b/tests/src/JIT/Performance/CodeQuality/BenchmarksGame/fastaredux/fastaredux.csproj @@ -13,6 +13,7 @@ $(ProgramFiles)\Common Files\microsoft shared\VSTT\11.0\UITestExtensionPackages ..\..\ 7a9bfb7d + .NETStandard,Version=v1.4 diff --git a/tests/src/JIT/Performance/CodeQuality/BenchmarksGame/nbody/nbody.csproj b/tests/src/JIT/Performance/CodeQuality/BenchmarksGame/nbody/nbody.csproj index 62af89fb113b..8bf75d660e11 100644 --- a/tests/src/JIT/Performance/CodeQuality/BenchmarksGame/nbody/nbody.csproj +++ b/tests/src/JIT/Performance/CodeQuality/BenchmarksGame/nbody/nbody.csproj @@ -13,6 +13,7 @@ $(ProgramFiles)\Common Files\microsoft shared\VSTT\11.0\UITestExtensionPackages ..\..\ 7a9bfb7d + .NETStandard,Version=v1.4 diff --git a/tests/src/JIT/Performance/CodeQuality/BenchmarksGame/pidigits/pi-digits.csproj b/tests/src/JIT/Performance/CodeQuality/BenchmarksGame/pidigits/pi-digits.csproj index e7bff7abffdd..005e93a30663 100644 --- a/tests/src/JIT/Performance/CodeQuality/BenchmarksGame/pidigits/pi-digits.csproj +++ b/tests/src/JIT/Performance/CodeQuality/BenchmarksGame/pidigits/pi-digits.csproj @@ -13,6 +13,7 @@ $(ProgramFiles)\Common Files\microsoft shared\VSTT\11.0\UITestExtensionPackages ..\..\ 7a9bfb7d + .NETStandard,Version=v1.4 diff --git a/tests/src/JIT/Performance/CodeQuality/BenchmarksGame/spectralnorm/spectralnorm.csproj b/tests/src/JIT/Performance/CodeQuality/BenchmarksGame/spectralnorm/spectralnorm.csproj index da53f168894c..74ec22ac539e 100644 --- a/tests/src/JIT/Performance/CodeQuality/BenchmarksGame/spectralnorm/spectralnorm.csproj +++ b/tests/src/JIT/Performance/CodeQuality/BenchmarksGame/spectralnorm/spectralnorm.csproj @@ -13,6 +13,7 @@ $(ProgramFiles)\Common Files\microsoft shared\VSTT\11.0\UITestExtensionPackages ..\..\ 7a9bfb7d + .NETStandard,Version=v1.4 diff --git a/tests/src/JIT/Performance/CodeQuality/Burgers/Burgers.csproj b/tests/src/JIT/Performance/CodeQuality/Burgers/Burgers.csproj index a4b51a817560..c26f22765786 100644 --- a/tests/src/JIT/Performance/CodeQuality/Burgers/Burgers.csproj +++ b/tests/src/JIT/Performance/CodeQuality/Burgers/Burgers.csproj @@ -13,6 +13,7 @@ $(ProgramFiles)\Common Files\microsoft shared\VSTT\11.0\UITestExtensionPackages ..\..\ 7a9bfb7d + .NETStandard,Version=v1.4 diff --git a/tests/src/JIT/Performance/CodeQuality/Bytemark/Bytemark.csproj b/tests/src/JIT/Performance/CodeQuality/Bytemark/Bytemark.csproj index cb3ee89a45de..160660c9dff4 100644 --- a/tests/src/JIT/Performance/CodeQuality/Bytemark/Bytemark.csproj +++ b/tests/src/JIT/Performance/CodeQuality/Bytemark/Bytemark.csproj @@ -13,6 +13,7 @@ $(ProgramFiles)\Common Files\microsoft shared\VSTT\11.0\UITestExtensionPackages ..\..\ 7a9bfb7d + .NETStandard,Version=v1.4 true diff --git a/tests/src/JIT/Performance/CodeQuality/FractalPerf/FractalPerf.csproj b/tests/src/JIT/Performance/CodeQuality/FractalPerf/FractalPerf.csproj index cf7c97baaf89..d5ad1554b555 100644 --- a/tests/src/JIT/Performance/CodeQuality/FractalPerf/FractalPerf.csproj +++ b/tests/src/JIT/Performance/CodeQuality/FractalPerf/FractalPerf.csproj @@ -13,6 +13,7 @@ $(ProgramFiles)\Common Files\microsoft shared\VSTT\11.0\UITestExtensionPackages ..\..\ 7a9bfb7d + .NETStandard,Version=v1.4 diff --git a/tests/src/JIT/Performance/CodeQuality/Inlining/ConstantArgsByte.csproj b/tests/src/JIT/Performance/CodeQuality/Inlining/ConstantArgsByte.csproj index d6e1ef9296f4..54a8a77e0326 100644 --- a/tests/src/JIT/Performance/CodeQuality/Inlining/ConstantArgsByte.csproj +++ b/tests/src/JIT/Performance/CodeQuality/Inlining/ConstantArgsByte.csproj @@ -13,6 +13,7 @@ $(ProgramFiles)\Common Files\microsoft shared\VSTT\11.0\UITestExtensionPackages ..\..\ 7a9bfb7d + .NETStandard,Version=v1.4 diff --git a/tests/src/JIT/Performance/CodeQuality/Inlining/ConstantArgsChar.csproj b/tests/src/JIT/Performance/CodeQuality/Inlining/ConstantArgsChar.csproj index 8ab437d67237..a3e120357045 100644 --- a/tests/src/JIT/Performance/CodeQuality/Inlining/ConstantArgsChar.csproj +++ b/tests/src/JIT/Performance/CodeQuality/Inlining/ConstantArgsChar.csproj @@ -13,6 +13,7 @@ $(ProgramFiles)\Common Files\microsoft shared\VSTT\11.0\UITestExtensionPackages ..\..\ 7a9bfb7d + .NETStandard,Version=v1.4 diff --git a/tests/src/JIT/Performance/CodeQuality/Inlining/ConstantArgsDouble.csproj b/tests/src/JIT/Performance/CodeQuality/Inlining/ConstantArgsDouble.csproj index 1df5e6e62bd9..beb3776b1751 100644 --- a/tests/src/JIT/Performance/CodeQuality/Inlining/ConstantArgsDouble.csproj +++ b/tests/src/JIT/Performance/CodeQuality/Inlining/ConstantArgsDouble.csproj @@ -13,6 +13,7 @@ $(ProgramFiles)\Common Files\microsoft shared\VSTT\11.0\UITestExtensionPackages ..\..\ 7a9bfb7d + .NETStandard,Version=v1.4 diff --git a/tests/src/JIT/Performance/CodeQuality/Inlining/ConstantArgsFloat.csproj b/tests/src/JIT/Performance/CodeQuality/Inlining/ConstantArgsFloat.csproj index c37b95cfa8e2..bb859c09c545 100644 --- a/tests/src/JIT/Performance/CodeQuality/Inlining/ConstantArgsFloat.csproj +++ b/tests/src/JIT/Performance/CodeQuality/Inlining/ConstantArgsFloat.csproj @@ -13,6 +13,7 @@ $(ProgramFiles)\Common Files\microsoft shared\VSTT\11.0\UITestExtensionPackages ..\..\ 7a9bfb7d + .NETStandard,Version=v1.4 diff --git a/tests/src/JIT/Performance/CodeQuality/Inlining/ConstantArgsInt.csproj b/tests/src/JIT/Performance/CodeQuality/Inlining/ConstantArgsInt.csproj index bbdf7e1c26f7..112d35c9c5a4 100644 --- a/tests/src/JIT/Performance/CodeQuality/Inlining/ConstantArgsInt.csproj +++ b/tests/src/JIT/Performance/CodeQuality/Inlining/ConstantArgsInt.csproj @@ -13,6 +13,7 @@ $(ProgramFiles)\Common Files\microsoft shared\VSTT\11.0\UITestExtensionPackages ..\..\ 7a9bfb7d + .NETStandard,Version=v1.4 diff --git a/tests/src/JIT/Performance/CodeQuality/Inlining/ConstantArgsLong.csproj b/tests/src/JIT/Performance/CodeQuality/Inlining/ConstantArgsLong.csproj index e7afc77ee340..62499dc019a0 100644 --- a/tests/src/JIT/Performance/CodeQuality/Inlining/ConstantArgsLong.csproj +++ b/tests/src/JIT/Performance/CodeQuality/Inlining/ConstantArgsLong.csproj @@ -13,6 +13,7 @@ $(ProgramFiles)\Common Files\microsoft shared\VSTT\11.0\UITestExtensionPackages ..\..\ 7a9bfb7d + .NETStandard,Version=v1.4 diff --git a/tests/src/JIT/Performance/CodeQuality/Inlining/ConstantArgsSByte.csproj b/tests/src/JIT/Performance/CodeQuality/Inlining/ConstantArgsSByte.csproj index 5cea51f8eae9..52538e0fedb1 100644 --- a/tests/src/JIT/Performance/CodeQuality/Inlining/ConstantArgsSByte.csproj +++ b/tests/src/JIT/Performance/CodeQuality/Inlining/ConstantArgsSByte.csproj @@ -13,6 +13,7 @@ $(ProgramFiles)\Common Files\microsoft shared\VSTT\11.0\UITestExtensionPackages ..\..\ 7a9bfb7d + .NETStandard,Version=v1.4 diff --git a/tests/src/JIT/Performance/CodeQuality/Inlining/ConstantArgsShort.csproj b/tests/src/JIT/Performance/CodeQuality/Inlining/ConstantArgsShort.csproj index a64281635855..0013834c8cde 100644 --- a/tests/src/JIT/Performance/CodeQuality/Inlining/ConstantArgsShort.csproj +++ b/tests/src/JIT/Performance/CodeQuality/Inlining/ConstantArgsShort.csproj @@ -13,6 +13,7 @@ $(ProgramFiles)\Common Files\microsoft shared\VSTT\11.0\UITestExtensionPackages ..\..\ 7a9bfb7d + .NETStandard,Version=v1.4 diff --git a/tests/src/JIT/Performance/CodeQuality/Inlining/ConstantArgsString.csproj b/tests/src/JIT/Performance/CodeQuality/Inlining/ConstantArgsString.csproj index d3edbf2d5136..5b5005edfb3c 100644 --- a/tests/src/JIT/Performance/CodeQuality/Inlining/ConstantArgsString.csproj +++ b/tests/src/JIT/Performance/CodeQuality/Inlining/ConstantArgsString.csproj @@ -13,6 +13,7 @@ $(ProgramFiles)\Common Files\microsoft shared\VSTT\11.0\UITestExtensionPackages ..\..\ 7a9bfb7d + .NETStandard,Version=v1.4 diff --git a/tests/src/JIT/Performance/CodeQuality/Inlining/ConstantArgsUInt.csproj b/tests/src/JIT/Performance/CodeQuality/Inlining/ConstantArgsUInt.csproj index bc177a3007e3..1775d19d1a67 100644 --- a/tests/src/JIT/Performance/CodeQuality/Inlining/ConstantArgsUInt.csproj +++ b/tests/src/JIT/Performance/CodeQuality/Inlining/ConstantArgsUInt.csproj @@ -13,6 +13,7 @@ $(ProgramFiles)\Common Files\microsoft shared\VSTT\11.0\UITestExtensionPackages ..\..\ 7a9bfb7d + .NETStandard,Version=v1.4 diff --git a/tests/src/JIT/Performance/CodeQuality/Inlining/ConstantArgsULong.csproj b/tests/src/JIT/Performance/CodeQuality/Inlining/ConstantArgsULong.csproj index 9b77a55c6315..81e10be63378 100644 --- a/tests/src/JIT/Performance/CodeQuality/Inlining/ConstantArgsULong.csproj +++ b/tests/src/JIT/Performance/CodeQuality/Inlining/ConstantArgsULong.csproj @@ -13,6 +13,7 @@ $(ProgramFiles)\Common Files\microsoft shared\VSTT\11.0\UITestExtensionPackages ..\..\ 7a9bfb7d + .NETStandard,Version=v1.4 diff --git a/tests/src/JIT/Performance/CodeQuality/Inlining/ConstantArgsUShort.csproj b/tests/src/JIT/Performance/CodeQuality/Inlining/ConstantArgsUShort.csproj index 5fa1d3359d06..fb88ffb4d2bf 100644 --- a/tests/src/JIT/Performance/CodeQuality/Inlining/ConstantArgsUShort.csproj +++ b/tests/src/JIT/Performance/CodeQuality/Inlining/ConstantArgsUShort.csproj @@ -13,6 +13,7 @@ $(ProgramFiles)\Common Files\microsoft shared\VSTT\11.0\UITestExtensionPackages ..\..\ 7a9bfb7d + .NETStandard,Version=v1.4 diff --git a/tests/src/JIT/Performance/CodeQuality/Inlining/NoThrowInline.csproj b/tests/src/JIT/Performance/CodeQuality/Inlining/NoThrowInline.csproj index 1ae24d952551..75f617658117 100644 --- a/tests/src/JIT/Performance/CodeQuality/Inlining/NoThrowInline.csproj +++ b/tests/src/JIT/Performance/CodeQuality/Inlining/NoThrowInline.csproj @@ -13,6 +13,7 @@ $(ProgramFiles)\Common Files\microsoft shared\VSTT\11.0\UITestExtensionPackages ..\..\ 7a9bfb7d + .NETStandard,Version=v1.4 diff --git a/tests/src/JIT/Performance/CodeQuality/Linq/Linq.csproj b/tests/src/JIT/Performance/CodeQuality/Linq/Linq.csproj index c9410e5de622..99fa3f03c61a 100644 --- a/tests/src/JIT/Performance/CodeQuality/Linq/Linq.csproj +++ b/tests/src/JIT/Performance/CodeQuality/Linq/Linq.csproj @@ -13,6 +13,7 @@ $(ProgramFiles)\Common Files\microsoft shared\VSTT\11.0\UITestExtensionPackages ..\..\ 7a9bfb7d + .NETStandard,Version=v1.4 diff --git a/tests/src/JIT/Performance/CodeQuality/Math/Functions/Functions.csproj b/tests/src/JIT/Performance/CodeQuality/Math/Functions/Functions.csproj index 6d101e4b1954..7e7a74e14218 100644 --- a/tests/src/JIT/Performance/CodeQuality/Math/Functions/Functions.csproj +++ b/tests/src/JIT/Performance/CodeQuality/Math/Functions/Functions.csproj @@ -14,6 +14,7 @@ ..\..\ + .NETStandard,Version=v1.4 @@ -63,4 +64,4 @@ - \ No newline at end of file + diff --git a/tests/src/JIT/Performance/CodeQuality/Roslyn/CscBench.csproj b/tests/src/JIT/Performance/CodeQuality/Roslyn/CscBench.csproj index a2a1e11aab44..b99d74b9bc09 100644 --- a/tests/src/JIT/Performance/CodeQuality/Roslyn/CscBench.csproj +++ b/tests/src/JIT/Performance/CodeQuality/Roslyn/CscBench.csproj @@ -13,6 +13,7 @@ $(ProgramFiles)\Common Files\microsoft shared\VSTT\11.0\UITestExtensionPackages ..\..\ 7a9bfb7d + .NETStandard,Version=v1.4 true diff --git a/tests/src/JIT/Performance/CodeQuality/SIMD/ConsoleMandel/ConsoleMandel.csproj b/tests/src/JIT/Performance/CodeQuality/SIMD/ConsoleMandel/ConsoleMandel.csproj index a986daecfa5a..73a4c99541bb 100644 --- a/tests/src/JIT/Performance/CodeQuality/SIMD/ConsoleMandel/ConsoleMandel.csproj +++ b/tests/src/JIT/Performance/CodeQuality/SIMD/ConsoleMandel/ConsoleMandel.csproj @@ -13,6 +13,7 @@ $(ProgramFiles)\Common Files\microsoft shared\VSTT\11.0\UITestExtensionPackages ..\..\ 7a9bfb7d + .NETStandard,Version=v1.4 diff --git a/tests/src/JIT/Performance/CodeQuality/SIMD/RayTracer/RayTracer.csproj b/tests/src/JIT/Performance/CodeQuality/SIMD/RayTracer/RayTracer.csproj index ee97b357a2d0..00db61845309 100644 --- a/tests/src/JIT/Performance/CodeQuality/SIMD/RayTracer/RayTracer.csproj +++ b/tests/src/JIT/Performance/CodeQuality/SIMD/RayTracer/RayTracer.csproj @@ -13,6 +13,7 @@ $(ProgramFiles)\Common Files\microsoft shared\VSTT\11.0\UITestExtensionPackages ..\..\ 7a9bfb7d + .NETStandard,Version=v1.4 diff --git a/tests/src/JIT/Performance/CodeQuality/SciMark/SciMark.csproj b/tests/src/JIT/Performance/CodeQuality/SciMark/SciMark.csproj index 0b633253b815..28127efebc6c 100644 --- a/tests/src/JIT/Performance/CodeQuality/SciMark/SciMark.csproj +++ b/tests/src/JIT/Performance/CodeQuality/SciMark/SciMark.csproj @@ -13,6 +13,7 @@ $(ProgramFiles)\Common Files\microsoft shared\VSTT\11.0\UITestExtensionPackages ..\..\ 7a9bfb7d + .NETStandard,Version=v1.4 SciMark diff --git a/tests/src/JIT/Performance/CodeQuality/Serialization/Deserialize.csproj b/tests/src/JIT/Performance/CodeQuality/Serialization/Deserialize.csproj index 1bdb7782d3a8..8f954077295c 100644 --- a/tests/src/JIT/Performance/CodeQuality/Serialization/Deserialize.csproj +++ b/tests/src/JIT/Performance/CodeQuality/Serialization/Deserialize.csproj @@ -13,6 +13,7 @@ $(ProgramFiles)\Common Files\microsoft shared\VSTT\11.0\UITestExtensionPackages ..\..\ 7a9bfb7d + .NETStandard,Version=v1.4 diff --git a/tests/src/JIT/Performance/CodeQuality/Serialization/Serialize.csproj b/tests/src/JIT/Performance/CodeQuality/Serialization/Serialize.csproj index 9696785c5ffe..60df05075bd3 100644 --- a/tests/src/JIT/Performance/CodeQuality/Serialization/Serialize.csproj +++ b/tests/src/JIT/Performance/CodeQuality/Serialization/Serialize.csproj @@ -13,6 +13,7 @@ $(ProgramFiles)\Common Files\microsoft shared\VSTT\11.0\UITestExtensionPackages ..\..\ 7a9bfb7d + .NETStandard,Version=v1.4 diff --git a/tests/src/JIT/Performance/CodeQuality/V8/Crypto/Crypto.csproj b/tests/src/JIT/Performance/CodeQuality/V8/Crypto/Crypto.csproj index 54868d2cc72e..112d7b5a9e01 100644 --- a/tests/src/JIT/Performance/CodeQuality/V8/Crypto/Crypto.csproj +++ b/tests/src/JIT/Performance/CodeQuality/V8/Crypto/Crypto.csproj @@ -13,6 +13,7 @@ $(ProgramFiles)\Common Files\microsoft shared\VSTT\11.0\UITestExtensionPackages ..\..\ 7a9bfb7d + .NETStandard,Version=v1.4 diff --git a/tests/src/JIT/Performance/CodeQuality/V8/DeltaBlue/DeltaBlue.csproj b/tests/src/JIT/Performance/CodeQuality/V8/DeltaBlue/DeltaBlue.csproj index ab952da799c8..0b25633aeb9c 100644 --- a/tests/src/JIT/Performance/CodeQuality/V8/DeltaBlue/DeltaBlue.csproj +++ b/tests/src/JIT/Performance/CodeQuality/V8/DeltaBlue/DeltaBlue.csproj @@ -13,6 +13,7 @@ $(ProgramFiles)\Common Files\microsoft shared\VSTT\11.0\UITestExtensionPackages ..\..\ 7a9bfb7d + .NETStandard,Version=v1.4 true diff --git a/tests/src/JIT/Performance/CodeQuality/V8/Richards/Richards.csproj b/tests/src/JIT/Performance/CodeQuality/V8/Richards/Richards.csproj index 499b6e5b5bb8..b4572c61a596 100644 --- a/tests/src/JIT/Performance/CodeQuality/V8/Richards/Richards.csproj +++ b/tests/src/JIT/Performance/CodeQuality/V8/Richards/Richards.csproj @@ -13,6 +13,7 @@ $(ProgramFiles)\Common Files\microsoft shared\VSTT\11.0\UITestExtensionPackages ..\..\ 7a9bfb7d + .NETStandard,Version=v1.4 diff --git a/tests/src/JIT/config/benchmark+roslyn/project.json b/tests/src/JIT/config/benchmark+roslyn/project.json index 1dd631b50405..1b4c7e17eb89 100644 --- a/tests/src/JIT/config/benchmark+roslyn/project.json +++ b/tests/src/JIT/config/benchmark+roslyn/project.json @@ -26,20 +26,11 @@ "xunit.runner.utility": "2.1.0" }, "frameworks": { - "netcoreapp1.0": { + "netstandard1.4": { "imports": [ "dnxcore50", "portable-net45+win8" ] } - }, - "runtimes": { - "win7-x86": {}, - "win7-x64": {}, - "ubuntu.14.04-x64": {}, - "osx.10.10-x64": {}, - "centos.7-x64": {}, - "rhel.7-x64": {}, - "debian.8-x64": {} } } diff --git a/tests/src/JIT/config/benchmark+serialize/project.json b/tests/src/JIT/config/benchmark+serialize/project.json index e346beb87587..270f4e668c42 100644 --- a/tests/src/JIT/config/benchmark+serialize/project.json +++ b/tests/src/JIT/config/benchmark+serialize/project.json @@ -23,20 +23,11 @@ "xunit.runner.utility": "2.1.0" }, "frameworks": { - "netcoreapp1.0": { + "netstandard1.4": { "imports": [ "dnxcore50", "portable-net45+win8" ] } - }, - "runtimes": { - "win7-x86": {}, - "win7-x64": {}, - "ubuntu.14.04-x64": {}, - "osx.10.10-x64": {}, - "centos.7-x64": {}, - "rhel.7-x64": {}, - "debian.8-x64": {} } } diff --git a/tests/src/JIT/config/benchmark/project.json b/tests/src/JIT/config/benchmark/project.json index 2f8b893f151c..948a2b23b6c9 100644 --- a/tests/src/JIT/config/benchmark/project.json +++ b/tests/src/JIT/config/benchmark/project.json @@ -26,20 +26,11 @@ "xunit.runner.utility": "2.1.0" }, "frameworks": { - "netcoreapp1.0": { + "netstandard1.4": { "imports": [ "dnxcore50", "portable-net45+win8" ] } - }, - "runtimes": { - "win7-x86": {}, - "win7-x64": {}, - "ubuntu.14.04-x64": {}, - "osx.10.10-x64": {}, - "centos.7-x64": {}, - "rhel.7-x64": {}, - "debian.8-x64": {} } } diff --git a/tests/src/performance/perflab/BlockCopyPerf.cs b/tests/src/performance/perflab/BlockCopyPerf.cs index 526598345e4c..076d4365586e 100644 --- a/tests/src/performance/perflab/BlockCopyPerf.cs +++ b/tests/src/performance/perflab/BlockCopyPerf.cs @@ -7,7 +7,7 @@ public class BlockCopyPerf { - [Benchmark] + [Benchmark(InnerIterationCount=1000000)] [InlineData(0)] [InlineData(10)] [InlineData(100)] @@ -19,6 +19,7 @@ public static void CallBlockCopy(int numElements) foreach (var iteration in Benchmark.Iterations) using (iteration.StartMeasurement()) - Buffer.BlockCopy(bytes, 0, bytes, numElements, numElements); + for(int i=0; i>(); foreach (var iteration in Benchmark.Iterations) using (iteration.StartMeasurement()) - res = obj is IMyInterface1; + for (int i = 0; i < Benchmark.InnerIterationCount; i++) + res = obj is IMyInterface1; return res; } - [Benchmark] + [Benchmark(InnerIterationCount=100000)] public static bool CheckIsInstAnyIsInterfaceNo() { bool res = false; Object obj = new MyClass4>(); foreach (var iteration in Benchmark.Iterations) using (iteration.StartMeasurement()) - res = obj is IMyInterface2; + for (int i = 0; i < Benchmark.InnerIterationCount; i++) + res = obj is IMyInterface2; return res; } - [Benchmark] + [Benchmark(InnerIterationCount=100000)] public static bool CheckArrayIsInterfaceYes() { bool res = false; Object[] arr = new MyClass1[5]; foreach (var iteration in Benchmark.Iterations) using (iteration.StartMeasurement()) - res = arr is IMyInterface1[]; + for (int i = 0; i < Benchmark.InnerIterationCount; i++) + res = arr is IMyInterface1[]; return res; } - [Benchmark] + [Benchmark(InnerIterationCount=100000)] public static bool CheckArrayIsInterfaceNo() { bool res = false; Object[] arr = new MyClass2[5]; foreach (var iteration in Benchmark.Iterations) using (iteration.StartMeasurement()) - res = arr is IMyInterface1[]; + for (int i = 0; i < Benchmark.InnerIterationCount; i++) + res = arr is IMyInterface1[]; return res; } } diff --git a/tests/src/performance/perflab/CastingPerf2.cs b/tests/src/performance/perflab/CastingPerf2.cs index b2cc448b7f24..1f874a56c368 100644 --- a/tests/src/performance/perflab/CastingPerf2.cs +++ b/tests/src/performance/perflab/CastingPerf2.cs @@ -95,143 +95,158 @@ public class CastingPerf public static IFoo ifo, ifo1, ifo2, ifo3, ifo4, ifo5, ifo6, ifo7, ifo8, ifo9; public static IFoo_5 if_0, if_1, if_2, if_3, if_4, if_5, if_6, if_7, if_8, if_9; - [Benchmark] + [Benchmark(InnerIterationCount=200000)] public static void ObjFooIsObj() { foreach (var iteration in Benchmark.Iterations) using (iteration.StartMeasurement()) - o = foo; + for (int i = 0; i < Benchmark.InnerIterationCount; i++) + o = foo; } - [Benchmark] + [Benchmark(InnerIterationCount=200000)] public static void FooObjIsFoo() { o = foo; foreach (var iteration in Benchmark.Iterations) using (iteration.StartMeasurement()) - f = (Foo)o; + for (int i = 0; i < Benchmark.InnerIterationCount; i++) + f = (Foo)o; } - [Benchmark] + [Benchmark(InnerIterationCount=200000)] public static void FooObjIsNull() { foreach (var iteration in Benchmark.Iterations) using (iteration.StartMeasurement()) - o = (Foo)n; + for (int i = 0; i < Benchmark.InnerIterationCount; i++) + o = (Foo)n; } - [Benchmark] + [Benchmark(InnerIterationCount=100000)] public static void FooObjIsDescendant() { o = foo_5; foreach (var iteration in Benchmark.Iterations) using (iteration.StartMeasurement()) - f = (Foo)o; + for (int i = 0; i < Benchmark.InnerIterationCount; i++) + f = (Foo)o; } - [Benchmark] + [Benchmark(InnerIterationCount=200000)] public static void IFooFooIsIFoo() { foreach (var iteration in Benchmark.Iterations) using (iteration.StartMeasurement()) - ifo = foo; + for (int i = 0; i < Benchmark.InnerIterationCount; i++) + ifo = foo; } - [Benchmark] + [Benchmark(InnerIterationCount=100000)] public static void IFooObjIsIFoo() { o = foo; foreach (var iteration in Benchmark.Iterations) using (iteration.StartMeasurement()) - ifo = (IFoo)o; + for (int i = 0; i < Benchmark.InnerIterationCount; i++) + ifo = (IFoo)o; } - [Benchmark] + [Benchmark(InnerIterationCount=100000)] public static void IFooObjIsIFooInterAlia() { o = foo2; foreach (var iteration in Benchmark.Iterations) using (iteration.StartMeasurement()) - if_0 = (IFoo_5)o; + for (int i = 0; i < Benchmark.InnerIterationCount; i++) + if_0 = (IFoo_5)o; } - [Benchmark] + [Benchmark(InnerIterationCount=100000)] public static void IFooObjIsDescendantOfIFoo() { o = foo_5; foreach (var iteration in Benchmark.Iterations) using (iteration.StartMeasurement()) - ifo = (IFoo)o; + for (int i = 0; i < Benchmark.InnerIterationCount; i++) + ifo = (IFoo)o; } - [Benchmark] + [Benchmark(InnerIterationCount=100000)] public static void ObjInt() { foreach (var iteration in Benchmark.Iterations) using (iteration.StartMeasurement()) - o = (Object)j; + for (int i = 0; i < Benchmark.InnerIterationCount; i++) + o = (Object)j; } - [Benchmark] + [Benchmark(InnerIterationCount=200000)] public static void IntObj() { o = (Object)1; foreach (var iteration in Benchmark.Iterations) using (iteration.StartMeasurement()) - j = (int)o; + for (int i = 0; i < Benchmark.InnerIterationCount; i++) + j = (int)o; } - [Benchmark] + [Benchmark(InnerIterationCount=100000)] public static void ObjScalarValueType() { foreach (var iteration in Benchmark.Iterations) using (iteration.StartMeasurement()) - o = svt; + for (int i = 0; i < Benchmark.InnerIterationCount; i++) + o = svt; } - [Benchmark] + [Benchmark(InnerIterationCount=300000)] public static void ScalarValueTypeObj() { o = svt; foreach (var iteration in Benchmark.Iterations) using (iteration.StartMeasurement()) - svt = (FooSVT)o; + for (int i = 0; i < Benchmark.InnerIterationCount; i++) + svt = (FooSVT)o; } - [Benchmark] + [Benchmark(InnerIterationCount=100000)] public static void ObjObjrefValueType() { foreach (var iteration in Benchmark.Iterations) using (iteration.StartMeasurement()) - o = (Object)orvt; + for (int i = 0; i < Benchmark.InnerIterationCount; i++) + o = (Object)orvt; } - [Benchmark] + [Benchmark(InnerIterationCount=200000)] public static void ObjrefValueTypeObj() { o = (Object)orvt; foreach (var iteration in Benchmark.Iterations) using (iteration.StartMeasurement()) - orvt = (FooORVT)o; + for (int i = 0; i < Benchmark.InnerIterationCount; i++) + orvt = (FooORVT)o; } - [Benchmark] + [Benchmark(InnerIterationCount=100000)] public static void FooObjCastIfIsa() { o = foo; foreach (var iteration in Benchmark.Iterations) using (iteration.StartMeasurement()) - if (o is Foo) - f = (Foo)o; + for (int i = 0; i < Benchmark.InnerIterationCount; i++) + if (o is Foo) + f = (Foo)o; } } } \ No newline at end of file diff --git a/tests/src/performance/perflab/DelegatePerf.cs b/tests/src/performance/perflab/DelegatePerf.cs index 667a352f0914..abc311a4455c 100644 --- a/tests/src/performance/perflab/DelegatePerf.cs +++ b/tests/src/performance/perflab/DelegatePerf.cs @@ -12,7 +12,7 @@ public class DelegatePerf { - [Benchmark] + [Benchmark(InnerIterationCount=200000)] public void DelegateInvoke() { DelegateLong dl = new DelegateLong(this.Invocable1); @@ -22,10 +22,11 @@ public void DelegateInvoke() foreach (var iteration in Benchmark.Iterations) using (iteration.StartMeasurement()) - ret = dl(obj, 100, 100); + for (int i = 0; i < Benchmark.InnerIterationCount; i++) + ret = dl(obj, 100, 100); } - [Benchmark] + [Benchmark(InnerIterationCount=1000)] public void MulticastDelegateCombineInvoke() { MultiDelegate md = null; @@ -46,23 +47,26 @@ public void MulticastDelegateCombineInvoke() using (iteration.StartMeasurement()) { - md = (MultiDelegate)Delegate.Combine(md1, md); - md = (MultiDelegate)Delegate.Combine(md2, md); - md = (MultiDelegate)Delegate.Combine(md3, md); - md = (MultiDelegate)Delegate.Combine(md4, md); - md = (MultiDelegate)Delegate.Combine(md5, md); - md = (MultiDelegate)Delegate.Combine(md6, md); - md = (MultiDelegate)Delegate.Combine(md7, md); - md = (MultiDelegate)Delegate.Combine(md8, md); - md = (MultiDelegate)Delegate.Combine(md9, md); - md = (MultiDelegate)Delegate.Combine(md10, md); + for (int i = 0; i < Benchmark.InnerIterationCount; i++) + { + md = (MultiDelegate)Delegate.Combine(md1, md); + md = (MultiDelegate)Delegate.Combine(md2, md); + md = (MultiDelegate)Delegate.Combine(md3, md); + md = (MultiDelegate)Delegate.Combine(md4, md); + md = (MultiDelegate)Delegate.Combine(md5, md); + md = (MultiDelegate)Delegate.Combine(md6, md); + md = (MultiDelegate)Delegate.Combine(md7, md); + md = (MultiDelegate)Delegate.Combine(md8, md); + md = (MultiDelegate)Delegate.Combine(md9, md); + md = (MultiDelegate)Delegate.Combine(md10, md); + } } } md(obj, 100, 100); } - [Benchmark] + [Benchmark(InnerIterationCount=10000)] [InlineData(100)] [InlineData(1000)] public void MulticastDelegateInvoke(int length) @@ -75,7 +79,8 @@ public void MulticastDelegateInvoke(int length) foreach (var iteration in Benchmark.Iterations) using (iteration.StartMeasurement()) - md(obj, 100, 100); + for (int i = 0; i < Benchmark.InnerIterationCount; i++) + md(obj, 100, 100); } internal virtual long Invocable1(Object obj, long x, long y) diff --git a/tests/src/performance/perflab/EnumPerf.cs b/tests/src/performance/perflab/EnumPerf.cs index 9e435721f938..bf8d89b476c1 100644 --- a/tests/src/performance/perflab/EnumPerf.cs +++ b/tests/src/performance/perflab/EnumPerf.cs @@ -19,7 +19,7 @@ public enum Color public class EnumPerf { - [Benchmark] + [Benchmark(InnerIterationCount=300000)] [InlineData(Color.Red)] public static void EnumCompareTo(Color color) { @@ -27,10 +27,11 @@ public static void EnumCompareTo(Color color) foreach (var iteration in Benchmark.Iterations) using (iteration.StartMeasurement()) - color.CompareTo(white); + for (int i = 0; i < Benchmark.InnerIterationCount; i++) + color.CompareTo(white); } - [Benchmark] + [Benchmark(InnerIterationCount=300000)] public static Type ObjectGetType() { Type tmp = null; @@ -38,12 +39,13 @@ public static Type ObjectGetType() foreach (var iteration in Benchmark.Iterations) using (iteration.StartMeasurement()) - tmp = black.GetType(); + for (int i = 0; i < Benchmark.InnerIterationCount; i++) + tmp = black.GetType(); return tmp; } - [Benchmark] + [Benchmark(InnerIterationCount=300000)] public static Type ObjectGetTypeNoBoxing() { Type tmp = null; @@ -51,12 +53,13 @@ public static Type ObjectGetTypeNoBoxing() foreach (var iteration in Benchmark.Iterations) using (iteration.StartMeasurement()) - tmp = black.GetType(); + for (int i = 0; i < Benchmark.InnerIterationCount; i++) + tmp = black.GetType(); return tmp; } - [Benchmark] + [Benchmark(InnerIterationCount=300000)] public static bool EnumEquals() { Color black = Color.Black; @@ -65,7 +68,8 @@ public static bool EnumEquals() foreach (var iteration in Benchmark.Iterations) using (iteration.StartMeasurement()) - tmp = black.Equals(white); + for (int i = 0; i < Benchmark.InnerIterationCount; i++) + tmp = black.Equals(white); return tmp; } diff --git a/tests/src/performance/perflab/LowLevelPerf.cs b/tests/src/performance/perflab/LowLevelPerf.cs index 76b3794fe6a4..30c6734d456e 100644 --- a/tests/src/performance/perflab/LowLevelPerf.cs +++ b/tests/src/performance/perflab/LowLevelPerf.cs @@ -9,49 +9,55 @@ public class LowLevelPerf { - [Benchmark] + [Benchmark(InnerIterationCount=100000)] public static void EmptyStaticFunction() { foreach (var iteration in Benchmark.Iterations) { using (iteration.StartMeasurement()) { - Class.EmptyStaticFunction(); - Class.EmptyStaticFunction(); - Class.EmptyStaticFunction(); - Class.EmptyStaticFunction(); - Class.EmptyStaticFunction(); - Class.EmptyStaticFunction(); - Class.EmptyStaticFunction(); - Class.EmptyStaticFunction(); - Class.EmptyStaticFunction(); - Class.EmptyStaticFunction(); + for (int i = 0; i < Benchmark.InnerIterationCount; i++) + { + Class.EmptyStaticFunction(); + Class.EmptyStaticFunction(); + Class.EmptyStaticFunction(); + Class.EmptyStaticFunction(); + Class.EmptyStaticFunction(); + Class.EmptyStaticFunction(); + Class.EmptyStaticFunction(); + Class.EmptyStaticFunction(); + Class.EmptyStaticFunction(); + Class.EmptyStaticFunction(); + } } } } - [Benchmark] + [Benchmark(InnerIterationCount=100000)] public static void EmptyStaticFunction5Arg() { foreach (var iteration in Benchmark.Iterations) { using (iteration.StartMeasurement()) { - Class.EmptyStaticFunction5Arg(1, 2, 3, 4, 5); - Class.EmptyStaticFunction5Arg(1, 2, 3, 4, 5); - Class.EmptyStaticFunction5Arg(1, 2, 3, 4, 5); - Class.EmptyStaticFunction5Arg(1, 2, 3, 4, 5); - Class.EmptyStaticFunction5Arg(1, 2, 3, 4, 5); - Class.EmptyStaticFunction5Arg(1, 2, 3, 4, 5); - Class.EmptyStaticFunction5Arg(1, 2, 3, 4, 5); - Class.EmptyStaticFunction5Arg(1, 2, 3, 4, 5); - Class.EmptyStaticFunction5Arg(1, 2, 3, 4, 5); - Class.EmptyStaticFunction5Arg(1, 2, 3, 4, 5); + for (int i = 0; i < Benchmark.InnerIterationCount; i++) + { + Class.EmptyStaticFunction5Arg(1, 2, 3, 4, 5); + Class.EmptyStaticFunction5Arg(1, 2, 3, 4, 5); + Class.EmptyStaticFunction5Arg(1, 2, 3, 4, 5); + Class.EmptyStaticFunction5Arg(1, 2, 3, 4, 5); + Class.EmptyStaticFunction5Arg(1, 2, 3, 4, 5); + Class.EmptyStaticFunction5Arg(1, 2, 3, 4, 5); + Class.EmptyStaticFunction5Arg(1, 2, 3, 4, 5); + Class.EmptyStaticFunction5Arg(1, 2, 3, 4, 5); + Class.EmptyStaticFunction5Arg(1, 2, 3, 4, 5); + Class.EmptyStaticFunction5Arg(1, 2, 3, 4, 5); + } } } } - [Benchmark] + [Benchmark(InnerIterationCount=100000)] public static void EmptyInstanceFunction() { Class aClass = new Class(); @@ -60,21 +66,24 @@ public static void EmptyInstanceFunction() { using (iteration.StartMeasurement()) { - aClass.EmptyInstanceFunction(); - aClass.EmptyInstanceFunction(); - aClass.EmptyInstanceFunction(); - aClass.EmptyInstanceFunction(); - aClass.EmptyInstanceFunction(); - aClass.EmptyInstanceFunction(); - aClass.EmptyInstanceFunction(); - aClass.EmptyInstanceFunction(); - aClass.EmptyInstanceFunction(); - aClass.EmptyInstanceFunction(); + for (int i = 0; i < Benchmark.InnerIterationCount; i++) + { + aClass.EmptyInstanceFunction(); + aClass.EmptyInstanceFunction(); + aClass.EmptyInstanceFunction(); + aClass.EmptyInstanceFunction(); + aClass.EmptyInstanceFunction(); + aClass.EmptyInstanceFunction(); + aClass.EmptyInstanceFunction(); + aClass.EmptyInstanceFunction(); + aClass.EmptyInstanceFunction(); + aClass.EmptyInstanceFunction(); + } } } } - [Benchmark] + [Benchmark(InnerIterationCount=100000)] public static void InterfaceInterfaceMethod() { AnInterface aInterface = new Class(); @@ -83,16 +92,19 @@ public static void InterfaceInterfaceMethod() { using (iteration.StartMeasurement()) { - CallInterfaceMethod(aInterface); - CallInterfaceMethod(aInterface); - CallInterfaceMethod(aInterface); - CallInterfaceMethod(aInterface); - CallInterfaceMethod(aInterface); - CallInterfaceMethod(aInterface); - CallInterfaceMethod(aInterface); - CallInterfaceMethod(aInterface); - CallInterfaceMethod(aInterface); - CallInterfaceMethod(aInterface); + for (int i = 0; i < Benchmark.InnerIterationCount; i++) + { + CallInterfaceMethod(aInterface); + CallInterfaceMethod(aInterface); + CallInterfaceMethod(aInterface); + CallInterfaceMethod(aInterface); + CallInterfaceMethod(aInterface); + CallInterfaceMethod(aInterface); + CallInterfaceMethod(aInterface); + CallInterfaceMethod(aInterface); + CallInterfaceMethod(aInterface); + CallInterfaceMethod(aInterface); + } } } } @@ -103,7 +115,7 @@ private static void CallInterfaceMethod(AnInterface aInterface) aInterface.InterfaceMethod(); } - [Benchmark] + [Benchmark(InnerIterationCount=100000)] public static void InterfaceInterfaceMethodLongHierarchy() { AnInterface aInterface = new LongHierarchyChildClass(); @@ -123,10 +135,11 @@ public static void InterfaceInterfaceMethodLongHierarchy() foreach (var iteration in Benchmark.Iterations) using (iteration.StartMeasurement()) - CallInterfaceMethod(aInterface); + for (int i = 0; i < Benchmark.InnerIterationCount; i++) + CallInterfaceMethod(aInterface); } - [Benchmark] + [Benchmark(InnerIterationCount=100000)] public static void InterfaceInterfaceMethodSwitchCallType() { AnInterface aInterface = new LongHierarchyChildClass(); @@ -136,13 +149,16 @@ public static void InterfaceInterfaceMethodSwitchCallType() { using (iteration.StartMeasurement()) { - CallInterfaceMethod(aInterface); - CallInterfaceMethod(aInterface1); + for (int i = 0; i < Benchmark.InnerIterationCount; i++) + { + CallInterfaceMethod(aInterface); + CallInterfaceMethod(aInterface1); + } } } } - [Benchmark] + [Benchmark(InnerIterationCount=100000)] public static int ClassVirtualMethod() { SuperClass aClass = new Class(); @@ -150,42 +166,46 @@ public static int ClassVirtualMethod() int x = 0; foreach (var iteration in Benchmark.Iterations) using (iteration.StartMeasurement()) - x = aClass.VirtualMethod(); + for (int i = 0; i < Benchmark.InnerIterationCount; i++) + x = aClass.VirtualMethod(); return x; } - [Benchmark] + [Benchmark(InnerIterationCount=100000)] public static void SealedClassInterfaceMethod() { SealedClass aSealedClass = new SealedClass(); foreach (var iteration in Benchmark.Iterations) using (iteration.StartMeasurement()) - aSealedClass.InterfaceMethod(); + for (int i = 0; i < Benchmark.InnerIterationCount; i++) + aSealedClass.InterfaceMethod(); } - [Benchmark] + [Benchmark(InnerIterationCount=100000)] public static void StructWithInterfaceInterfaceMethod() { StructWithInterface aStructWithInterface = new StructWithInterface(); foreach (var iteration in Benchmark.Iterations) using (iteration.StartMeasurement()) - aStructWithInterface.InterfaceMethod(); + for (int i = 0; i < Benchmark.InnerIterationCount; i++) + aStructWithInterface.InterfaceMethod(); } - [Benchmark] + [Benchmark(InnerIterationCount=100000)] public static void StaticIntPlus() { Class aClass = new Class(); foreach (var iteration in Benchmark.Iterations) using (iteration.StartMeasurement()) - Class.aStaticInt += 1; + for (int i = 0; i < Benchmark.InnerIterationCount; i++) + Class.aStaticInt += 1; } - [Benchmark] + [Benchmark(InnerIterationCount=100000)] public static bool ObjectStringIsString() { object aObjectString = "aString1"; @@ -193,12 +213,13 @@ public static bool ObjectStringIsString() foreach (var iteration in Benchmark.Iterations) using (iteration.StartMeasurement()) - b = aObjectString is String; + for (int i = 0; i < Benchmark.InnerIterationCount; i++) + b = aObjectString is String; return b; } - [Benchmark] + [Benchmark(InnerIterationCount=100000)] public static void NewDelegateClassEmptyInstanceFn() { Class aClass = new Class(); @@ -206,10 +227,11 @@ public static void NewDelegateClassEmptyInstanceFn() foreach (var iteration in Benchmark.Iterations) using (iteration.StartMeasurement()) - aMyDelegate = new MyDelegate(aClass.EmptyInstanceFunction); + for (int i = 0; i < Benchmark.InnerIterationCount; i++) + aMyDelegate = new MyDelegate(aClass.EmptyInstanceFunction); } - [Benchmark] + [Benchmark(InnerIterationCount=100000)] public static void NewDelegateClassEmptyStaticFn() { Class aClass = new Class(); @@ -217,10 +239,11 @@ public static void NewDelegateClassEmptyStaticFn() foreach (var iteration in Benchmark.Iterations) using (iteration.StartMeasurement()) - aMyDelegate = new MyDelegate(Class.EmptyStaticFunction); + for (int i = 0; i < Benchmark.InnerIterationCount; i++) + aMyDelegate = new MyDelegate(Class.EmptyStaticFunction); } - [Benchmark] + [Benchmark(InnerIterationCount=100000)] public static void InstanceDelegate() { Class aClass = new Class(); @@ -228,10 +251,11 @@ public static void InstanceDelegate() foreach (var iteration in Benchmark.Iterations) using (iteration.StartMeasurement()) - aInstanceDelegate(); + for (int i = 0; i < Benchmark.InnerIterationCount; i++) + aInstanceDelegate(); } - [Benchmark] + [Benchmark(InnerIterationCount=100000)] public static void StaticDelegate() { Class aClass = new Class(); @@ -239,10 +263,11 @@ public static void StaticDelegate() foreach (var iteration in Benchmark.Iterations) using (iteration.StartMeasurement()) - aStaticDelegate(); + for (int i = 0; i < Benchmark.InnerIterationCount; i++) + aStaticDelegate(); } - [Benchmark] + [Benchmark(InnerIterationCount=100000)] public static void MeasureEvents() { Class aClass = new Class(); @@ -250,28 +275,31 @@ public static void MeasureEvents() foreach (var iteration in Benchmark.Iterations) using (iteration.StartMeasurement()) - aClass.MeasureFire100(); + for (int i = 0; i < Benchmark.InnerIterationCount; i++) + aClass.MeasureFire100(); } - [Benchmark] + [Benchmark(InnerIterationCount=100000)] public static void GenericClassWithIntGenericInstanceField() { GenericClass aGenericClassWithInt = new GenericClass(); foreach (var iteration in Benchmark.Iterations) using (iteration.StartMeasurement()) - aGenericClassWithInt.aGenericInstanceFieldT = 1; + for (int i = 0; i < Benchmark.InnerIterationCount; i++) + aGenericClassWithInt.aGenericInstanceFieldT = 1; } - [Benchmark] + [Benchmark(InnerIterationCount=100000)] public static void GenericClassGenericStaticField() { foreach (var iteration in Benchmark.Iterations) using (iteration.StartMeasurement()) - GenericClass.aGenericStaticFieldT = 1; + for (int i = 0; i < Benchmark.InnerIterationCount; i++) + GenericClass.aGenericStaticFieldT = 1; } - [Benchmark] + [Benchmark(InnerIterationCount=100000)] public static int GenericClassGenericInstanceMethod() { GenericClass aGenericClassWithInt = new GenericClass(); @@ -279,35 +307,38 @@ public static int GenericClassGenericInstanceMethod() int x = 0; foreach (var iteration in Benchmark.Iterations) using (iteration.StartMeasurement()) - x = aGenericClassWithInt.ClassGenericInstanceMethod(); + for (int i = 0; i < Benchmark.InnerIterationCount; i++) + x = aGenericClassWithInt.ClassGenericInstanceMethod(); return x; } - [Benchmark] + [Benchmark(InnerIterationCount=100000)] public static int GenericClassGenericStaticMethod() { int x = 0; foreach (var iteration in Benchmark.Iterations) using (iteration.StartMeasurement()) - x = GenericClass.ClassGenericStaticMethod(); + for (int i = 0; i < Benchmark.InnerIterationCount; i++) + x = GenericClass.ClassGenericStaticMethod(); return x; } - [Benchmark] + [Benchmark(InnerIterationCount=100000)] public static int GenericGenericMethod() { // Warmup int x = 0; foreach (var iteration in Benchmark.Iterations) using (iteration.StartMeasurement()) - x = Class.GenericMethod(); + for (int i = 0; i < Benchmark.InnerIterationCount; i++) + x = Class.GenericMethod(); return x; } - [Benchmark] + [Benchmark(InnerIterationCount=100000)] public static void GenericClassWithSTringGenericInstanceMethod() { GenericClass aGenericClassWithString = new GenericClass(); @@ -315,10 +346,11 @@ public static void GenericClassWithSTringGenericInstanceMethod() foreach (var iteration in Benchmark.Iterations) using (iteration.StartMeasurement()) - aGenericClassWithString.aGenericInstanceFieldT = aString; + for (int i = 0; i < Benchmark.InnerIterationCount; i++) + aGenericClassWithString.aGenericInstanceFieldT = aString; } - [Benchmark] + [Benchmark(InnerIterationCount=100000)] public static int ForeachOverList100Elements() { List iList = new List(); @@ -328,13 +360,14 @@ public static int ForeachOverList100Elements() int iResult = 0; foreach (var iteration in Benchmark.Iterations) using (iteration.StartMeasurement()) - foreach (int i in iList) - iResult = i; + for (int i = 0; i < Benchmark.InnerIterationCount; i++) + foreach (int j in iList) + iResult = j; return iResult; } - [Benchmark] + [Benchmark(InnerIterationCount=100000)] public static Type TypeReflectionObjectGetType() { Type type = null; @@ -342,12 +375,13 @@ public static Type TypeReflectionObjectGetType() foreach (var iteration in Benchmark.Iterations) using (iteration.StartMeasurement()) - type = anObject.GetType(); + for (int i = 0; i < Benchmark.InnerIterationCount; i++) + type = anObject.GetType(); return type; } - [Benchmark] + [Benchmark(InnerIterationCount=100000)] public static Type TypeReflectionArrayGetType() { Type type = null; @@ -355,12 +389,13 @@ public static Type TypeReflectionArrayGetType() foreach (var iteration in Benchmark.Iterations) using (iteration.StartMeasurement()) - type = anArray.GetType(); + for (int i = 0; i < Benchmark.InnerIterationCount; i++) + type = anArray.GetType(); return type; } - [Benchmark] + [Benchmark(InnerIterationCount=100000)] public static string IntegerFormatting() { int number = Int32.MaxValue; @@ -368,7 +403,8 @@ public static string IntegerFormatting() string result = null; foreach (var iteration in Benchmark.Iterations) using (iteration.StartMeasurement()) - result = number.ToString(); + for (int i = 0; i < Benchmark.InnerIterationCount; i++) + result = number.ToString(); return result; } diff --git a/tests/src/performance/perflab/PerfLab.csproj b/tests/src/performance/perflab/PerfLab.csproj index 6090bd81ab52..38fe57364a9f 100644 --- a/tests/src/performance/perflab/PerfLab.csproj +++ b/tests/src/performance/perflab/PerfLab.csproj @@ -15,12 +15,17 @@ ..\..\ 7a9bfb7d $(DefineConstants);STATIC + .NETStandard,Version=v1.4 + + ..\project.json + ..\project.lock.json + False diff --git a/tests/src/performance/perflab/ReflectionPerf.cs b/tests/src/performance/perflab/ReflectionPerf.cs index a4b1086dacc6..954bbe7e9262 100644 --- a/tests/src/performance/perflab/ReflectionPerf.cs +++ b/tests/src/performance/perflab/ReflectionPerf.cs @@ -56,345 +56,375 @@ static GetMember() s_t20 = typeof(Class20).GetTypeInfo(); } - [Benchmark] + [Benchmark(InnerIterationCount=1000)] public static void GetField() { foreach (var iteration in Benchmark.Iterations) { using (iteration.StartMeasurement()) { - s_t1.GetDeclaredField("f1"); - s_t1.GetDeclaredField("f2"); - s_t1.GetDeclaredField("f3"); + for (int i = 0; i < Benchmark.InnerIterationCount; i++) + { + s_t1.GetDeclaredField("f1"); + s_t1.GetDeclaredField("f2"); + s_t1.GetDeclaredField("f3"); + } } } } - [Benchmark] + [Benchmark(InnerIterationCount=1000)] public static void GetMethod1() { foreach (var iteration in Benchmark.Iterations) { using (iteration.StartMeasurement()) { - s_t1.GetDeclaredMethod("m1"); - s_t1.GetDeclaredMethod("m2"); - s_t1.GetDeclaredMethod("m3"); + for (int i = 0; i < Benchmark.InnerIterationCount; i++) + { + s_t1.GetDeclaredMethod("m1"); + s_t1.GetDeclaredMethod("m2"); + s_t1.GetDeclaredMethod("m3"); + } } } } - [Benchmark] + [Benchmark(InnerIterationCount=1000)] public static void GetMethod2() { foreach (var iteration in Benchmark.Iterations) { using (iteration.StartMeasurement()) { - s_t1.GetDeclaredMethod("m1"); - s_t1.GetDeclaredMethod("m2"); - s_t1.GetDeclaredMethod("m3"); - s_t2.GetDeclaredMethod("m1"); - s_t2.GetDeclaredMethod("m2"); - s_t2.GetDeclaredMethod("m3"); + for (int i = 0; i < Benchmark.InnerIterationCount; i++) + { + s_t1.GetDeclaredMethod("m1"); + s_t1.GetDeclaredMethod("m2"); + s_t1.GetDeclaredMethod("m3"); + s_t2.GetDeclaredMethod("m1"); + s_t2.GetDeclaredMethod("m2"); + s_t2.GetDeclaredMethod("m3"); + } } } } - [Benchmark] + [Benchmark(InnerIterationCount=1000)] public static void GetMethod3() { foreach (var iteration in Benchmark.Iterations) { using (iteration.StartMeasurement()) { - s_t1.GetDeclaredMethod("m1"); - s_t1.GetDeclaredMethod("m2"); //TODO: check if we can really get the method - s_t1.GetDeclaredMethod("m3"); - s_t2.GetDeclaredMethod("m1"); - s_t2.GetDeclaredMethod("m2"); - s_t2.GetDeclaredMethod("m3"); - s_t3.GetDeclaredMethod("m1"); - s_t3.GetDeclaredMethod("m2"); - s_t3.GetDeclaredMethod("m3"); + for (int i = 0; i < Benchmark.InnerIterationCount; i++) + { + s_t1.GetDeclaredMethod("m1"); + s_t1.GetDeclaredMethod("m2"); //TODO: check if we can really get the method + s_t1.GetDeclaredMethod("m3"); + s_t2.GetDeclaredMethod("m1"); + s_t2.GetDeclaredMethod("m2"); + s_t2.GetDeclaredMethod("m3"); + s_t3.GetDeclaredMethod("m1"); + s_t3.GetDeclaredMethod("m2"); + s_t3.GetDeclaredMethod("m3"); + } } } } - [Benchmark] + [Benchmark(InnerIterationCount=1000)] public static void GetMethod4() { foreach (var iteration in Benchmark.Iterations) { using (iteration.StartMeasurement()) { - s_t1.GetDeclaredMethod("m1"); - s_t1.GetDeclaredMethod("m2"); //TODO: check if we can really get the method - s_t1.GetDeclaredMethod("m3"); - s_t2.GetDeclaredMethod("m1"); - s_t2.GetDeclaredMethod("m2"); - s_t2.GetDeclaredMethod("m3"); - s_t3.GetDeclaredMethod("m1"); - s_t3.GetDeclaredMethod("m2"); - s_t3.GetDeclaredMethod("m3"); - s_t4.GetDeclaredMethod("m1"); - s_t4.GetDeclaredMethod("m2"); - s_t4.GetDeclaredMethod("m3"); + for (int i = 0; i < Benchmark.InnerIterationCount; i++) + { + s_t1.GetDeclaredMethod("m1"); + s_t1.GetDeclaredMethod("m2"); //TODO: check if we can really get the method + s_t1.GetDeclaredMethod("m3"); + s_t2.GetDeclaredMethod("m1"); + s_t2.GetDeclaredMethod("m2"); + s_t2.GetDeclaredMethod("m3"); + s_t3.GetDeclaredMethod("m1"); + s_t3.GetDeclaredMethod("m2"); + s_t3.GetDeclaredMethod("m3"); + s_t4.GetDeclaredMethod("m1"); + s_t4.GetDeclaredMethod("m2"); + s_t4.GetDeclaredMethod("m3"); + } } } } - [Benchmark] + [Benchmark(InnerIterationCount=1000)] public static void GetMethod5() { foreach (var iteration in Benchmark.Iterations) { using (iteration.StartMeasurement()) { - s_t1.GetDeclaredMethod("m1"); - s_t1.GetDeclaredMethod("m2"); - s_t1.GetDeclaredMethod("m3"); - s_t2.GetDeclaredMethod("m1"); - s_t2.GetDeclaredMethod("m2"); - s_t2.GetDeclaredMethod("m3"); - s_t3.GetDeclaredMethod("m1"); - s_t3.GetDeclaredMethod("m2"); - s_t3.GetDeclaredMethod("m3"); - s_t4.GetDeclaredMethod("m1"); - s_t4.GetDeclaredMethod("m2"); - s_t4.GetDeclaredMethod("m3"); - s_t5.GetDeclaredMethod("m1"); - s_t5.GetDeclaredMethod("m2"); - s_t5.GetDeclaredMethod("m3"); + for (int i = 0; i < Benchmark.InnerIterationCount; i++) + { + s_t1.GetDeclaredMethod("m1"); + s_t1.GetDeclaredMethod("m2"); + s_t1.GetDeclaredMethod("m3"); + s_t2.GetDeclaredMethod("m1"); + s_t2.GetDeclaredMethod("m2"); + s_t2.GetDeclaredMethod("m3"); + s_t3.GetDeclaredMethod("m1"); + s_t3.GetDeclaredMethod("m2"); + s_t3.GetDeclaredMethod("m3"); + s_t4.GetDeclaredMethod("m1"); + s_t4.GetDeclaredMethod("m2"); + s_t4.GetDeclaredMethod("m3"); + s_t5.GetDeclaredMethod("m1"); + s_t5.GetDeclaredMethod("m2"); + s_t5.GetDeclaredMethod("m3"); + } } } } - [Benchmark] + [Benchmark(InnerIterationCount=1000)] public static void GetMethod10() { foreach (var iteration in Benchmark.Iterations) { using (iteration.StartMeasurement()) { - s_t1.GetDeclaredMethod("m1"); - s_t1.GetDeclaredMethod("m2"); - s_t1.GetDeclaredMethod("m3"); - s_t2.GetDeclaredMethod("m1"); - s_t2.GetDeclaredMethod("m2"); - s_t2.GetDeclaredMethod("m3"); - s_t3.GetDeclaredMethod("m1"); - s_t3.GetDeclaredMethod("m2"); - s_t3.GetDeclaredMethod("m3"); - s_t4.GetDeclaredMethod("m1"); - s_t4.GetDeclaredMethod("m2"); - s_t4.GetDeclaredMethod("m3"); - s_t5.GetDeclaredMethod("m1"); - s_t5.GetDeclaredMethod("m2"); - s_t5.GetDeclaredMethod("m3"); - - s_t6.GetDeclaredMethod("m1"); - s_t6.GetDeclaredMethod("m2"); - s_t6.GetDeclaredMethod("m3"); - s_t7.GetDeclaredMethod("m1"); - s_t7.GetDeclaredMethod("m2"); - s_t7.GetDeclaredMethod("m3"); - s_t8.GetDeclaredMethod("m1"); - s_t8.GetDeclaredMethod("m2"); - s_t8.GetDeclaredMethod("m3"); - s_t9.GetDeclaredMethod("m1"); - s_t9.GetDeclaredMethod("m2"); - s_t9.GetDeclaredMethod("m3"); - s_t10.GetDeclaredMethod("m1"); - s_t10.GetDeclaredMethod("m2"); - s_t10.GetDeclaredMethod("m3"); + for (int i = 0; i < Benchmark.InnerIterationCount; i++) + { + s_t1.GetDeclaredMethod("m1"); + s_t1.GetDeclaredMethod("m2"); + s_t1.GetDeclaredMethod("m3"); + s_t2.GetDeclaredMethod("m1"); + s_t2.GetDeclaredMethod("m2"); + s_t2.GetDeclaredMethod("m3"); + s_t3.GetDeclaredMethod("m1"); + s_t3.GetDeclaredMethod("m2"); + s_t3.GetDeclaredMethod("m3"); + s_t4.GetDeclaredMethod("m1"); + s_t4.GetDeclaredMethod("m2"); + s_t4.GetDeclaredMethod("m3"); + s_t5.GetDeclaredMethod("m1"); + s_t5.GetDeclaredMethod("m2"); + s_t5.GetDeclaredMethod("m3"); + + s_t6.GetDeclaredMethod("m1"); + s_t6.GetDeclaredMethod("m2"); + s_t6.GetDeclaredMethod("m3"); + s_t7.GetDeclaredMethod("m1"); + s_t7.GetDeclaredMethod("m2"); + s_t7.GetDeclaredMethod("m3"); + s_t8.GetDeclaredMethod("m1"); + s_t8.GetDeclaredMethod("m2"); + s_t8.GetDeclaredMethod("m3"); + s_t9.GetDeclaredMethod("m1"); + s_t9.GetDeclaredMethod("m2"); + s_t9.GetDeclaredMethod("m3"); + s_t10.GetDeclaredMethod("m1"); + s_t10.GetDeclaredMethod("m2"); + s_t10.GetDeclaredMethod("m3"); + } } } } - [Benchmark] + [Benchmark(InnerIterationCount=1000)] public static void GetMethod12() { foreach (var iteration in Benchmark.Iterations) { using (iteration.StartMeasurement()) { - s_t1.GetDeclaredMethod("m1"); - s_t1.GetDeclaredMethod("m2"); - s_t1.GetDeclaredMethod("m3"); - s_t2.GetDeclaredMethod("m1"); - s_t2.GetDeclaredMethod("m2"); - s_t2.GetDeclaredMethod("m3"); - s_t3.GetDeclaredMethod("m1"); - s_t3.GetDeclaredMethod("m2"); - s_t3.GetDeclaredMethod("m3"); - s_t4.GetDeclaredMethod("m1"); - s_t4.GetDeclaredMethod("m2"); - s_t4.GetDeclaredMethod("m3"); - s_t5.GetDeclaredMethod("m1"); - s_t5.GetDeclaredMethod("m2"); - s_t5.GetDeclaredMethod("m3"); - - s_t6.GetDeclaredMethod("m1"); - s_t6.GetDeclaredMethod("m2"); - s_t6.GetDeclaredMethod("m3"); - s_t7.GetDeclaredMethod("m1"); - s_t7.GetDeclaredMethod("m2"); - s_t7.GetDeclaredMethod("m3"); - s_t8.GetDeclaredMethod("m1"); - s_t8.GetDeclaredMethod("m2"); - s_t8.GetDeclaredMethod("m3"); - s_t9.GetDeclaredMethod("m1"); - s_t9.GetDeclaredMethod("m2"); - s_t9.GetDeclaredMethod("m3"); - s_t10.GetDeclaredMethod("m1"); - s_t10.GetDeclaredMethod("m2"); - s_t10.GetDeclaredMethod("m3"); - - s_t11.GetDeclaredMethod("m1"); - s_t11.GetDeclaredMethod("m2"); - s_t11.GetDeclaredMethod("m3"); - s_t12.GetDeclaredMethod("m1"); - s_t12.GetDeclaredMethod("m2"); - s_t12.GetDeclaredMethod("m3"); + for (int i = 0; i < Benchmark.InnerIterationCount; i++) + { + s_t1.GetDeclaredMethod("m1"); + s_t1.GetDeclaredMethod("m2"); + s_t1.GetDeclaredMethod("m3"); + s_t2.GetDeclaredMethod("m1"); + s_t2.GetDeclaredMethod("m2"); + s_t2.GetDeclaredMethod("m3"); + s_t3.GetDeclaredMethod("m1"); + s_t3.GetDeclaredMethod("m2"); + s_t3.GetDeclaredMethod("m3"); + s_t4.GetDeclaredMethod("m1"); + s_t4.GetDeclaredMethod("m2"); + s_t4.GetDeclaredMethod("m3"); + s_t5.GetDeclaredMethod("m1"); + s_t5.GetDeclaredMethod("m2"); + s_t5.GetDeclaredMethod("m3"); + + s_t6.GetDeclaredMethod("m1"); + s_t6.GetDeclaredMethod("m2"); + s_t6.GetDeclaredMethod("m3"); + s_t7.GetDeclaredMethod("m1"); + s_t7.GetDeclaredMethod("m2"); + s_t7.GetDeclaredMethod("m3"); + s_t8.GetDeclaredMethod("m1"); + s_t8.GetDeclaredMethod("m2"); + s_t8.GetDeclaredMethod("m3"); + s_t9.GetDeclaredMethod("m1"); + s_t9.GetDeclaredMethod("m2"); + s_t9.GetDeclaredMethod("m3"); + s_t10.GetDeclaredMethod("m1"); + s_t10.GetDeclaredMethod("m2"); + s_t10.GetDeclaredMethod("m3"); + + s_t11.GetDeclaredMethod("m1"); + s_t11.GetDeclaredMethod("m2"); + s_t11.GetDeclaredMethod("m3"); + s_t12.GetDeclaredMethod("m1"); + s_t12.GetDeclaredMethod("m2"); + s_t12.GetDeclaredMethod("m3"); + } } } } - [Benchmark] + [Benchmark(InnerIterationCount=1000)] public static void GetMethod15() { foreach (var iteration in Benchmark.Iterations) { using (iteration.StartMeasurement()) { - s_t1.GetDeclaredMethod("m1"); - s_t1.GetDeclaredMethod("m2"); - s_t1.GetDeclaredMethod("m3"); - s_t2.GetDeclaredMethod("m1"); - s_t2.GetDeclaredMethod("m2"); - s_t2.GetDeclaredMethod("m3"); - s_t3.GetDeclaredMethod("m1"); - s_t3.GetDeclaredMethod("m2"); - s_t3.GetDeclaredMethod("m3"); - s_t4.GetDeclaredMethod("m1"); - s_t4.GetDeclaredMethod("m2"); - s_t4.GetDeclaredMethod("m3"); - s_t5.GetDeclaredMethod("m1"); - s_t5.GetDeclaredMethod("m2"); - s_t5.GetDeclaredMethod("m3"); - - s_t6.GetDeclaredMethod("m1"); - s_t6.GetDeclaredMethod("m2"); - s_t6.GetDeclaredMethod("m3"); - s_t7.GetDeclaredMethod("m1"); - s_t7.GetDeclaredMethod("m2"); - s_t7.GetDeclaredMethod("m3"); - s_t8.GetDeclaredMethod("m1"); - s_t8.GetDeclaredMethod("m2"); - s_t8.GetDeclaredMethod("m3"); - s_t9.GetDeclaredMethod("m1"); - s_t9.GetDeclaredMethod("m2"); - s_t9.GetDeclaredMethod("m3"); - s_t10.GetDeclaredMethod("m1"); - s_t10.GetDeclaredMethod("m2"); - s_t10.GetDeclaredMethod("m3"); - - s_t11.GetDeclaredMethod("m1"); - s_t11.GetDeclaredMethod("m2"); - s_t11.GetDeclaredMethod("m3"); - s_t12.GetDeclaredMethod("m1"); - s_t12.GetDeclaredMethod("m2"); - s_t12.GetDeclaredMethod("m3"); - s_t13.GetDeclaredMethod("m1"); - s_t13.GetDeclaredMethod("m2"); - s_t13.GetDeclaredMethod("m3"); - s_t14.GetDeclaredMethod("m1"); - s_t14.GetDeclaredMethod("m2"); - s_t14.GetDeclaredMethod("m3"); - s_t15.GetDeclaredMethod("m1"); - s_t15.GetDeclaredMethod("m2"); - s_t15.GetDeclaredMethod("m3"); + for (int i = 0; i < Benchmark.InnerIterationCount; i++) + { + s_t1.GetDeclaredMethod("m1"); + s_t1.GetDeclaredMethod("m2"); + s_t1.GetDeclaredMethod("m3"); + s_t2.GetDeclaredMethod("m1"); + s_t2.GetDeclaredMethod("m2"); + s_t2.GetDeclaredMethod("m3"); + s_t3.GetDeclaredMethod("m1"); + s_t3.GetDeclaredMethod("m2"); + s_t3.GetDeclaredMethod("m3"); + s_t4.GetDeclaredMethod("m1"); + s_t4.GetDeclaredMethod("m2"); + s_t4.GetDeclaredMethod("m3"); + s_t5.GetDeclaredMethod("m1"); + s_t5.GetDeclaredMethod("m2"); + s_t5.GetDeclaredMethod("m3"); + + s_t6.GetDeclaredMethod("m1"); + s_t6.GetDeclaredMethod("m2"); + s_t6.GetDeclaredMethod("m3"); + s_t7.GetDeclaredMethod("m1"); + s_t7.GetDeclaredMethod("m2"); + s_t7.GetDeclaredMethod("m3"); + s_t8.GetDeclaredMethod("m1"); + s_t8.GetDeclaredMethod("m2"); + s_t8.GetDeclaredMethod("m3"); + s_t9.GetDeclaredMethod("m1"); + s_t9.GetDeclaredMethod("m2"); + s_t9.GetDeclaredMethod("m3"); + s_t10.GetDeclaredMethod("m1"); + s_t10.GetDeclaredMethod("m2"); + s_t10.GetDeclaredMethod("m3"); + + s_t11.GetDeclaredMethod("m1"); + s_t11.GetDeclaredMethod("m2"); + s_t11.GetDeclaredMethod("m3"); + s_t12.GetDeclaredMethod("m1"); + s_t12.GetDeclaredMethod("m2"); + s_t12.GetDeclaredMethod("m3"); + s_t13.GetDeclaredMethod("m1"); + s_t13.GetDeclaredMethod("m2"); + s_t13.GetDeclaredMethod("m3"); + s_t14.GetDeclaredMethod("m1"); + s_t14.GetDeclaredMethod("m2"); + s_t14.GetDeclaredMethod("m3"); + s_t15.GetDeclaredMethod("m1"); + s_t15.GetDeclaredMethod("m2"); + s_t15.GetDeclaredMethod("m3"); + } } } } - [Benchmark] + [Benchmark(InnerIterationCount=1000)] public static void GetMethod20() { foreach (var iteration in Benchmark.Iterations) { using (iteration.StartMeasurement()) { - s_t1.GetDeclaredMethod("m1"); - s_t1.GetDeclaredMethod("m2"); - s_t1.GetDeclaredMethod("m3"); - s_t2.GetDeclaredMethod("m1"); - s_t2.GetDeclaredMethod("m2"); - s_t2.GetDeclaredMethod("m3"); - s_t3.GetDeclaredMethod("m1"); - s_t3.GetDeclaredMethod("m2"); - s_t3.GetDeclaredMethod("m3"); - s_t4.GetDeclaredMethod("m1"); - s_t4.GetDeclaredMethod("m2"); - s_t4.GetDeclaredMethod("m3"); - s_t5.GetDeclaredMethod("m1"); - s_t5.GetDeclaredMethod("m2"); - s_t5.GetDeclaredMethod("m3"); - - s_t6.GetDeclaredMethod("m1"); - s_t6.GetDeclaredMethod("m2"); - s_t6.GetDeclaredMethod("m3"); - s_t7.GetDeclaredMethod("m1"); - s_t7.GetDeclaredMethod("m2"); - s_t7.GetDeclaredMethod("m3"); - s_t8.GetDeclaredMethod("m1"); - s_t8.GetDeclaredMethod("m2"); - s_t8.GetDeclaredMethod("m3"); - s_t9.GetDeclaredMethod("m1"); - s_t9.GetDeclaredMethod("m2"); - s_t9.GetDeclaredMethod("m3"); - s_t10.GetDeclaredMethod("m1"); - s_t10.GetDeclaredMethod("m2"); - s_t10.GetDeclaredMethod("m3"); - - s_t11.GetDeclaredMethod("m1"); - s_t11.GetDeclaredMethod("m2"); - s_t11.GetDeclaredMethod("m3"); - s_t12.GetDeclaredMethod("m1"); - s_t12.GetDeclaredMethod("m2"); - s_t12.GetDeclaredMethod("m3"); - s_t13.GetDeclaredMethod("m1"); - s_t13.GetDeclaredMethod("m2"); - s_t13.GetDeclaredMethod("m3"); - s_t14.GetDeclaredMethod("m1"); - s_t14.GetDeclaredMethod("m2"); - s_t14.GetDeclaredMethod("m3"); - s_t15.GetDeclaredMethod("m1"); - s_t15.GetDeclaredMethod("m2"); - s_t15.GetDeclaredMethod("m3"); - - s_t16.GetDeclaredMethod("m1"); - s_t16.GetDeclaredMethod("m2"); - s_t16.GetDeclaredMethod("m3"); - s_t17.GetDeclaredMethod("m1"); - s_t17.GetDeclaredMethod("m2"); - s_t17.GetDeclaredMethod("m3"); - s_t18.GetDeclaredMethod("m1"); - s_t18.GetDeclaredMethod("m2"); - s_t18.GetDeclaredMethod("m3"); - s_t19.GetDeclaredMethod("m1"); - s_t19.GetDeclaredMethod("m2"); - s_t19.GetDeclaredMethod("m3"); - s_t20.GetDeclaredMethod("m1"); - s_t20.GetDeclaredMethod("m2"); - s_t20.GetDeclaredMethod("m3"); + for (int i = 0; i < Benchmark.InnerIterationCount; i++) + { + s_t1.GetDeclaredMethod("m1"); + s_t1.GetDeclaredMethod("m2"); + s_t1.GetDeclaredMethod("m3"); + s_t2.GetDeclaredMethod("m1"); + s_t2.GetDeclaredMethod("m2"); + s_t2.GetDeclaredMethod("m3"); + s_t3.GetDeclaredMethod("m1"); + s_t3.GetDeclaredMethod("m2"); + s_t3.GetDeclaredMethod("m3"); + s_t4.GetDeclaredMethod("m1"); + s_t4.GetDeclaredMethod("m2"); + s_t4.GetDeclaredMethod("m3"); + s_t5.GetDeclaredMethod("m1"); + s_t5.GetDeclaredMethod("m2"); + s_t5.GetDeclaredMethod("m3"); + + s_t6.GetDeclaredMethod("m1"); + s_t6.GetDeclaredMethod("m2"); + s_t6.GetDeclaredMethod("m3"); + s_t7.GetDeclaredMethod("m1"); + s_t7.GetDeclaredMethod("m2"); + s_t7.GetDeclaredMethod("m3"); + s_t8.GetDeclaredMethod("m1"); + s_t8.GetDeclaredMethod("m2"); + s_t8.GetDeclaredMethod("m3"); + s_t9.GetDeclaredMethod("m1"); + s_t9.GetDeclaredMethod("m2"); + s_t9.GetDeclaredMethod("m3"); + s_t10.GetDeclaredMethod("m1"); + s_t10.GetDeclaredMethod("m2"); + s_t10.GetDeclaredMethod("m3"); + + s_t11.GetDeclaredMethod("m1"); + s_t11.GetDeclaredMethod("m2"); + s_t11.GetDeclaredMethod("m3"); + s_t12.GetDeclaredMethod("m1"); + s_t12.GetDeclaredMethod("m2"); + s_t12.GetDeclaredMethod("m3"); + s_t13.GetDeclaredMethod("m1"); + s_t13.GetDeclaredMethod("m2"); + s_t13.GetDeclaredMethod("m3"); + s_t14.GetDeclaredMethod("m1"); + s_t14.GetDeclaredMethod("m2"); + s_t14.GetDeclaredMethod("m3"); + s_t15.GetDeclaredMethod("m1"); + s_t15.GetDeclaredMethod("m2"); + s_t15.GetDeclaredMethod("m3"); + + s_t16.GetDeclaredMethod("m1"); + s_t16.GetDeclaredMethod("m2"); + s_t16.GetDeclaredMethod("m3"); + s_t17.GetDeclaredMethod("m1"); + s_t17.GetDeclaredMethod("m2"); + s_t17.GetDeclaredMethod("m3"); + s_t18.GetDeclaredMethod("m1"); + s_t18.GetDeclaredMethod("m2"); + s_t18.GetDeclaredMethod("m3"); + s_t19.GetDeclaredMethod("m1"); + s_t19.GetDeclaredMethod("m2"); + s_t19.GetDeclaredMethod("m3"); + s_t20.GetDeclaredMethod("m1"); + s_t20.GetDeclaredMethod("m2"); + s_t20.GetDeclaredMethod("m3"); + } } } } /* - [Benchmark] + [Benchmark(InnerIterationCount=1000)] public static void GetConstructor() { foreach (var iteration in Benchmark.Iterations) @@ -420,7 +450,7 @@ public static void GetConstructor() } } - [Benchmark] + [Benchmark(InnerIterationCount=1000)] public static void GetProperty() { foreach (var iteration in Benchmark.Iterations) @@ -458,7 +488,7 @@ public static void GetProperty() } } - [Benchmark] + [Benchmark(InnerIterationCount=1000)] public static void GetEvent() { foreach (var iteration in Benchmark.Iterations) diff --git a/tests/src/performance/perflab/StackWalk.cs b/tests/src/performance/perflab/StackWalk.cs index 5a9eb888116b..da36fd07ec9d 100644 --- a/tests/src/performance/perflab/StackWalk.cs +++ b/tests/src/performance/perflab/StackWalk.cs @@ -7,7 +7,7 @@ public static class StackWalk { - [Benchmark] + [Benchmark(InnerIterationCount=1000)] public static void Walk() { A(5); @@ -68,7 +68,8 @@ private static int Z(int a) { foreach (var iteration in Benchmark.Iterations) using (iteration.StartMeasurement()) - GC.Collect(0); + for (int i = 0; i < Benchmark.InnerIterationCount; i++) + GC.Collect(0); return 55; } diff --git a/tests/src/performance/perflab/ThreadingPerf.cs b/tests/src/performance/perflab/ThreadingPerf.cs index f8f999fa6c8d..5cb16d49e188 100644 --- a/tests/src/performance/perflab/ThreadingPerf.cs +++ b/tests/src/performance/perflab/ThreadingPerf.cs @@ -10,59 +10,65 @@ public class JITIntrinsics private static int s_i; private static string s_s; - [Benchmark] + [Benchmark(InnerIterationCount=100000)] public static void CompareExchangeIntNoMatch() { s_i = 0; foreach (var iteration in Benchmark.Iterations) using (iteration.StartMeasurement()) - Interlocked.CompareExchange(ref s_i, 5, -1); + for (int i = 0; i < Benchmark.InnerIterationCount; i++) + Interlocked.CompareExchange(ref s_i, 5, -1); } - [Benchmark] + [Benchmark(InnerIterationCount=100000)] public static void CompareExchangeIntMatch() { foreach (var iteration in Benchmark.Iterations) { s_i = 1; using (iteration.StartMeasurement()) - Interlocked.CompareExchange(ref s_i, 5, 1); + for (int i = 0; i < Benchmark.InnerIterationCount; i++) + Interlocked.CompareExchange(ref s_i, 5, 1); } } - [Benchmark] + [Benchmark(InnerIterationCount=100000)] public static void CompareExchangeObjNoMatch() { s_s = "Hello"; foreach (var iteration in Benchmark.Iterations) using (iteration.StartMeasurement()) - Interlocked.CompareExchange(ref s_s, "World", "What?"); + for (int i = 0; i < Benchmark.InnerIterationCount; i++) + Interlocked.CompareExchange(ref s_s, "World", "What?"); } - [Benchmark] + [Benchmark(InnerIterationCount=100000)] public static void CompareExchangeObjMatch() { foreach (var iteration in Benchmark.Iterations) { s_s = "What?"; using (iteration.StartMeasurement()) - Interlocked.CompareExchange(ref s_s, "World", "What?"); + for (int i = 0; i < Benchmark.InnerIterationCount; i++) + Interlocked.CompareExchange(ref s_s, "World", "What?"); } } - [Benchmark] + [Benchmark(InnerIterationCount=100000)] public static void InterlockedIncrement() { foreach (var iteration in Benchmark.Iterations) using (iteration.StartMeasurement()) - Interlocked.Increment(ref s_i); + for (int i = 0; i < Benchmark.InnerIterationCount; i++) + Interlocked.Increment(ref s_i); } - [Benchmark] + [Benchmark(InnerIterationCount=100000)] public static void InterlockedDecrement() { foreach (var iteration in Benchmark.Iterations) using (iteration.StartMeasurement()) - Interlocked.Decrement(ref s_i); + for (int i = 0; i < Benchmark.InnerIterationCount; i++) + Interlocked.Decrement(ref s_i); } } \ No newline at end of file diff --git a/tests/src/performance/project.json b/tests/src/performance/project.json new file mode 100644 index 000000000000..851d47b76466 --- /dev/null +++ b/tests/src/performance/project.json @@ -0,0 +1,39 @@ +{ + "dependencies": { + "Microsoft.DotNet.xunit.performance": "1.0.0-alpha-build0035", + "Microsoft.DotNet.xunit.performance.analysis": "1.0.0-alpha-build0035", + "Microsoft.DotNet.xunit.performance.runner.Windows": "1.0.0-alpha-build0035", + "Microsoft.NETCore.Platforms": "1.1.0-preview1-24530-04", + "System.Collections.NonGeneric": "4.3.0-preview1-24530-04", + "System.Console": "4.3.0-preview1-24530-04", + "System.IO.FileSystem": "4.3.0-preview1-24530-04", + "System.Linq": "4.3.0-preview1-24530-04", + "System.Linq.Expressions": "4.3.0-preview1-24530-04", + "System.Numerics.Vectors": "4.3.0-preview1-24530-04", + "System.Reflection": "4.3.0-preview1-24530-04", + "System.Reflection.Extensions": "4.3.0-preview1-24530-04", + "System.Reflection.TypeExtensions": "4.3.0-preview1-24530-04", + "System.Runtime": "4.3.0-preview1-24530-04", + "System.Runtime.Extensions": "4.3.0-preview1-24530-04", + "System.Runtime.Numerics": "4.3.0-preview1-24530-04", + "System.Text.RegularExpressions": "4.3.0-preview1-24530-04", + "System.Threading": "4.3.0-preview1-24530-04", + "System.Threading.Tasks": "4.3.0-preview1-24530-04", + "System.Threading.Tasks.Parallel": "4.3.0-preview1-24530-04", + "System.Diagnostics.Process": "4.3.0-preview1-24530-04", + "System.Xml.XmlDocument": "4.3.0-preview1-24530-04", + "System.Xml.XPath": "4.3.0-preview1-24530-04", + "System.Xml.XPath.XmlDocument": "4.3.0-preview1-24530-04", + "xunit": "2.1.0", + "xunit.console.netcore": "1.0.2-prerelease-00101", + "xunit.runner.utility": "2.1.0" + }, + "frameworks": { + "netstandard1.4": { + "imports": [ + "dnxcore50", + "portable-net45+win8" + ] + } + } +}