Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

DYN-1754: As a developer I want detailed per node profiling during perf benchmarks #9667

Merged
merged 48 commits into from
May 16, 2019
Merged
Changes from 1 commit
Commits
Show all changes
48 commits
Select commit Hold shift + click to select a range
56dbd73
Update changes from librarie.js to fix QNTM-3710
ColinDayOrg Mar 22, 2018
eec64b9
Merge branch 'master' of https://github.com/DynamoDS/Dynamo
ColinDayOrg Mar 23, 2018
4362151
Merge branch 'master' of https://github.com/DynamoDS/Dynamo
ColinDayOrg Jul 19, 2018
75643c7
Merge branch 'master' of https://github.com/DynamoDS/Dynamo
ColinDayOrg Nov 2, 2018
6a07e6c
Merge branch 'master' of https://github.com/DynamoDS/Dynamo
ColinDayOrg Nov 19, 2018
38b8461
Merge branch 'master' of https://github.com/DynamoDS/Dynamo
ColinDayOrg Nov 21, 2018
44a00a8
Merge branch 'master' of https://github.com/DynamoDS/Dynamo
ColinDayOrg Nov 29, 2018
5c04a06
Merge branch 'master' of https://github.com/DynamoDS/Dynamo
ColinDayOrg Dec 7, 2018
a21fd6a
Merge branch 'master' of https://github.com/DynamoDS/Dynamo
ColinDayOrg Dec 10, 2018
4235133
Merge branch 'master' of https://github.com/DynamoDS/Dynamo
ColinDayOrg Dec 14, 2018
302b9dd
Merge branch 'master' of https://github.com/DynamoDS/Dynamo
ColinDayOrg Dec 14, 2018
6bf5548
Merge branch 'master' of https://github.com/DynamoDS/Dynamo
ColinDayOrg Dec 14, 2018
8d4511b
Merge branch 'master' of https://github.com/DynamoDS/Dynamo
ColinDayOrg Dec 21, 2018
8f9df0f
Merge branch 'master' of https://github.com/DynamoDS/Dynamo
ColinDayOrg Jan 8, 2019
e91ef30
Merge branch 'master' of https://github.com/DynamoDS/Dynamo
ColinDayOrg Jan 9, 2019
82373cc
Merge branch 'master' of https://github.com/DynamoDS/Dynamo
ColinDayOrg Jan 10, 2019
1434ba0
Merge branch 'master' of https://github.com/DynamoDS/Dynamo
ColinDayOrg Jan 10, 2019
706974c
Merge branch 'master' of https://github.com/DynamoDS/Dynamo
ColinDayOrg Jan 16, 2019
760ae95
Merge branch 'master' of https://github.com/DynamoDS/Dynamo
ColinDayOrg Feb 4, 2019
6ffd883
Merge branch 'master' of https://github.com/DynamoDS/Dynamo
ColinDayOrg Feb 15, 2019
5b1c073
Merge branch 'master' of https://github.com/DynamoDS/Dynamo
ColinDayOrg Feb 27, 2019
f11f924
Merge branch 'master' of https://github.com/DynamoDS/Dynamo
ColinDayOrg Mar 27, 2019
710c7ee
Merge branch 'master' of https://github.com/DynamoDS/Dynamo
ColinDayOrg Apr 1, 2019
e8f5ade
Initial add and code cleanup for profiling data
ColinDayOrg Apr 10, 2019
f740c1d
Add profiling changes
ColinDayOrg Apr 17, 2019
7644f6b
Add missing summaries and accessor items
ColinDayOrg Apr 18, 2019
dc0eb40
Add an accessor for the profiling data to the profiling session
ColinDayOrg Apr 18, 2019
7e903d2
Make profiling session private
ColinDayOrg Apr 19, 2019
c1aee1d
Improve infrastructure (switch to property, make DateTime property n…
ColinDayOrg Apr 19, 2019
3fc8b74
Add test for pre-run, post-run, and node deletion post-run
ColinDayOrg Apr 19, 2019
c5d3a1d
Remove unused AstCompilationEvents class
ColinDayOrg Apr 22, 2019
0cb178c
Remove unused CompilationEventArgs class
ColinDayOrg Apr 22, 2019
c463ba3
Rename IProfilingData to IProfilingExecutionTimeData
ColinDayOrg Apr 22, 2019
f13049c
Remove derivation from NotificationObject
ColinDayOrg Apr 22, 2019
c228452
Restrict access to NodeProfilingData methods as much as possible
ColinDayOrg Apr 23, 2019
43129bd
Pull strings out to constants
ColinDayOrg Apr 23, 2019
320ae6b
Update naming
ColinDayOrg Apr 29, 2019
6eb5cc5
Obsolete Node property getter and add NodeId property getter
ColinDayOrg May 3, 2019
edb88eb
Change property name from Node to NodeId and obsolete Node to avoid c…
ColinDayOrg May 3, 2019
b94aefd
Move profiling data housekeeping out of the engine controller
ColinDayOrg May 3, 2019
9caccd6
Add the abillity to switch profiling on/off (off by default), includi…
ColinDayOrg May 8, 2019
995ee9b
Move ownership of profiling data to the ast builder
ColinDayOrg May 9, 2019
8e902db
minor code fixes
aparajit-pratap May 15, 2019
3cb15a7
Merge pull request #1 from aparajit-pratap/DYN-1754
ColinDayOrg May 15, 2019
7a82082
Fix typo
ColinDayOrg May 15, 2019
9173bc8
Add public interface to get profiling data
ColinDayOrg May 15, 2019
87564af
Merge branch 'DYN-1754' of https://github.com/ColinDayOrg/Dynamo into…
ColinDayOrg May 15, 2019
686f72c
Add test for public data access method
ColinDayOrg May 16, 2019
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
23 changes: 23 additions & 0 deletions test/DynamoCoreTests/ProfilingTest.cs
Original file line number Diff line number Diff line change
Expand Up @@ -71,5 +71,28 @@ public void TestProfilingSingleNode()
engineController.EnableProfiling(false, homeWorkspace, nodes);
Assert.IsNull(engineController.ProfilingSession);
}

[Test]
public void TestProfilingSingleNodePublicMethodsOnly()
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I feel this test is redundant; it's testing what is already being tested in the first test case you added, is it not?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It is a little redundant, but it is testing the public data accessor as opposed to the other test that is using internal methods.

{
// Note: This test file is saved in manual run mode
string openPath = Path.Combine(TestDirectory, @"core\profiling\SingleNode.dyn");
OpenModel(openPath);

// Assert that profiling is disabled by default
var engineController = CurrentDynamoModel.EngineController;
var homeWorkspace = CurrentDynamoModel.Workspaces.OfType<HomeWorkspaceModel>().FirstOrDefault();
var nodes = CurrentDynamoModel.CurrentWorkspace.Nodes;
engineController.EnableProfiling(true, homeWorkspace, nodes);
BeginRun();

// Assert that execution time data exists after a run occurs
var profilingData = engineController.ExecutionTimeData;
Assert.IsNotNull(profilingData.TotalExecutionTime);
Assert.Greater(profilingData.TotalExecutionTime?.Ticks, 0);
var node = nodes.FirstOrDefault();
Assert.IsNotNull(profilingData.NodeExecutionTime(node));
Assert.Greater(profilingData.NodeExecutionTime(node)?.Ticks, 0);
}
}
}