Git Product home page Git Product logo

tuneup's Introduction

TuneUp

Build

TuneUp is in beta.

TuneUp is a view extension for analyzing the performance of Dynamo graphs. TuneUp allows you to see overall graph execution time, per-node execution time, and other helpful information about what's happening under the hood, e.g. nodes run in the current execution v.s. nodes run in the previous execution (which were skipped during the most recent graph run for optimization/ caching).

Here is a short demo of how to utilize it as of now (now loading from the Extensions menu): TuneUp

Here is a mock up of the future design: TuneUp

Building

Recommended Build Environment

  • VisualStudio 2022 or later
  • .NET 8.0 Developer Pack
  • Dynamo repository cloned and built on the same level of TuneUp repository which means your Dynamo repo and TuneUp repo should exist under the same parent folder.

Result Binaries

  • After a Debug build of Tuneup one can expect:
    • Under TuneUp\dist\TuneUp, there is a sample package wrapped up ready for publishing and adoption. This would be the un-optimized version.
    • Un-optimized package installed locally for [DynamoVersion] defined in TuneUp/TuneUp.csproj, under DynamoCore and DynamoRevit
  • After a Release build of Tuneup one can expect: Under TuneUp\dist\TuneUp, there is a sample package wrapped up ready for publishing and adoption. This would be the optimized version.

Known issues

  • TuneUp does not work with .dyfs (custom nodes) yet.
  • TuneUp binaries are not semantically versioned and are not intended to be built on top of as an API. Do not treat these binaries like DynamoCore.
  • TuneUp requires Dynamo 3.0 or higher for access to new extension APIs.
  • When user have TuneUp open, after switching workspace in Dynamo, the first graph run does not give execution time and nodes order.
  • Although it's not an issue by itself, TuneUp profiles the execution of graphs even if not showing on the extension bar.
  • In some cases TuneUp may calculate incorrect execution times for nodes, we cannot reproduce this consistently, if you see this occur and can reproduce it please file an issue!

Testing

Setup

Please check out known issues before trying to setup testing.

  • Download DynamoCoreRuntime 3.0.0 (or higher) from dynamobuilds.com. Alternatively, you can build Dynamo from Dynamo repository and use the bin folder equivalently.
  • Copy all contents of the DynamoCoreRuntime to TuneUp\TuneUpTests\bin\Debug\. If you are building Dynamo locally, copy all contents of Dynamo from Dynamo/bin/AnyCPU/Debug to TuneUp\TuneUpTests\bin\Debug\
  • Copy TuneUp_ViewExtensionDefinition.xml from TuneUp\TuneUp\manifests\ to TuneUp\TuneUpTests\bin\Debug\viewExtensions\
  • Open the copied TuneUp_ViewExtensionDefinition.xml and change the assemply path to ..\TuneUp.dll
  • Remove TuneUp from your Dynamo packages folder if you have it installed from package manager (otherwise TuneUp.dll will get loaded twice). This won't work well.
  • Launch DynamoSandbox.exe, then click View-> Open Tune Up and use while a graph runs.

Running TuneUp Unit Tests

  • Install NUnit3TestAdapter from VisualStudio->Extensions->Manage Extensions->Online.
  • Open Test Explorer from VisualStudio->Test->Test Explorer. Now you should see a list of TuneUpTests.
  • Click the target test to run or run them all.

tuneup's People

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

Watchers

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

tuneup's Issues

ViewExtension should use CommandExecutive API instead of ViewModel access.

exposed here
https://github.com/DynamoDS/Dynamo/blob/35e31271ec1e75fb547352a347c2f002c7df5a89/src/DynamoCoreWpf/Extensions/ViewLoadedParams.cs#L127

see here for implementation
https://github.com/DynamoDS/Dynamo/blob/8afcde02f859f5dd4f261d21edb32e2b94e9450a/src/DynamoCoreWpf/Extensions/ViewExtensionCommandExecutive.cs

  • use this to run commands like FitView etc.
  • don't zoom fully into the node when user clicks the entry in the table.
  • Attempt to reduce all use of access to ViewModel by getting dataContext.

TuneUp compatibility with Dynamo 3.xx

Hi,
I'm wondering if TuneUp will be updated for Dynamo 3.xx
I'm currently working with Dynamo v.3.0.3, but after TuneUp installation, it don't see it in "View" anymore, so I suspect that it's not compatible with this Dynamo version.
I love so much the Force Re-Execute functionality that I would really love to be able to use it in the future.
Thanks in advance for your reply!

table view of node execution data

should include following features:

  • columns: time(ms or s), NodeType , NodeName, % of total
  • - potential columns (number of times function was replicated - this is essentially callsites)
  • sort column by ascend / descend

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.