view
Tweet
hifi: #21153 Extend Needle for benchmarking the High Fidelity client

Our current data requires more parsing and formatting to create high level info that is useful as benchmarks. You can find the current page (also known as: Needle) here: https://github.com/highfidelity/hifi_tests/tree/master/tools/needle/src

How the current system works:
Prototype Needle page: https://rawgit.com/highfidelity/hifi_tests/master/tools/needle/src/needle.html
Sample trace result: https://github.com/cozza13/highfidelitystuff/raw/master/networking%20test/trace-20170126_1408.json.gz

Download the above trace and drop it into the web page: https://rawgit.com/highfidelity/hifi_tests/master/tools/needle/src/needle.html . We will be extending this page in the work.

Project Work:
Extend Needle to evaluate and display a representation of an average frame timing and scheduling layout of the work happening during the frame. The data needed to compute this average frame will be extracted within a specific range of time out of the full trace.
The user will upload the file to Needle, the code will discard first 10% and last 10% of trace. On remaining load, find the frame pattern, find the average of all functions based on a single frame and display it in the following way as illustrated by this capture from chrome::tracing zooming on a single frame:


Average frame:
-Name of function
-Start Time (in seconds)
-Position of beginning and end relative to each other
-Relative positions of sub-functions
-On average where call started,
-On average how long call ran
-Finish Time (in seconds)
Stack sub-functions under functions as it looks in chrome://tracing but on a per frame basis

With the above information we want to visualize the results in a format similar to the chrome://tracing/ tool, summarized

To see how the summary data should look you can view a detailed version in the chrome://testing tool:

Step 1) Open a Chrome browser and go to the URL chrome://tracing
Step 2) Drag sample trace result into chrome://tracing and view the results

This gives you an example of the all the information contained in the file (e.g. http://imgur.com/a/3a0Je )

Put stats in an HTML page- read only

Comments & Activity

  • 4 mnths, 27 days ago

    #21153 created by themelissabrown Status set to Bidding.

  • 3 mnths, 16 days ago

    #21153 updated by themelissabrown Changes: Status set to In Progress.

  • 3 mnths, 16 days ago

    #21153 updated by themelissabrown Changes: Status set to Bidding.

  • 3 mnths, 16 days ago

    #21153 updated by themelissabrown Changes: Status set to In Progress.

  • 1 mnth, 17 days ago

    #21153 updated by themelissabrown Changes: Status set to Bidding.

  • Xoriant is working on this. Will submit a bug.
  • 19 days, 10 hrs ago

    A bid was placed on #21153

  • 19 days, 2 hrs ago

    themelissabrown accepted 1600.00 from ravi-raman on #21153 Status set to In Progress.

  • The following error was returned when making your pull request:
    No commits between highfidelity:master and ravi-raman:21153
  • 13 days, 10 hrs ago

    #21153 updated by ravi-raman Changes: Status set to Code Review.

  • 13 days, 10 hrs ago

    #21153 updated by ravi-raman Changes: Status set to In Progress.

  • Status so far. Status still "In Progress".
    Still working on the changes to achieve points 2 a), b) and c) in my mail sent earlier.
    The thing is that we are scaling the X-axis on the average duration of each function and we need to shift the x-coordinate starting point for each function by the difference in the average start time. But, if we shift the x-coordinate starting point of each function by the difference in the average start time, the shift is too much and the graph goes beyond the range and becomes unseen. This is because the X-axis scaling is done on duration whereas shifting of the x-coordinate needs to be done on the difference of the average start times, and there is obviously a considerable difference between the absolute values of average duration of each function and their average start times.
    Also, note that we need to scale the X-axis on duration and not on start time, because if we scale on start time, the graphs will not be seen at all as the absolute values of start time are much greater than the duration.

    So, still trying to figure out how to get the layout right.
  • 12 days, 9 hrs ago

    ravi-raman uploaded an attachment to #21153

  • I have attached the zip needle.7z having the latest code with the changes in the java script files and needle.html.
    The layout part is still in progress. I have calculated the average duration of each function in ms and showing that in the graph.
    The Y-axis shows the function names and the X-axis shows the average duration of each function in ms
  • Also, included average start time , average end time along with average duration for each function. If you hover the mouse over each bar, you would see these 3 average values for each function.
  • 12 days, 8 hrs ago

    ravi-raman uploaded an attachment to #21153

Labels Saved!

Bids

Login to bid
Who Amount Done in ...
*name hidden*$ ***5 days