-
Notifications
You must be signed in to change notification settings - Fork 56
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
Remove unused profile.json
fields?
#94
Comments
Another fun fact here is that the main thread defaults to the name |
These are all written using this These are taking up a significant amount of space in the json for long multi-process profiles. Even better would be to change the format to make these properties fully optional. For comparison, a ~1 minute capture with 8000 tracks (threads) is around 180MB with all the extra nulls. If I just make |
These are now seeing some use for profiles with JIT frames. Having two columns is a bit overkill though; they could be combined into a single flags column.
Wait, The removal of
Yes they're null before symbolication and non-null after symbolication, and samply currently only emits unsymbolicated profiles. The filenames are displayed in the flamegraph because the front-end requests symbolication information asynchronously through an extra network request. Once we have a
Same as above - it is often non-zero after symbolication.
The values in the
It outputs different categories for User and Kernel on Linux and Windows now. And JIT frames have a different category on all platforms.
This was fixed in e74e514 - it had already been fixed at the time this issue was filed, the fix just hadn't made it into a release. |
I've made this change in #232. |
I enjoyed your FOSDEM 24 talk very much, and I have been exploring the
profile.json
format a little bit out of curiosity.There are a bunch of things I noticed which might be specific to the firefox internal profiles which are not relevant for samply profiling any random program.
In particular, there is a ton of fields in the
profile.json
which I believe do not make any sense outside of firefox, but they are completely filled in with their default values:funcTable.isJS
andfuncTable.relevantForJs
are allfalse
and seem irrelevantframeTable.innerWindowID
,frameTable.implementation
andframeTable.optimizations
are allnull
and I doubt they are relevant?frameTable.line
,frameTable.column
,funcTable.fileName
,funcTable.lineNumber
andfuncTable.columnNumber
seem to be allnull
at least all the ones I was looking at. Though filenames are being displayed in the flame graph and opening the source definition works as well, and I have no idea how that even works? :-DframeTable.inlineDepth
seems all0
, at least the ones I looked at.Then there is also
frameTable.category
,frameTable.subcategory
,stackTable.category
andstackTable.subcategory
. I wonder if the entries instackTable
are duplicated, as thestackTable
has a reference to theframeTable
which also has the same info, or can the actual values diverge?In either case,
samply
only ever outputs a single category (for now, I wish it would be possible to customize this and will open a separate issue for it), so I wonder if this can be compressed a bit better.The text was updated successfully, but these errors were encountered: