-
Notifications
You must be signed in to change notification settings - Fork 2.6k
Updating version of xUnit-Performance-Api #11987
Conversation
- This update contains a fix for this issue: microsoft/xunit-performance#230 - Consolidate the Api version in two places: `dependencies.prop` and `PerfHarness.csproj` - Move performance log files to root directory where Jenkins can archive them
<PackageReference Include="xunit.performance.api"> | ||
<Version>1.0.0-beta-build0006</Version> | ||
</PackageReference> | ||
<PackageReference Include="xunit.performance.api" Version="1.0.0-beta-build0007" /> |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I don't think this works with all versions of msbuild - @weshaggard can you comment?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Correct this will only work if you load this project with the new msbuild 15 or msbuild core that comes with the SDK. If someone tries to load this project in VS2015 or msbuild <15 then it will blow-up. It might not be an issue for this particular project but something that needs to be kept in mind.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@weshaggard Is there a way to import dir.props
and dir.targets
in the new csproj
file? I would like to have the version of the package in a central place. Is that a supported scenario?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Yes you can still do an import the same way as you used to be able to <Import Project="$([MSBuild]::GetDirectoryNameOfFileAbove($(MSBuildThisFileDirectory), dir.props))\dir.props" />
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
If I add Project="$([MSBuild]::GetDirectoryNameOfFileAbove($(MSBuildThisFileDirectory), dir.props))\dir.props" />
to the PerfHarness.csproj
, then I can restore, but I cannot publish. What am I missing?
$ "%CORECLR_ROOT%Tools\dotnetcli\dotnet.exe" --info
.NET Command Line Tools (2.0.0-preview1-005724)
Product Information:
Version: 2.0.0-preview1-005724
Commit SHA-1 hash: e391b5d5f3
Runtime Environment:
OS Name: Windows
OS Version: 10.0.15063
OS Platform: Windows
RID: win10-x64
Base Path: %CORECLR_ROOT%\Tools\dotnetcli\sdk\2.0.0-preview1-005724\
$ "%CORECLR_ROOT%\Tools\dotnetcli\dotnet.exe" restore "%CORECLR_ROOT%\tests\src\Common\PerfHarness\PerfHarness.csproj"
%CORECLR_ROOT%\tests\src\Common\PerfHarness\PerfHarness.csproj
Restoring packages for %CORECLR_ROOT%\tests\src\Common\PerfHarness\PerfHarness.csproj...
Lock file has not changed. Skipping lock file write. Path: %CORECLR_ROOT%\tests\src\Common\PerfHarness\obj\project.assets.json
Restore completed in 280.64 ms for %CORECLR_ROOT%\tests\src\Common\PerfHarness\PerfHarness.csproj.
NuGet Config files used:
%CORECLR_ROOT%\tests\src\NuGet.Config
%APPDATA%\NuGet\NuGet.Config
C:\Program Files (x86)\NuGet\Config\Microsoft.VisualStudio.Offline.config
Feeds used:
https://dotnet.myget.org/F/dotnet-core/api/v3/index.json
https://www.myget.org/F/nugetbuild/api/v3/index.json
https://api.nuget.org/v3/index.json
$ "%CORECLR_ROOT%\Tools\dotnetcli\dotnet.exe" publish "%CORECLR_ROOT%\tests\src\Common\PerfHarness\PerfHarness.csproj" -c Release -o "%CORECLR_ROOT%\sandbox"
Microsoft (R) Build Engine version 15.2.93.5465
Copyright (C) Microsoft Corporation. All rights reserved.
%CORECLR_ROOT%\Tools\Microsoft.CSharp.Core.targets(106,11): error MSB4064: The "OverrideToolHost" parameter is not supported by the "Csc" task. Verify the parameter exists on the task, and it is a settable public instance property. [%CORECLR_ROOT%\tests\src\Common\PerfHarness\PerfHarness.csproj]
%CORECLR_ROOT%\Tools\Microsoft.CSharp.Core.targets(67,5): error MSB4063: The "Csc" task could not be initialized with its input parameters. [%CORECLR_ROOT%\tests\src\Common\PerfHarness\PerfHarness.csproj]
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Other than the question Will raised about the one project file edit, LGTM.
- Removed unused variable - Updated the RunId to contain the "Profile" flag because we are not copying/renaming the output files anymore - Fixed the output to console, so it is easier to see on the Jenkins job the sccript steps live and get an exact repro step if needed
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Correctness-wise LGTM, just a few stylistic questions.
rem output is redirected). This can be useful to provide information on where | ||
rem the script is executing. | ||
rem **************************************************************************** | ||
if defined _debug ( |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Could we delete the entire :print_to_console
function? I don't think anybody uses it anymore, right?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I should be reusing that code. I'll fix it.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
🆗
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
fixed.
tests/scripts/run-xunit-perf.cmd
Outdated
|
||
echo/ | ||
echo/%USERNAME%@%COMPUTERNAME% "%CD%" | ||
echo/[%DATE%][%TIME:~0,-3%] $ !LV_CMD! |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
It looks like :run_cmd
already prints this out. Doesn't this cause us to just print everything twice?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
No in this case, because we are redirecting to a log file.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Ah... d'oh... I missed the obvious. Looks good.
test ci please |
@dotnet-bot test Windows_NT x64 perf |
@jorive did you see performance shifts in some tests? Can you summarize? |
Yes, I did see some performance shifts. Some benchmarks improved timings and some got slower. I'll send you links to the results... |
- This update contains a fix for this issue: microsoft/xunit-performance#230 - Consolidate the Api version in two places: `dependencies.prop` and `PerfHarness.csproj` - Move performance log files to root directory where Jenkins can archive them - Fixed the output to console, so it is easier to see on the Jenkins job the sccript steps live and get an exact repro step if needed
* Enable linux perf runs (#11905) - Removing `[assembly: MeasureInstructionsRetired]` from performance tests. - Due to this issue: microsoft/xunit-performance#231, we are blocked from running on performance tests on Linux. The tag is not used by infrastructure and it is passed during runtime when profiling on Windows. - Adding the option to execute CoreRun with the stability prefix. - Moving file to be archived by Jenkins and updating groovy file. - Setting the maximum number of iterations. * Updating version of xUnit-Performance-Api (#11987) - This update contains a fix for this issue: microsoft/xunit-performance#230 - Consolidate the Api version in two places: `dependencies.prop` and `PerfHarness.csproj` - Move performance log files to root directory where Jenkins can archive them - Fixed the output to console, so it is easier to see on the Jenkins job the sccript steps live and get an exact repro step if needed
dependencies.prop
andPerfHarness.csproj
NOTE: This change will reflect on some benchmarks improving their timings