Skip to content
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

Improve ctf trace event source #1

Open
wants to merge 1,350 commits into
base: criteo
Choose a base branch
from
Open

Conversation

gleocadie
Copy link

The idea is to improve the CTF traces management.
First, we update the test inputs (are old, contains old trace types which that do not exist anymore in the manifest file…) and reactivate 2 tests.
Currently, the CtfTraceEventSource is file-based (zip file containing the CTF traces).
We would like the CtfTraceEventSource to have a live mode (like ETWTraceEventSource). To achieve this, we introduce interfaces (contracts) that must be implemented by component(s) (internal, zip-based, or external) to have their CTF events decoded and translated to TraceEvent object.

See LTTng and CtfTraceEventSource

@gleocadie gleocadie closed this Aug 3, 2017
@gleocadie gleocadie reopened this Aug 3, 2017
brianrob and others added 9 commits February 20, 2018 14:56
TraceParserGen: fix provider opcodes loading
1. Translate SQL BeginExecute EndExecute into start stop (so durations are calculated).   We do this for other events as well.
2. Add the SQL command text (first 50 chars) if it is available in the StartStop Activity view.

Also asked git to ignore internal docs.
This is bringing back old code that was removed because it was not available on NetStandard 1.6
and seemed to not matter.

Fixes issue microsoft#571
gleocadie pushed a commit that referenced this pull request Feb 26, 2018
* Code compete, started tesing.

* Make EventPipeEventSource be the EventPipeFile object

* Added More asserts, fixed a few bugs

* More fixes.   File now loads completely

* Remove hack that I accidently commited

* More cleaup

* Add Comments.  Minor cleanup

* Remove Old EvetnPipeEventSource code

* More comments

* Fix comments because I misunderstood the meaning of EventSize

* [WIP] Event pipe v3 (#1)

* getting the old tests pass

* support V3 (extra fields)

* Disable EventPipe test

* Remove files accidently included in the change
vancem and others added 22 commits June 11, 2018 09:46
Add details about making SupportFiles Nuget packages
…-getpayloadvalueat

Short-circuit DynamicTraceEventParser::GetPayloadValueAt for arrays of bytes
…ceEventDlr

Add DLR support for TraceEvent dynamic properties
There is an issue where doubles are written in one local and read in another.  This was already fixed in the data, but there was a lingering problem in the FilterState (e.g. the values in the Start and End TextBoxes are also persisted in the XML).   This fix only makes the reader robust (that is it will ignore bad data.
Fix bug in reading PerfView.xml files
Bug fixes for source lookup of traces collected on Linux.
Make thread names a bit prettier if we don't have CPU information
Doc improvement for pinning views.
Support .netperf.zip files, small fixes.
* Reactivate tests with new inputs
* Remove old input files
Gregory LEOCADIE added 5 commits July 11, 2018 14:51
- Add interfaces to enable Ctf event external source
- Implement the CtfTraceEventSource in a callback way (like
ETWTraceEventSource)
- Extract file(zip)-based implementation to its own file and
implementing the contracts
- Ensure that events are dispatched following their timestamp
This method is on the critical path and generate a huge amount of
short-lived byte[] => many gen 0/1
By having a already allocated buffer and using other API we can avoid
those extra allocation.
This conversion is on the critical path and generate a huge amount of
object instances which come from the boxing of integer type.

By using generic + interface magic we can avoid boxing and improve the
performance drastically.

+ Tests
gleocadie pushed a commit that referenced this pull request Mar 22, 2019
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet