Skip to content
This repository was archived by the owner on Jan 23, 2023. It is now read-only.

Conversation

jorive
Copy link

@jorive jorive commented May 30, 2017

NOTE: This change will reflect on some benchmarks improving their timings

- 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" />
Copy link
Member

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?

Copy link
Member

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.

Copy link
Author

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?

Copy link
Member

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" />

Copy link
Author

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]

Copy link
Member

@AndyAyersMS AndyAyersMS left a 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.

José Rivero added 3 commits May 30, 2017 16:40
- 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
Copy link

@dpodder dpodder left a 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 (
Copy link

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?

Copy link
Author

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.

Copy link

Choose a reason for hiding this comment

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

🆗

Copy link
Author

Choose a reason for hiding this comment

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

fixed.


echo/
echo/%USERNAME%@%COMPUTERNAME% "%CD%"
echo/[%DATE%][%TIME:~0,-3%] $ !LV_CMD!
Copy link

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?

Copy link
Author

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.

Copy link

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.

José Rivero added 3 commits May 31, 2017 12:35
- Mistakenly removed the CORE_ROOT environment variable because it was not used anywhere on the script, but it turns out that it is needed by some benchmarks.
@jorive
Copy link
Author

jorive commented May 31, 2017

test ci please
@dotnet-bot test Windows_NT x64 perf
@dotnet-bot test Windows_NT x86 perf
@dotnet-bot test Ubuntu14.04 perf

@jorive
Copy link
Author

jorive commented May 31, 2017

@dotnet-bot test Windows_NT x64 perf

@jorive jorive merged commit 1d2e6f8 into dotnet:master Jun 1, 2017
@jorive jorive deleted the dev/slimmer-xunit branch June 1, 2017 15:56
@AndyAyersMS
Copy link
Member

@jorive did you see performance shifts in some tests? Can you summarize?

@jorive
Copy link
Author

jorive commented Jun 1, 2017

Yes, I did see some performance shifts. Some benchmarks improved timings and some got slower. I'll send you links to the results...
Looking some more, it seems that those changes were within the normal noise.
Please also keep in mind that only the tests\src\performance\perflab\* and JIT\Performance\CodeQuality\Span\* are the only ones using Benchmark.InnerIterationCount

brianrob pushed a commit to brianrob/coreclr that referenced this pull request Jun 6, 2017
- 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
brianrob added a commit that referenced this pull request Jun 6, 2017
* 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
@karelz karelz modified the milestone: 2.1.0 Aug 28, 2017
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

7 participants