AWS Thinkbox Discussion Forums

layout not loading?

Some of our artists are reporting extremely slow deadline monitor performance, Stephan included - even with the latest patches. I’ve asked him to send me his layout, in case its layout dependent, to see if i can reproduce it.
Attached is the layout file.

It looks like this for me:


Troja.dmlayout (90.7 KB)

Which version was that layout written for? Slowdown is one issue, the layout not loading is another.

I’ll have Jon circle back here when he’s in tomorrow. He’ll know more about the adjustments made for efficiency here.

It was saved from v8.0.17.1 (and loading into the same version, but on a different box)

It actually gives the same result when attempted to load back onto the monitor where it was saved from…

Okay, well let’s circle back to performance so we can fix this… Some users are hitting slowdowns, but some work was done there to fix the performance of the filters. I can’t quite remember if we gave you folks a custom back-port of 8, but if so can you run another performance analysis of the Python calls? Also, you need to teach me so I can write a wiki article. :smiley:

I’m also bumping it up since some important people are hitting this problem.

We’re not doing much extra work to save the layouts though, just serializing things using Qt’s tools for that…

Re: profiling, what i did was patch the UI\DeadlineLauncher\Forms\MainWindowLauncherStartup.py file, by interjecting some cProfile code:

--- a/misc/UI/DeadlineLauncher/Forms/MainWindowLauncherStartup.py
+++ b/misc/UI/DeadlineLauncher/Forms/MainWindowLauncherStartup.py
@@ -12,6 +12,11 @@ from Deadline.Launcher import Launcher
 from FranticX import Environment2
 from FranticX.Diagnostics import *
 
+import cProfile
+import StringIO
+import pstats
+
+
 class MainWindowLauncherStartup:
 
     def Startup(self):
@@ -33,7 +38,15 @@ class MainWindowLauncherStartup:
             app.setQuitOnLastWindowClosed(False)
             launcherIcon = MainWindowLauncher(app)
             launcherIcon.hide()
+            pr = cProfile.Profile()
+            pr.enable()
             app.exec_()
+            pr.disable()
+            s = StringIO.StringIO()
+            sortby = 'cumulative'
+            ps = pstats.Stats(pr, stream=s).sort_stats(sortby)
+            ps.print_stats()
+            with open('s:/temp/deadlinestats.txt', 'wt') as f: f.write("%s\n" % s.getvalue())
         except:
             Trace2.WriteLine(traceback.format_exc())
             QMessageBox.critical(splashScreen, 'Monitor Startup Error', traceback.format_exc())

This way whenever the monitor (or other apps) are started via the launcher they get wrapped in the profiler execution, and then dumb the data to s:/temp/deadlinestats.txt.

Jon sent me the updated .py files for 8, so i think we have some (or all) of the changes done internally.

So the corrupt / bad layout file, would that be a qt problem?

It’s more than likely a Qt problem unfortunately. We’ve hit problems when we up our library version. I did some digging and I’ll circle back with the dev team to see if there’s a better way to be handling it.

Thanks for the tip on the profiling. I wasn’t sure where to get cProfile in on the action, will recommend to a few other folks and document it here.

Privacy | Site terms | Cookie preferences