Code Monkey home page Code Monkey logo

flame-chart-js's People

Contributors

adammruk avatar ddanielcruzz avatar jburrow avatar mrthanlon avatar pyatyispyatil avatar smrtnyk avatar sumimakito avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

flame-chart-js's Issues

TypeError: flameChart.setData is not a function

The example of README doesn't worked,

import FlameChart from 'flame-chart-js'

throw no default error, so

import { FlameChart } from 'flame-chart-js'

Then flameChart = new FlameChart({...}), and it works, but flameChart.setData is undefined

Introduce intervals for function nodes in the flame chart

Functions can be async, which means they have some waiting times for other async calls to finish.
Similar to the waterfall intervals, we should add that to the function nodes in flame chart.
Maybe function nodes can have an intervals entry as an array of arrays
e.g.

intervals: [[1, 2], [4.7]]

where first value in the intervals tuple is a start and second one is stop.

@pyatyispyatil not sure what you think about this, if this is not something you want we can then close this issue.

README.md example fails

I am trying to run the code from the readme at https://playcode.io/

First problem is that the playground is unable to find the latest version of the library.

image

And then the example fails with this error.

TypeError: data is undefined
setData@https://preview-new.playcode.io/ line 18 > injectedScript:1960:7
WaterfallPlugin@https://preview-new.playcode.io/ line 18 > injectedScript:1907:12
FlameChart@https://preview-new.playcode.io/ line 18 > injectedScript:2240:27
@https://preview-new.playcode.io/ line 18 > injectedScript:85:18
dn@https://preview-new.playcode.io/ line 6 > injectedScript:18:5449

Move chart to typescript

I will create this issue so we can have discussion about it here and to link pull request when I open one today or tomorrow

[Feature request] Timeframe selector similar to chrome profiler

You already said in the issue I created about performance that you do not have specific roadmap and feature list but that you plan to maybe implement the timeframe selector

I created this ticket to have tracking of it.
Not sure how much time you plan to invest in this project and if this will not happen in the near future feel free to close this :D
I really enjoy this project and so far there is no better flame chart out there

I would contribute the feature but I am not the best with canvas API, I mostly messed with svgs and d3.js

Default Time Range selection

Is there any way to set default time range of the chart. for example:
This
image
Instead of this:
image
Or better, set a default time range with the start and end of a specific Node?

Custom span rendering?

Is it not supported?
like this
image

If not supported? Can you provide a way to modify the source code?

TimeGrid plugin use

How i can only use TimeLineGrid plugin into my already created Flamechart.

Can we have a roadmap to get more people involved?

My Point of View

Wow! What a amazing project! Thank you so much to release this project to help us with performance optimization analysis needs. I will briefly explain what I think is the advantage of this project.Recently I am developing a tool to analyze online performance data. I have two options:

  • Chrome DevTools: Powerful and comprehensive performance analysis tool, but it is too complicated, it is inconvenient to carry out secondary development and release a separate npm package, and it also requires the use of gn tools that are difficult to use.
  • Trace Viewer: Old school performance tool that is also perfectly compatible with the trace format and is very lightweight, but its problem is that the code style is difficult to maintain.

So both options had their problems until I discovered this project, which provides clean code logic and a convenient plugin mechanism. Thanks again! Its an incredible project!

Why It Would Be Better To Have a Roadmap

Although this project is lightweight and easy to expand, it is believed that the arrival of a roadmap will make this project a very popular project! (so many programmers have the need to develop custom performance analysis tools)

Let me mention a few possible roadmaps and why this is needed:

  • TypeScript: Bring in TS can make codebase easier to maintain, this codebase has been already complicated,using TS can bring stronger vitality to the project and facilitate more people to participate in the development.
  • Compatible with Trace Event Format: Trace Event Format is the most popular profile format using in web developers,especially the flow event is incredible.Compatible with this format can make this project more powerful.

Finally,I have full enthusiasm to participate in the development of this project!

Introduce basic unit tests

We should add some basic unit tests for data transformation, like nodes clustering etc...
Lots of these functions are testable.
Maybe jest would be an option?

Introduce prettier + eslint

We discussed and decided to introduce prettier + eslint.
We should start with basic rules that are matching the current code style of the project.

Performance issue

The flame chart is amazing and probably the best out there
but I am currently struggling with performance where I have about 160k function calls to visualize

What I noticed there are extremely many calls to walk function and each takes about .5s
Also chart rerenders(repaints) all the time on click and mouse movies, zooms etc..
Maybe we could improve this somehow?
I could fork and commit a PR for improvements if you could give me an advice on what could be improved, which parts etc...

I can also provide a sample json file with data formatted and ready to be used in chart options

Onclick into nodes not expanding

while onclick into flamegraph node into any point its not expanding and its only show border but it should be expand and show its children

how to custom a span (border, gradient color), and tooltip in flame chart?

Hi. Thank you for providing an excellent flamecharts library.
Can i ask for a way to modify span properties in flamechart, such as border Color, border radius, background color, .... . For example, I see someone can do gradient color. Below is an example.
image
Also, can we have a component like this:
image
which will follow our cursor. and also have hover effect on each span.

Overlapping text on adjacent spans that also overlap

When 2 adjacent spans have starts and durations that cause an overlap, the first spans text is not occluded by the second span. See the top highlighted call out in the image above.

image

NOTE: This is a holder issue for me as I'm going to try and fix it myself.

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.