Comments (2)
Hi @vasi-stripe!
I agree -- the startValue
and endValue
fields are weird to interpret in the case of unit=bytes
. However, in that case, even if there was a separate timeUnit
and weighUnit
field, the startValue/endValue
would still be meaningless (or at least of no value for display in speedscope as far as I can tell).
Am I understanding you correctly, or are you envisioning situations where you'd specify both timeUnit
and weightUnit
and they'd both be relevant for correctly interpreting a profile?
from speedscope.
Good questions! For display in Speedscope as it currently exists, I agree there's not a real benefit to having meaningful startValue/endValue.
But for use of the Speedscope format as a generalized interchange format, and/or for future extensions to Speedscope, it makes sense to think about time and weight differently. A few things one could do with this data:
- I'm currently profiling our services continuously, and using tools like Pyroscope allow me to select a profile from a timeline. That only really works if profiles have timestamps!
-
Some tools allow aggregating/post-processing profiles to answer questions like "is method M doing more allocations now than it used to?" To do that, the tool would need a startTime to identify when the profile happened, and an endTime to be able to properly weight allocations-per-time-spent-profiling.
-
For many types of profile, wall-time and weight are not one-to-one. For example, if we're taking a CPU profile, sometimes we're using a CPU, and other times we're just waiting on I/O. The Speedscope format doesn't really allow representing this well, and currently Speedscope would visualize this by just ignoring the non-CPU time. But you could imagine displaying weights over a time axis instead, what Brendan Gregg calls a "Flame chart", and that's only possible if we have time units separately from weights.
Anyhow I'm not sure what the overall takeaway is here, just that this is something we can keep in mind as we think about the future of this file format!
from speedscope.
Related Issues (20)
- Rendering issues with Chrome and Edge on Linux Mint
- Chrome 114 profiler output change result in speedscope not rendering the stack trace anymore HOT 4
- Aggregation methods for size-values in Sandwich view?
- Maximum call stack size exceeded
- Support for Papyrus profiling HOT 3
- Importing a large linux perf file will crash the application HOT 3
- [Question] How to see frame instances count HOT 1
- when i use this, how can i get release when i change it?
- output for speedscope format is not loaded in Firefox in Ubuntu unless it has .json extension HOT 12
- Tooltip partially hidden under mouse HOT 2
- Add A/B comparison support HOT 6
- souremaps arent being applied HOT 5
- Could not import the json example into www.speedscope.app HOT 1
- Not support non-systemwide perf result HOT 3
- Ability to pass data encoded
- Callgrind inputs: Some called functions along with their callees are detached from the rest of execution at the root level HOT 1
- Incorrect rendering with long traces (thousands of seconds)
- Allow search by filename HOT 1
- xcode 15 instrument data load fail
- pid/tid string format support HOT 4
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from speedscope.