[Request for Feedback] TuneUp: Per node execution times

Hi, @solamour,

Can we have an option for descending sorting of execution times?
As TuneUp is made for speed up, it will be handy to see longest times by default by single click.

Thanks!

Hi @Vladimir -

You can already do this! You can click on any of the # , Name , or Execution Time (ms) and it will sort them in descending or ascending order … just click a couple of times :slight_smile:

It will be better to get long times at first click at column, short times with second click,
as we want to reduce “time expensive” nodes at first. Sorting takes a long time on big scripts, so we can get handy info faster. Thanks!

2 Likes

Hello :slight_smile:

I´m so happy i have found TuneUp! It helped me make my scripts faster and it´s so interesting!
A little request from me because i´m currently testing scripts that take hours: Would be nice to get the complete runtime in minutes if the script runs longer than a few minutes.

Thank you so much for your great work :smiley: :+1:

1 Like

Just wanted to add, that TuneUp only works in 50% of my runs.
The other 50% it just gives me all nodes as “not executed”.

So even the exact same script, sometimes it works, sometimes it doesn´t.

3 Likes

Hello Gerhard,

Glad you found TuneUp and love using it! I too am super excited to have it out there to help you improve your scripts. We’ve also found things that are slow that we have improved :smiley:

Hrm… strange. I wonder if it’s due to the extremely long runtimes of your scripts? If you are willing to share, feel free to DM me and we can investigate :slight_smile:

Not executed is usually due tot he node having previously run, and therefore the node is in a different state. Force Re-Execute should resolve. Otherwise reach out as @solamour indicated.

1 Like

In my case thats definitely not the problem. Because of the run times I´m super careful before the run. I open the skript, make sure to open TuneUp before running and then run the script.
The first times i thought I´m stupid and forgot to open tuneup before i ran the script. But now it happend so often that I´m sure it´s not my fault.

And i don´t think it´s because of the long runtime, because if it works i see entries in tuneup just after starting the script. If it doesn´t work i see nothing.

I will get back to you Sol! Thanks :slight_smile:

1 Like

Hello @solamour :slight_smile:
It´s been a while, sorry for that^^ but I´m still a big fan of TuneUp, every script can be improved with it and for me its a great benefit that i know when which node is running!

I figured out the problem i had earlier and now there is another one.

  1. TuneUp only works one time after opening it. Even if i close and open a script several times TuneUp wont run again. You have to hide TuneUp and show TuneUp again, then it works again for one run. But yes using the function Force ReExecute also works.

  2. Sometimes I´m getting completely wrong values. See this example, real runtime was a few seconds.

1 Like

Hi @gerhard.p - Very strange. We will be looking at TuneUp to make sure it works in the 2.13 release (Currently doesn’t) and can look at this too.

We just need a way to reproduce this - are you willing to share you set-up and graph that this ran on? Can do so privately if that helps :slight_smile:

1 Like

Hey @solamour

Here is a gif of issue 1, tuneUp doesnt run because it already did one time before.

ezgif.com-gif-maker

This happens with all scripts. Revit 2021 and 2022.

I have to close and open tuneup, close and open dynamo or press the “force reexecute” button instead of the dynamo run button.
So not really an issue if i would remember to only use the reexecute button when using TuneUp^^

Issue 2 was very rare, when it happens again i will make sure to collect all informations and get back to you!

It´s really great that nodes get highlighted in dynamo when i select them in tuneup. But would it also work the outher way around? That would be nice :smiley:

1 Like

@solamour the issue reproduces quite readily in Dynamo Sandbox 2.13 and 2.8 with the latest version of TuneUp on a graph that creates a single point, so there is no Revit requirement or conflict. I haven’t tested 2.5 (first possible build for tuneup) or other builds.

  1. Open graph.
  2. check speed via tuneup
  3. close graph
  4. reopen the same graph
  5. no results in TuneUp just like the GIF feom @gerhard.p above.
2 Likes

I have just started experimenting with TuneUp and it seems like a really good tool - giving a good overview of how a certain graph can be optimised!

However, the total Execution Time it shows is clearly not correct. See the example:

For 293012 ms, that means it took the graph 293 seconds to complete the run, which would be around 4.88 minutes. In reality, the total time was around a minute and a half. So it’s clearly not true, which makes me wonder if any of the values it shows are.

I believe that you need to include times in the previously executed run section.

But this is the execution time on the current run, not the total execution time?

I also noticed after executing a new run, the values for the previous one changed:

Now it shows it only took 4 seconds in total, which is wrong as well. I think at the moment it gives a quite good overview on which nodes took the most time to execute, but there seems to be an issue with the values it reports.

One more thing - no report was generated on the third run and values stopped updating. I then ran the graph from the Force Re-execute button, but then all of the previous run data was erased.

This is as designed. Dynamo only executes nodes where the input data has changed on each run. If you run the graph, and make a change to an input half way down, and run again only the nodes which rely on the new input value are re-executed, and so Tuneup moves the old values to the “previous run” section and keeps the new values in the upper section. Total runtime can get confusing without the ‘force re-execute’ as a result.

2 Likes

I kind of get what you are saying, but I don’t completely agree. When I change one of the inputs, all of the nodes, affected by that, will run again. At the end, I don’t think a report like that gives any valuable information:

Maybe at this point, I should run graphs from the Force Re-execute button when I want to use TuneUp and stick to the execution time on current run. That way, values seem to be correct and providing quite useful information :slight_smile:

I think this is good intuition - running a clean execution without delta compute will yield more accurate results.

2 Likes

If you had one chain of nodes which did what you need but was slow, then you built another chain of nodes to do the same, would you want the entire graph to re-execute or just the new chain? Personally I prefer the new chain method as we have. :slight_smile: