lt72 / jitbench Goto Github PK
View Code? Open in Web Editor NEWPRIVATE repo for testing JIT stuff
PRIVATE repo for testing JIT stuff
Currently dynamically loading assemblies broke the build as it finds the report base assembly with the error
'Could not load type 'Microsoft.ETWLogAnalyzer.Abstractions.ReportBase' from assembly 'Microsoft.ETWLogAnalyzer.Abstractions
The namespaces are called MusicStore. The tool should be a bit more generic
Review the list of possible different actions in Microsoft.Diagnostics.Tracing.Parsers.KernelTraceEventParser
and Microsoft.Diagnostics.Tracing.Parsers.ClrTraceEventParser
that might be useful for the generation of the matrix.
Currently the fix branch uses ASP.NET binaries and not the crossgen libraries with the following warning
ASP.NET loaded from bin. This is a bug if you wanted crossgen
This might be a problem if our aim is to make it JIT as much as possible. I suspect the binaries are most likely optimized.
Review duplicate method generation; check if it's a bug (i.e. race condition) or if it's an optimistic way to handle race conditions in the JIT.
A perfview dump generated that exemplifies such behavior can be found at:
PerfViewData-5-25-2017-17-15.zip
We had to modify TraceEvent to surface the ReJit version to add support for tiered jitting. While the change has been merged on the PerfView repo - where TraceEvent lives - the package won't get updated on NuGet until it gets signed.
To work around this a Nuget.config file points to a package with the updated library locally. These should be removed when TraceEvent gets updated on NuGet to version 1.0.42.
The main thread gets switched out after the stop. Defunct marks a point were there's no more process activity.
The API returns iterators to the actual elements. Try to see if it's possible to make this safe.
There should be no need for two different API calls. One would allow for less memory consumption (no need to cache, just persist on the run) and better error reporting.
Must find a way to either fetch it on the run, provide instructions on where to find it
Consider necessary context and replace the lookups for thread based on the struct as threads that are pooled can be reused.
Given that JitBench keeps breaking, I've decided to freeze the version of dotnet and JitBench until the testing of fresh CoreCLR/CoreFX and ASP.NET releases becomes priority 0.
A lot of data is not relevant and a whole bunch of other data points are not relevant to our (we don't want to generate a visualization per method for example.
To future proof the current data collection scripts it might be a good idea to clean them up to be path agnostic. This might prove to be useful for future parts of the project.
Given that our current priority is generating a log that jits as much as possible and its collection is automated, the fix branch achieved not performing cross-gen by freezing the versions fetched. However, given that we want automation and it should fetch the latest version of ASP.NET and the CoreCLR, we should find a way to make the libraries fetched from the master channel available to PerfView for the log generation.
Some things related to the process are not attributed so might have to add them manually in several passes. See how this can be done.
Make it a command-line argument of comma separated values.
Look into how to attribute IO events relevant to dotnet that are not identified to any thread or process we have logged.
Determine how to return a filter for the provider events as the DynamicManifestTraceEvent
type is internal to the tracing assembly/module.
The ETW log collected with pfutil creates a dictionary key clash. Need a really unique identifier.
The last event is not necessarily the threadStop
Currently we are checking against DefaultResult to check if a result was generated, but for numberical values the default of 0 might be a perfectly reasonable answer
Clash of events don't happen often enough, so the overhead might not be worth it. Analyze if the overhead and development time are worth pursuing.
This should be simple. The only thing missing is the NuGet package restore to be able to run the analysis without opening visual studio. This should be straightforward using MSBuild.
Consider wrapping in another script.
CS_out - CS_in
for the active interval timesLast CS_out - Thread start
Freezing packages generates warnings. Check this out
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.