Giter VIP home page Giter VIP logo

Comments (11)

lednakashim avatar lednakashim commented on May 29, 2024

Simple case with flow IDs set
sequence_test.proto.zip

from perfetto.

stevegolton avatar stevegolton commented on May 29, 2024

Hey @lednakashim,

Thanks for raising the bug, I can see the issue.

I can imagine two ways to address this:

  • Detect the parent child relationship and draw a different style of arrow (i.e. a vertical arrow).
  • Try to prevent arrows from going backwards as much as possible by sliding the ends forward or backward while keeping them within the bounds of their slices.

While the former would need some investiagtaion, the latter would be quite trivial and I think would acheive the desired effect - something like in the screenshot.

image

Let me know what you think.

from perfetto.

lednakashim avatar lednakashim commented on May 29, 2024

Preference for down arrow as the parent span is ran "simultaneously" with the child span.

The second version (what is drawn) is a bit ambiguous as it is not clear what the arrow start is used to denote. Control flow switches from the parent to the child at edge rather than some time before the edge.

Realistically either solutions work

from perfetto.

stevegolton avatar stevegolton commented on May 29, 2024

The second version (what is drawn) is a bit ambiguous as it is not clear what the arrow start is used to denote.

Agreed. The difficulty is, the arrow has to begin somewhere, and unless it's at one of the ends of the slice I think it could be misinterpreted as significant.

Ideally the tool would connect parents to children via a down arrow

Could you sketch out what you had in mind re "down arrow"?

A few suggestions:

Name Screenshot
No circle image
Align start with destination slice image
Start down image
Straight down image
Aligned start with start of source slice image
Reversed (makes more sense when zoomed out) image

from perfetto.

lednakashim avatar lednakashim commented on May 29, 2024

Wow, these are neat:

I was initially thinking that a connection from the center make sense but one of the variants you have is more elegant

Perhaps
Aligned start with start of source slice
because the meaning of the arrow control points are clear and they doesn't duplicate the meaning of the edge


from perfetto.

lednakashim avatar lednakashim commented on May 29, 2024

For fun here is another synthetic sequence typical of pipelined producer-consumer queues
sequence_test.proto.zip

from perfetto.

stevegolton avatar stevegolton commented on May 29, 2024

Thanks for the example trace :)

OK here's my latest thinking. You can try the result out here - just make sure to enable the "Neater Flow Arrows" flag.

Let me know what you think.

image

Edit: Fixed URL.

from perfetto.

stevegolton avatar stevegolton commented on May 29, 2024

Actually I think having arrows emenating from the left of the parent slice when there isn't much room makes a bit more sense - Link

image

from perfetto.

lednakashim avatar lednakashim commented on May 29, 2024

Actually I think having arrows emenating from the left of the parent slice when there isn't much room makes a bit more sense - Link

image

I've been using this branch for few weeks and it seams to help a lot. You guys going to merge it?

from perfetto.

lednakashim avatar lednakashim commented on May 29, 2024

there is an adjacent issue where the time calculation of nested flow seems to be always nailed to 0 which is maybe additionally worth filing

from perfetto.

stevegolton avatar stevegolton commented on May 29, 2024

Hey sorry for the delay, I haven't had a lot of time to work on this recently.

We just landed a patch (on autopush channel) which does a much better job of working out slice ancestors under the hood and draws arrows from the start of the parent slice which looks like this:

image

If this is enough, please close the issue. Otherwise I'll rebase my changes on top of this CL and try and get some opinions from the team.

there is an adjacent issue where the time calculation of nested flow seems to be always nailed to 0 which is maybe additionally worth filing

Can you expand on this a little, maybe attach a screenshot?

from perfetto.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo 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.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.