New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Run Disassembly Diagnoser without extra run #543

Closed
adamsitnik opened this Issue Sep 10, 2017 · 5 comments

Comments

Projects
None yet
3 participants
@adamsitnik
Member

adamsitnik commented Sep 10, 2017

  • Implement reliable diagnoser synchronization
  • Attach Dissasembly Diagnoser after we are done benchmarking

@adamsitnik adamsitnik added this to the v0.10.x milestone Sep 10, 2017

@adamsitnik adamsitnik self-assigned this Sep 10, 2017

@adamsitnik adamsitnik modified the milestones: v0.10.x, v0.10.12 Dec 15, 2017

@adamsitnik adamsitnik changed the title from Implement reliable diagnoser synchronization to Run Disassembly Diagnoser without extra run Dec 15, 2017

@adamsitnik

This comment has been minimized.

Show comment
Hide comment
@adamsitnik

adamsitnik Dec 15, 2017

Member

I implemented the synchronization in very simple way.

Initially I was thinking about using some fancy stuff like Mutex. But Mutex throws NotSupportedException for .NET Core on MacOS and Linux. So it was not an option.

Then I realized that I can just write to std out and read std in in blocking way. It just works. So one process is writing signal and waiting for response by reading in blocking way from console.

This allowed to attach DissasemblyDiagnoser after benchmarks are done, without spawning new process. It also allows to get disassembly for Job.Dry (#542)

Member

adamsitnik commented Dec 15, 2017

I implemented the synchronization in very simple way.

Initially I was thinking about using some fancy stuff like Mutex. But Mutex throws NotSupportedException for .NET Core on MacOS and Linux. So it was not an option.

Then I realized that I can just write to std out and read std in in blocking way. It just works. So one process is writing signal and waiting for response by reading in blocking way from console.

This allowed to attach DissasemblyDiagnoser after benchmarks are done, without spawning new process. It also allows to get disassembly for Job.Dry (#542)

@AndreyAkinshin

This comment has been minimized.

Show comment
Hide comment
@AndreyAkinshin

AndreyAkinshin Dec 20, 2017

Member

I like how it looks now!

Member

AndreyAkinshin commented Dec 20, 2017

I like how it looks now!

@nietras

This comment has been minimized.

Show comment
Hide comment
@nietras

nietras Jan 1, 2018

Contributor

@adamsitnik I have this issue in a benchmark I am doing (where I need IterationSetup and hence dry run), when will this be released?

Contributor

nietras commented Jan 1, 2018

@adamsitnik I have this issue in a benchmark I am doing (where I need IterationSetup and hence dry run), when will this be released?

@adamsitnik

This comment has been minimized.

Show comment
Hide comment
@adamsitnik

adamsitnik Jan 1, 2018

Member

It's going to be part of the official 0.10.12 release, but we don't have any release date yet.

But it's available now on our CI feed:

<packageSources>
  <add key="bdn-nightly" value="https://ci.appveyor.com/nuget/benchmarkdotnet" />
</packageSources>

The latest package contains also parallel build, so overall performance should be improved.

Member

adamsitnik commented Jan 1, 2018

It's going to be part of the official 0.10.12 release, but we don't have any release date yet.

But it's available now on our CI feed:

<packageSources>
  <add key="bdn-nightly" value="https://ci.appveyor.com/nuget/benchmarkdotnet" />
</packageSources>

The latest package contains also parallel build, so overall performance should be improved.

@nietras

This comment has been minimized.

Show comment
Hide comment
@nietras

nietras Jan 1, 2018

Contributor

@adamsitnik thanks that worked, however I am having issues with the disassembler. I've opened a separate issue for that #543

Contributor

nietras commented Jan 1, 2018

@adamsitnik thanks that worked, however I am having issues with the disassembler. I've opened a separate issue for that #543

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment