iloura
August 25, 2014, 12:38pm
#1
Hey All,
I’m not sure if anyone has had the same issue and can help me out or not, but my deadline monitor is extremely slow after less than half an hour of use at a time. It means that I find myself closing and re-opening it at least 15-20 times a day, which as you can imagine can be quite frustrating. I’ve asked around here and no one else has issues like I do, but I use it more frequently than anyone else as well.
A bit of info about my setup:
I’m running Windows 7
My machine has 16gb RAM
We’re running 6.2 so I assume the problem is not related to the memory leak from a couple of upgrades ago (and besides, when it’s at the slowest it’s never using more than 500mb of memory as opposed to 4gb like when there was the memory leak)
I’m not running any other intensive software that could be slowing things down, and even when I am there’s no noticeable difference between the speed either way
I have quite a few panels open to monitor our increasingly large farm (14 panels), but aside from that I can’t think of anything that could be causing the slow performance
The farm has about 300 machines loading into Deadline (keep in mind no one else has performance issues with Monitor)
Any help would be great!
Thanks
Courtenay
nrusch
August 25, 2014, 4:58pm
#2
I think there was another thread relating to performance degradation with a large number of panels open, but I can’t find it…
What does the CPU load look like for the monitor? Is it constantly pegging one core?
The only thing I can think of off the top of my head that could cause this would be filters (given that it’s clearly not a RAM issue).
Not sure why performance would degrade over time, though; are you adding more filters as you use it, or do you pretty much keep the same set of filters throughout?
Are you using quick filters? I’m wondering if there’s a bug that might steadily add more and more rules as you change your quickfilters, instead of resetting them.
Cheers,
Jon
We have similar issues but its not a gradual slowdown, simply slow in general. We currently think its due to the number of ‘autosorting’ panels combined with the volume of jobs/slaves.
iloura
August 26, 2014, 5:49am
#5
Thanks for the replies everyone!
No, the CPU load looks fine, no issues there.
No quick filters either, and I’m not adding any new filters at all, I have my saved layout and it seldom changes unless I occasionally need to search something - but as of right now I have not added any new ones and monitor has almost stopped working entirely after about 10 minutes of use. All the filters are very basic (status contains rendering, stalled, disabled, offline etc) and are mostly one filter per panel.
When I open Monitor fresh, everything is speedy and as it should be, but it’s just downhill from there, and the only thing that changes is I maybe look at a couple of different panels. However I just checked and memory usage is now at almost 1.3GB, so maybe there is a memory leak? That’s the highest I’ve seen it in a very long time, and I check every now and then to make sure it hasn’t sky rocketed. But still, I’m not running anything else intensive so surely this isn’t the issue.
Cheers
Courtenay
I think its quite memory hungry even without the leaks. Here is my monitor for example:
Been open about 24 hours or so (cpu usage is also quite extensive, thats 1 core going at 100% right now). I have 3 jobs panels, 3 slave panels, 1 pulse panel, limits, dependencies and a task panel. Of all these, only 2 job panels, task panel, limits and pulse panel are currently visible (so i imagine the others would not be pulling cycles?)
iloura
August 27, 2014, 5:28am
#7
Mine looks about the same as yours after leaving it open overnight. It would be good to know whether the panels that are not displaying are still constantly refreshing or not. I have a few more panels than you (6 slave panels) but again only 6 panels in total are visible. I just re-opened Monitor and it’s only using about 300mb, so what causes it to increase over time? I also want to point out that the performance doesn’t improve at night once all the artists have left and I’m the only one in, I was thinking that maybe it had something to do with everyone trying to pull data at the same time, but no dice.
Data is still being loaded/kept for panels that aren’t currently showing, as a general rule. We’ve discussed changing this, and we might end up changing it – I’ll definitely bring it up with Ryan again once he’s back.
One thing I’d like you to try is run the ‘Help’ -> ‘Dump Python Objects’ when you start up the monitor, and then a few more times over the course of your Monitor usage. If you could then post the Monitor’s resulting output log here, that’d be great! Should give us a good idea of at least what kind of objects are sticking around longer than they should, and wreaking havoc on performance.
iloura
August 29, 2014, 5:36am
#9
Thanks for the info Jon. Hopefully if you decide to turn off the loading for hidden panels that would make a difference.
In other news, I ran ‘dump python objects’ a couple of times and had a look at the log. It seems to certainly be getting rid of a lot, but it made absolutely no difference to performance. Here’s the log attached, I hope it sheds some light. I really need to find a solution soon. I turned hyperthreading on my machine on and for a minute I thought it had helped, but it’s still as slow as ever after an hour or two (that’s with constant closing and re-opening).
2014-08-28 17:39:52: BEGIN - SNOWBALL\courtenay.cooper
2014-08-28 17:39:52: Deadline Monitor 6.2 [v6.2.0.32 R (2563d5bc8)]
2014-08-28 17:39:53: Time to initialize: 327.000 ms
2014-08-28 17:39:55: Time to connect to Repository: 967.000 ms
2014-08-28 17:39:55: Time to check user account: 0.000 s
2014-08-28 17:39:55: Time to purge old logs: 203.000 ms
2014-08-28 17:39:56: Time to synchronize plugin icons: 78.000 ms
2014-08-28 17:39:58: Time to initialize main window: 2.574 s
2014-08-28 17:39:58: Main Window shown
2014-08-28 17:39:59: Time to show main window: 234.000 ms
2014-08-28 17:40:25: Python Object Counts [>= 10]:
2014-08-28 17:40:26: 109460 <type 'dict'>
2014-08-28 17:40:26: 21264 <type 'tuple'>
2014-08-28 17:40:26: 14339 <type 'wrapper_descriptor'>
2014-08-28 17:40:26: 4913 <type 'function'>
2014-08-28 17:40:26: 3683 <type 'weakref'>
2014-08-28 17:40:26: 3606 <type 'list'>
2014-08-28 17:40:26: 2505 <class 'ThinkboxUI.Models.UpdateModel.UpdateItem'>
2014-08-28 17:40:26: 2001 <type 'builtin_function_or_method'>
2014-08-28 17:40:26: 1885 <class 'Deadline.Jobs.Job'>
2014-08-28 17:40:26: 1679 <type 'getset_descriptor'>
2014-08-28 17:40:26: 1222 <class 'CLR.CLR Metatype'>
2014-08-28 17:40:26: 1076 <type 'PyQt4.QtCore.pyqtWrapperType'>
2014-08-28 17:40:26: 929 <type 'method_descriptor'>
2014-08-28 17:40:26: 515 <class 'Deadline.Slaves.SlaveInfoSettings'>
2014-08-28 17:40:26: 511 <type 'sip.enumtype'>
2014-08-28 17:40:26: 491 <type 'module'>
2014-08-28 17:40:26: 418 <class 'PyQt4.QtCore.Key'>
2014-08-28 17:40:26: 333 <class 'PyQt4.QtGui.QCheckBox'>
2014-08-28 17:40:26: 283 <type 'instancemethod'>
2014-08-28 17:40:26: 263 <type 'property'>
2014-08-28 17:40:26: 237 <class 'Deadline.Permissions.Feature'>
2014-08-28 17:40:26: 219 <type 'type'>
2014-08-28 17:40:26: 198 <type 'set'>
2014-08-28 17:40:26: 187 <class 'PyQt4.QtCore.Type'>
2014-08-28 17:40:26: 187 <type 'member_descriptor'>
2014-08-28 17:40:26: 144 <class 'DeadlineMonitor.Forms.MonitorDockWidget.MonitorMorphWidget'>
2014-08-28 17:40:26: 138 <class 'PyQt4.QtGui.QAction'>
2014-08-28 17:40:26: 125 <class 'PyQt4.QtGui.QIcon'>
2014-08-28 17:40:26: 113 <class 'PyQt4.QtGui.StyleHint'>
2014-08-28 17:40:26: 105 <class 'PyQt4.QtCore.WidgetAttribute'>
2014-08-28 17:40:26: 95 <class 'PyQt4.QtGui.PixelMetric'>
2014-08-28 17:40:26: 91 <class 'PyQt4.QtCore.QVariant'>
2014-08-28 17:40:26: 89 <class 'Deadline.Importers.JobDetailsEntry'>
2014-08-28 17:40:26: 71 <class 'PyQt4.QtGui.QColor'>
2014-08-28 17:40:26: 70 <class 'PyQt4.QtGui.StandardPixmap'>
2014-08-28 17:40:26: 66 <class 'PyQt4.QtGui.QVBoxLayout'>
2014-08-28 17:40:26: 66 <class 'PyQt4.QtGui.StandardKey'>
2014-08-28 17:40:26: 66 <class 'PyQt4.QtGui.SubElement'>
2014-08-28 17:40:26: 58 <class 'PyQt4.QtChart.QPieSlice'>
2014-08-28 17:40:26: 57 <class 'PyQt4.QtGui.PrimitiveElement'>
2014-08-28 17:40:26: 49 <class 'PyQt4.QtGui.ControlElement'>
2014-08-28 17:40:26: 47 <class 'Deadline.Configuration.ScriptInfo'>
2014-08-28 17:40:26: 46 <class 'PyQt4.QtGui.StandardButton'>
2014-08-28 17:40:26: 46 <class 'PyQt4.QtGui.SubControl'>
2014-08-28 17:40:26: 45 <class 'DeadlineUI.Commands.ScriptCommands.SubmissionScriptQAction'>
2014-08-28 17:40:26: 44 <type 'classobj'>
2014-08-28 17:40:26: 43 <class 'PyQt4.QtGui.QToolButton'>
2014-08-28 17:40:26: 37 <class 'PyQt4.QtGui.QWidget'>
2014-08-28 17:40:26: 35 <class 'ThinkboxUI.Commands.QMenuPlusFiles.QMenuPlus'>
2014-08-28 17:40:26: 34 <class 'PyQt4.QtGui.GraphicsItemChange'>
2014-08-28 17:40:26: 33 <class 'PyQt4.QtCore.WindowType'>
2014-08-28 17:40:26: 33 <class 'PyQt4.QtGui.CompositionMode'>
2014-08-28 17:40:26: 29 <class 'PyQt4.QtGui.OptionType'>
2014-08-28 17:40:26: 28 <class 'PyQt4.QtGui.QHBoxLayout'>
2014-08-28 17:40:26: 28 <class 'PyQt4.QtGui.QLabel'>
2014-08-28 17:40:26: 28 <class 'PyQt4.QtGui.StateFlag'>
2014-08-28 17:40:26: 26 <class 'PyQt4.QtGui.ContentsType'>
2014-08-28 17:40:26: 25 <class 'PyQt4.QtCore.CursorShape'>
2014-08-28 17:40:26: 25 <class 'PyQt4.QtGui.MoveOperation'>
2014-08-28 17:40:26: 24 <class 'PyQt4.QtCore.QModelIndex'>
2014-08-28 17:40:26: 24 <type 'operator.itemgetter'>
2014-08-28 17:40:26: 23 <class 'PyQt4.QtGui.ColorRole'>
2014-08-28 17:40:26: 20 <class 'PyQt4.QtCore.GlobalColor'>
2014-08-28 17:40:26: 20 <class 'PyQt4.QtGui.ButtonRole'>
2014-08-28 17:40:26: 20 <class 'PyQt4.QtGui.QKeySequence'>
2014-08-28 17:40:26: 19 <class 'PyQt4.QtCore.BrushStyle'>
2014-08-28 17:40:26: 18 <class 'PyQt4.QtCore.ItemDataRole'>
2014-08-28 17:40:26: 18 <class 'abc.ABCMeta'>
2014-08-28 17:40:26: 17 <type 'staticmethod'>
2014-08-28 17:40:26: 16 <class 'PyQt4.QtGui.GraphicsItemFlag'>
2014-08-28 17:40:26: 16 <type 'classmethod'>
2014-08-28 17:40:26: 16 <type 'frozenset'>
2014-08-28 17:40:26: 16 <type 'instance'>
2014-08-28 17:40:26: 15 <class 'PyQt4.QtCore.InputMethodHint'>
2014-08-28 17:40:26: 15 <class 'PyQt4.QtGui.ControlType'>
2014-08-28 17:40:26: 15 <class 'PyQt4.QtGui.QSplitter'>
2014-08-28 17:40:26: 15 <type 'classmethod_descriptor'>
2014-08-28 17:40:26: 14 <class 'ThinkboxUI.Controls.DownArrowToolButton.DownArrowToolButton'>
2014-08-28 17:40:26: 13 <class 'Deadline.LimitGroups.LimitGroup'>
2014-08-28 17:40:26: 13 <class 'PyQt4.QtCore.AlignmentFlag'>
2014-08-28 17:40:26: 13 <class 'PyQt4.QtCore.QSettings'>
2014-08-28 17:40:26: 13 <class 'PyQt4.QtCore.QTimer'>
2014-08-28 17:40:26: 13 <class 'abc.abstractproperty'>
2014-08-28 17:40:26: 12 <class 'DeadlineMonitor.Forms.MonitorDockWidget.MonitorDockWidget'>
2014-08-28 17:40:26: 12 <class 'PyQt4.QtChart.QChart'>
2014-08-28 17:40:26: 12 <class 'PyQt4.QtChart.QChartView'>
2014-08-28 17:40:26: 12 <class 'PyQt4.QtChart.QPieSeries'>
2014-08-28 17:40:26: 12 <class 'PyQt4.QtCore.ApplicationAttribute'>
2014-08-28 17:40:26: 12 <class 'PyQt4.QtCore.ImageConversionFlag'>
2014-08-28 17:40:26: 12 <class 'PyQt4.QtCore.QString'>
2014-08-28 17:40:26: 12 <class 'PyQt4.QtGui.QScrollArea'>
2014-08-28 17:40:26: 12 <class 'PyQt4.QtGui.QSpacerItem'>
2014-08-28 17:40:26: 12 <class 'PyQt4.QtGui.QStackedWidget'>
2014-08-28 17:40:26: 12 <class 'PyQt4.QtGui.QTreeView'>
2014-08-28 17:40:26: 12 <class 'PyQt4.QtGui.StyleStrategy'>
2014-08-28 17:40:26: 12 <class 'ThinkboxUI.Controls.ElidedLabel.ElidedLabel'>
2014-08-28 17:40:26: 12 <class 'ThinkboxUI.Controls.IconLineEdit.IconButton'>
2014-08-28 17:40:26: 12 <class 'ThinkboxUI.Controls.IconLineEdit.IconLineEdit'>
2014-08-28 17:40:26: 12 <class 'ThinkboxUI.Controls.KeyPressTreeView.KeyPressTreeView'>
2014-08-28 17:40:26: 11 <class 'DeadlineMonitor.DisplayWidgets.FilterListWidget.FilterListWidget_META'>
2014-08-28 17:40:26: 11 <class 'PyQt4.QtChart.SeriesType'>
2014-08-28 17:40:26: 11 <class 'PyQt4.QtGui.ComplexControl'>
2014-08-28 17:40:26: 11 <class 'PyQt4.QtGui.SelectionFlag'>
2014-08-28 17:40:26: 11 <class 'PyQt4.QtGui.StandardLocation'>
2014-08-28 17:40:26: 10 <class 'PyQt4.QtCore.FormattingOption'>
2014-08-28 17:40:26: 10 <class 'PyQt4.QtCore.ItemFlags'>
2014-08-28 17:40:26: 10 <class 'PyQt4.QtCore.MatchFlag'>
2014-08-28 17:40:26: 10 <class 'PyQt4.QtCore.TextFlag'>
2014-08-28 17:40:26: 10 <class 'PyQt4.QtCore.WindowFrameSection'>
2014-08-28 17:40:26: 10 <class 'PyQt4.QtGui.CursorAction'>
2014-08-28 17:40:26: 10 <class 'PyQt4.QtGui.PaintDeviceMetric'>
2014-08-28 17:40:26: 10 <type 'collections.deque'>
2014-08-28 17:40:26: [Ommitted 321 other object types]
2014-08-28 17:40:26: Python Object Deltas (since last dump):
2014-08-28 17:40:26: +104471 <type 'dict'>
2014-08-28 17:40:26: +2442 <type 'list'>
2014-08-28 17:40:26: +2416 <class 'ThinkboxUI.Models.UpdateModel.UpdateItem'>
2014-08-28 17:40:26: +1885 <class 'Deadline.Jobs.Job'>
2014-08-28 17:40:26: +515 <class 'Deadline.Slaves.SlaveInfoSettings'>
2014-08-28 17:40:26: +347 <type 'weakref'>
2014-08-28 17:40:26: +333 <class 'PyQt4.QtGui.QCheckBox'>
2014-08-28 17:40:26: +243 <type 'instancemethod'>
2014-08-28 17:40:26: +158 <class 'Deadline.Permissions.Feature'>
2014-08-28 17:40:26: +144 <class 'DeadlineMonitor.Forms.MonitorDockWidget.MonitorMorphWidget'>
2014-08-28 17:40:26: +133 <class 'PyQt4.QtCore.Type'>
2014-08-28 17:40:26: +109 <type 'wrapper_descriptor'>
2014-08-28 17:40:26: +89 <class 'PyQt4.QtCore.QVariant'>
2014-08-28 17:40:26: +85 <class 'PyQt4.QtGui.QAction'>
2014-08-28 17:40:26: +66 <class 'PyQt4.QtGui.QVBoxLayout'>
2014-08-28 17:40:26: +58 <class 'PyQt4.QtChart.QPieSlice'>
2014-08-28 17:40:26: +55 <class 'PyQt4.QtGui.QIcon'>
2014-08-28 17:40:26: +43 <class 'PyQt4.QtGui.QToolButton'>
2014-08-28 17:40:26: +38 <type 'method_descriptor'>
2014-08-28 17:40:26: +36 <class 'PyQt4.QtGui.QWidget'>
2014-08-28 17:40:26: +34 <class 'PyQt4.QtGui.GraphicsItemChange'>
2014-08-28 17:40:26: +33 <class 'PyQt4.QtGui.CompositionMode'>
2014-08-28 17:40:26: +29 <class 'PyQt4.QtGui.OptionType'>
2014-08-28 17:40:26: +28 <class 'PyQt4.QtGui.QHBoxLayout'>
2014-08-28 17:40:26: +28 <class 'PyQt4.QtGui.QLabel'>
2014-08-28 17:40:26: +26 <class 'ThinkboxUI.Commands.QMenuPlusFiles.QMenuPlus'>
2014-08-28 17:40:26: +25 <class 'PyQt4.QtGui.MoveOperation'>
2014-08-28 17:40:26: +19 <class 'PyQt4.QtGui.StandardButton'>
2014-08-28 17:40:26: +16 <class 'PyQt4.QtGui.GraphicsItemFlag'>
2014-08-28 17:40:26: +15 <class 'PyQt4.QtGui.QSplitter'>
2014-08-28 17:40:26: +14 <class 'ThinkboxUI.Controls.DownArrowToolButton.DownArrowToolButton'>
2014-08-28 17:40:26: +13 <class 'Deadline.LimitGroups.LimitGroup'>
2014-08-28 17:40:26: +13 <class 'PyQt4.QtCore.QSettings'>
2014-08-28 17:40:26: +13 <type 'getset_descriptor'>
2014-08-28 17:40:26: +12 <class 'DeadlineMonitor.Forms.MonitorDockWidget.MonitorDockWidget'>
2014-08-28 17:40:26: +12 <class 'PyQt4.QtChart.QChart'>
2014-08-28 17:40:26: +12 <class 'PyQt4.QtChart.QChartView'>
2014-08-28 17:40:26: +12 <class 'PyQt4.QtChart.QPieSeries'>
2014-08-28 17:40:26: +12 <class 'PyQt4.QtCore.QString'>
2014-08-28 17:40:26: +12 <class 'PyQt4.QtGui.QScrollArea'>
2014-08-28 17:40:26: +12 <class 'PyQt4.QtGui.QSpacerItem'>
2014-08-28 17:40:26: +12 <class 'PyQt4.QtGui.QStackedWidget'>
2014-08-28 17:40:26: +12 <class 'PyQt4.QtGui.QTreeView'>
2014-08-28 17:40:26: +12 <class 'ThinkboxUI.Controls.ElidedLabel.ElidedLabel'>
2014-08-28 17:40:26: +12 <class 'ThinkboxUI.Controls.IconLineEdit.IconButton'>
2014-08-28 17:40:26: +12 <class 'ThinkboxUI.Controls.IconLineEdit.IconLineEdit'>
2014-08-28 17:40:26: +12 <class 'ThinkboxUI.Controls.KeyPressTreeView.KeyPressTreeView'>
2014-08-28 17:40:26: +12 <type 'instance'>
2014-08-28 17:40:26: +11 <class 'PyQt4.QtChart.SeriesType'>
2014-08-28 17:40:26: +11 <class 'PyQt4.QtGui.SelectionFlag'>
2014-08-28 17:40:26: +11 <class 'PyQt4.QtGui.StandardLocation'>
2014-08-28 17:40:26: +11 <type 'builtin_function_or_method'>
2014-08-28 17:40:26: +10 <class 'PyQt4.QtCore.FormattingOption'>
2014-08-28 17:40:26: +10 <class 'PyQt4.QtGui.ButtonRole'>
2014-08-28 17:40:26: +9 <class 'PyQt4.QtCore.QByteArray'>
2014-08-28 17:40:26: +9 <class 'PyQt4.QtGui.StyleOptionVersion'>
2014-08-28 17:40:26: +9 <type 'classmethod_descriptor'>
2014-08-28 17:40:26: +8 <class 'PyQt4.QtGui.SliderAction'>
2014-08-28 17:40:26: +7 <class 'PyQt4.QtChart.ChartTheme'>
2014-08-28 17:40:26: +6 <class 'DeadlineMonitor.Controls.SlaveListControl.SlaveListControl'>
2014-08-28 17:40:26: +6 <class 'DeadlineMonitor.DisplayWidgets.SlaveListWidget.SlaveListWidget'>
2014-08-28 17:40:26: +6 <class 'DeadlineUI.Models.SlaveListProxyModel.SlaveListProxyModel'>
2014-08-28 17:40:26: +6 <class 'PyQt4.QtCore.PatternSyntax'>
2014-08-28 17:40:26: +6 <class 'PyQt4.QtGui.Direction'>
2014-08-28 17:40:26: +6 <class 'PyQt4.QtGui.SizeConstraint'>
2014-08-28 17:40:26: +6 <class 'PyQt4.QtGui.StyleOptionType'>
2014-08-28 17:40:26: +6 <class 'PyQt4.QtGui.ToolButtonFeature'>
2014-08-28 17:40:26: +6 <class 'PyQt4.QtGui.ViewItemFeature'>
2014-08-28 17:40:26: +6 <class 'ThinkboxUI.Controls.CollapsibleGroupBox.CollapsibleGroupBox'>
2014-08-28 17:40:26: +6 <type 'classobj'>
2014-08-28 17:40:26: +6 <type 'function'>
2014-08-28 17:40:26: +5 <class 'CLR.CLR Metatype'>
2014-08-28 17:40:26: +5 <class 'PyQt4.QtGui.Flag'>
2014-08-28 17:40:26: +5 <class 'PyQt4.QtGui.RenderHint'>
2014-08-28 17:40:26: +5 <class 'PyQt4.QtGui.ResizeMode'>
2014-08-28 17:40:26: +5 <class 'PyQt4.QtGui.ViewItemPosition'>
2014-08-28 17:40:26: +5 <class 'PyQt4.QtGui.WrapMode'>
2014-08-28 17:40:26: +4 <class 'Deadline.Monitor.MonitorManager'>
2014-08-28 17:40:26: +4 <class 'PyQt4.QtChart.AnimationOption'>
2014-08-28 17:40:26: +4 <class 'PyQt4.QtChart.LabelPosition'>
2014-08-28 17:40:26: +4 <class 'PyQt4.QtChart.RubberBand'>
2014-08-28 17:40:26: +4 <class 'PyQt4.QtGui.ButtonLayout'>
2014-08-28 17:40:26: +4 <class 'PyQt4.QtGui.Position'>
2014-08-28 17:40:26: +4 <class 'PyQt4.QtGui.QFrame'>
2014-08-28 17:40:26: +4 <class 'PyQt4.QtGui.ResourceType'>
2014-08-28 17:40:26: +4 <class 'PyQt4.QtGui.SelectionType'>
2014-08-28 17:40:26: +4 <class 'PyQt4.QtGui.SliderChange'>
2014-08-28 17:40:26: +4 <class 'PyQt4.QtGui.TabType'>
2014-08-28 17:40:26: +4 <type 'type'>
2014-08-28 17:40:26: +3 <class 'Deadline.Pulses.PulseInfo'>
2014-08-28 17:40:26: +3 <class 'DeadlineUI.Commands.MonitorCommands.MonitorManageLayouts'>
2014-08-28 17:40:26: +3 <class 'DeadlineUI.Commands.MonitorCommands.MonitorPinLayout'>
2014-08-28 17:40:26: +3 <class 'PyQt4.QtCore.CaretMode'>
2014-08-28 17:40:26: +3 <class 'PyQt4.QtCore.QTimer'>
2014-08-28 17:40:26: +3 <class 'PyQt4.QtGui.CacheMode'>
2014-08-28 17:40:26: +3 <class 'PyQt4.QtGui.FindFlag'>
2014-08-28 17:40:26: +3 <class 'PyQt4.QtGui.PanelModality'>
2014-08-28 17:40:26: +3 <class 'PyQt4.QtGui.Stacks'>
2014-08-28 17:40:26: +3 <class 'ThinkboxUI.Controls.LineNumberTextEdit.LineNumberTextEdit'>
2014-08-28 17:40:26: +3 <class 'ThinkboxUI.Controls.LineNumberTextEdit.NumberBar'>
2014-08-28 17:40:26: +3 <class 'ThinkboxUI.Controls.LineNumberTextEdit.PlainTextEdit'>
2014-08-28 17:40:26: +3 <type 'member_descriptor'>
2014-08-28 17:40:26: +3 <type 'module'>
2014-08-28 17:40:26: +2 <class 'DeadlineMonitor.Forms.MonitorTreeView.ProgressDelegate'>
2014-08-28 17:40:26: +2 <class 'PyQt4.QtCore.MonthNameType'>
2014-08-28 17:40:26: +2 <class 'PyQt4.QtCore.ParsingMode'>
2014-08-28 17:40:26: +2 <class 'PyQt4.QtGui.MetaInformation'>
2014-08-28 17:40:26: +2 <class 'PyQt4.QtGui.MoveMode'>
2014-08-28 17:40:26: +2 <class 'PyQt4.QtGui.QScrollBar'>
2014-08-28 17:40:26: +2 <class 'PyQt4.QtGui.QWidgetAction'>
2014-08-28 17:40:26: +2 <class 'codecs.CodecInfo'>
2014-08-28 17:40:26: +1 <class 'Deadline.Monitor.MonitorLayout'>
2014-08-28 17:40:26: +1 <class 'DeadlineMonitor.Controls.JobListControl.JobListControl'>
2014-08-28 17:40:26: +1 <class 'DeadlineMonitor.Controls.JobListControl.JobListDelegate'>
2014-08-28 17:40:26: +1 <class 'DeadlineMonitor.Controls.JobReportListControl.JobReportListControl'>
2014-08-28 17:40:26: +1 <class 'DeadlineMonitor.Controls.LimitListControl.LimitListControl'>
2014-08-28 17:40:26: +1 <class 'DeadlineMonitor.Controls.RemoteCommandStatusControl.RemoteCommandStatusControl'>
2014-08-28 17:40:26: +1 <class 'DeadlineMonitor.Controls.SlaveReportListControl.SlaveReportListControl'>
2014-08-28 17:40:26: +1 <class 'DeadlineMonitor.Controls.TaskListControl.TaskListControl'>
2014-08-28 17:40:26: +1 <class 'DeadlineMonitor.DisplayWidgets.JobListWidget.JobListWidget'>
2014-08-28 17:40:26: +1 <class 'DeadlineMonitor.DisplayWidgets.JobReportListWidget.JobReportListWidget'>
2014-08-28 17:40:26: +1 <class 'DeadlineMonitor.DisplayWidgets.LimitsListWidget.LimitsListWidget'>
2014-08-28 17:40:26: +1 <class 'DeadlineMonitor.DisplayWidgets.RemoteCommandStatusWidget.RemoteCommandStatusWidget'>
2014-08-28 17:40:26: +1 <class 'DeadlineMonitor.DisplayWidgets.SlaveReportListWidget.SlaveReportListWidget'>
2014-08-28 17:40:26: +1 <class 'DeadlineMonitor.DisplayWidgets.TasksListWidget.TasksListWidget'>
2014-08-28 17:40:26: +1 <class 'DeadlineMonitor.Forms.StatusBarWidget.StatusBarWidget'>
2014-08-28 17:40:26: +1 <class 'DeadlineUI.Commands.DeadlineCommands.DeadlineExploreLogFolder'>
2014-08-28 17:40:26: +1 <class 'DeadlineUI.Commands.DeadlineCommands.DeadlineManualLink'>
2014-08-28 17:40:26: +1 <class 'DeadlineUI.Commands.DeadlineCommands.DeadlineSupportLink'>
2014-08-28 17:40:26: +1 <class 'DeadlineUI.Commands.DeadlineCommands.MonitorViewDatabaseStats'>
2014-08-28 17:40:26: +1 <class 'DeadlineUI.Commands.MonitorCommands.EditMonitorOptions'>
2014-08-28 17:40:26: +1 <class 'DeadlineUI.Commands.MonitorCommands.MonitorChangeRepository'>
2014-08-28 17:40:26: +1 <class 'DeadlineUI.Commands.MonitorCommands.MonitorChangeUser'>
2014-08-28 17:40:26: +1 <class 'DeadlineUI.Commands.MonitorCommands.MonitorLockWidgets'>
2014-08-28 17:40:26: +1 <class 'DeadlineUI.Commands.MonitorCommands.MonitorRefresh'>
2014-08-28 17:40:26: +1 <class 'DeadlineUI.Commands.MonitorCommands.MonitorSpawnNewCloudViewer'>
2014-08-28 17:40:26: +1 <class 'DeadlineUI.Commands.MonitorCommands.MonitorSpawnNewConsoleWidget'>
2014-08-28 17:40:26: +1 <class 'DeadlineUI.Commands.MonitorCommands.MonitorSpawnNewJobDependencyNodeViewer'>
2014-08-28 17:40:26: +1 <class 'DeadlineUI.Commands.MonitorCommands.MonitorSpawnNewJobInfo'>
2014-08-28 17:40:26: +1 <class 'DeadlineUI.Commands.MonitorCommands.MonitorSpawnNewJobList'>
2014-08-28 17:40:26: +1 <class 'DeadlineUI.Commands.MonitorCommands.MonitorSpawnNewJobReportList'>
2014-08-28 17:40:26: +1 <class 'DeadlineUI.Commands.MonitorCommands.MonitorSpawnNewLimitList'>
2014-08-28 17:40:26: +1 <class 'DeadlineUI.Commands.MonitorCommands.MonitorSpawnNewPulseList'>
2014-08-28 17:40:26: +1 <class 'DeadlineUI.Commands.MonitorCommands.MonitorSpawnNewRemoteCommandStatus'>
2014-08-28 17:40:26: +1 <class 'DeadlineUI.Commands.MonitorCommands.MonitorSpawnNewSlaveList'>
2014-08-28 17:40:26: +1 <class 'DeadlineUI.Commands.MonitorCommands.MonitorSpawnNewSlaveReportList'>
2014-08-28 17:40:26: +1 <class 'DeadlineUI.Commands.MonitorCommands.MonitorSpawnNewTaskList'>
2014-08-28 17:40:26: +1 <class 'DeadlineUI.Models.JobListProxyModel.JobListProxyModel'>
2014-08-28 17:40:26: +1 <class 'DeadlineUI.Models.JobReportListProxyModel.JobReportListProxyModel'>
2014-08-28 17:40:26: +1 <class 'DeadlineUI.Models.LimitListProxyModel.LimitListProxyModel'>
2014-08-28 17:40:26: +1 <class 'DeadlineUI.Models.RemoteCommandStatusProxyModel.RemoteCommandStatusProxyModel'>
2014-08-28 17:40:26: +1 <class 'DeadlineUI.Models.SlaveReportListProxyModel.SlaveReportListProxyModel'>
2014-08-28 17:40:26: +1 <class 'DeadlineUI.Models.TaskListProxyModel.TaskListProxyModel'>
2014-08-28 17:40:26: +1 <class 'PyQt4.QtCore.QDate'>
2014-08-28 17:40:26: +1 <class 'PyQt4.QtGui.PixmapFragmentHint'>
2014-08-28 17:40:26: +1 <class 'ThinkboxUI.Commands.ApplicationCommands.ApplicationAbout'>
2014-08-28 17:40:26: -1 <type 'frame'>
2014-08-28 17:40:26: -23 <type 'tuple'>
2014-08-28 17:56:30: Python Object Counts [>= 10]:
2014-08-28 17:56:31: 118078 <type 'dict'>
2014-08-28 17:56:31: 21443 <type 'tuple'>
2014-08-28 17:56:31: 14409 <type 'wrapper_descriptor'>
2014-08-28 17:56:31: 4913 <type 'function'>
2014-08-28 17:56:31: 4649 <type 'list'>
2014-08-28 17:56:31: 3809 <type 'weakref'>
2014-08-28 17:56:31: 3539 <class 'ThinkboxUI.Models.UpdateModel.UpdateItem'>
2014-08-28 17:56:31: 2008 <type 'builtin_function_or_method'>
2014-08-28 17:56:31: 1898 <class 'Deadline.Jobs.Job'>
2014-08-28 17:56:31: 1679 <type 'getset_descriptor'>
2014-08-28 17:56:31: 1229 <class 'CLR.CLR Metatype'>
2014-08-28 17:56:31: 1076 <type 'PyQt4.QtCore.pyqtWrapperType'>
2014-08-28 17:56:31: 930 <type 'method_descriptor'>
2014-08-28 17:56:31: 677 <class 'Deadline.Slaves.SlaveInfoSettings'>
2014-08-28 17:56:31: 511 <type 'sip.enumtype'>
2014-08-28 17:56:31: 499 <class 'PyQt4.QtCore.QVariant'>
2014-08-28 17:56:31: 497 <class 'Deadline.Importers.JobDetailsEntry'>
2014-08-28 17:56:31: 491 <type 'module'>
2014-08-28 17:56:31: 418 <class 'PyQt4.QtCore.Key'>
2014-08-28 17:56:31: 333 <class 'PyQt4.QtGui.QCheckBox'>
2014-08-28 17:56:31: 310 <class 'Deadline.Permissions.Feature'>
2014-08-28 17:56:31: 286 <type 'instancemethod'>
2014-08-28 17:56:31: 263 <type 'property'>
2014-08-28 17:56:31: 256 <class 'Deadline.Reports.Report'>
2014-08-28 17:56:31: 219 <type 'type'>
2014-08-28 17:56:31: 198 <type 'set'>
2014-08-28 17:56:31: 195 <class 'Deadline.Jobs.Task'>
2014-08-28 17:56:31: 187 <class 'PyQt4.QtCore.Type'>
2014-08-28 17:56:31: 187 <type 'member_descriptor'>
2014-08-28 17:56:31: 172 <class 'PyQt4.QtGui.QAction'>
2014-08-28 17:56:31: 144 <class 'DeadlineMonitor.Forms.MonitorDockWidget.MonitorMorphWidget'>
2014-08-28 17:56:31: 125 <class 'PyQt4.QtGui.QIcon'>
2014-08-28 17:56:31: 113 <class 'PyQt4.QtGui.StyleHint'>
2014-08-28 17:56:31: 105 <class 'PyQt4.QtCore.WidgetAttribute'>
2014-08-28 17:56:31: 95 <class 'PyQt4.QtGui.PixelMetric'>
2014-08-28 17:56:31: 71 <class 'PyQt4.QtGui.QColor'>
2014-08-28 17:56:31: 70 <class 'PyQt4.QtGui.StandardPixmap'>
2014-08-28 17:56:31: 66 <class 'PyQt4.QtGui.QVBoxLayout'>
2014-08-28 17:56:31: 66 <class 'PyQt4.QtGui.StandardKey'>
2014-08-28 17:56:31: 66 <class 'PyQt4.QtGui.SubElement'>
2014-08-28 17:56:31: 61 <class 'Deadline.Configuration.ScriptInfo'>
2014-08-28 17:56:31: 58 <class 'PyQt4.QtChart.QPieSlice'>
2014-08-28 17:56:31: 57 <class 'PyQt4.QtGui.PrimitiveElement'>
2014-08-28 17:56:31: 52 <class 'ThinkboxUI.Commands.QMenuPlusFiles.QMenuPlus'>
2014-08-28 17:56:31: 49 <class 'PyQt4.QtGui.ControlElement'>
2014-08-28 17:56:31: 46 <class 'PyQt4.QtGui.StandardButton'>
2014-08-28 17:56:31: 46 <class 'PyQt4.QtGui.SubControl'>
2014-08-28 17:56:31: 45 <class 'DeadlineUI.Commands.ScriptCommands.SubmissionScriptQAction'>
2014-08-28 17:56:31: 44 <type 'classobj'>
2014-08-28 17:56:31: 43 <class 'PyQt4.QtGui.QToolButton'>
2014-08-28 17:56:31: 39 <class 'PyQt4.QtGui.QWidget'>
2014-08-28 17:56:31: 34 <class 'PyQt4.QtGui.GraphicsItemChange'>
2014-08-28 17:56:31: 33 <class 'PyQt4.QtCore.WindowType'>
2014-08-28 17:56:31: 33 <class 'PyQt4.QtGui.CompositionMode'>
2014-08-28 17:56:31: 29 <class 'PyQt4.QtGui.OptionType'>
2014-08-28 17:56:31: 28 <class 'PyQt4.QtGui.QHBoxLayout'>
2014-08-28 17:56:31: 28 <class 'PyQt4.QtGui.QLabel'>
2014-08-28 17:56:31: 28 <class 'PyQt4.QtGui.StateFlag'>
2014-08-28 17:56:31: 26 <class 'PyQt4.QtGui.ContentsType'>
2014-08-28 17:56:31: 25 <class 'PyQt4.QtCore.CursorShape'>
2014-08-28 17:56:31: 25 <class 'PyQt4.QtGui.MoveOperation'>
2014-08-28 17:56:31: 24 <class 'PyQt4.QtCore.QModelIndex'>
2014-08-28 17:56:31: 24 <type 'operator.itemgetter'>
2014-08-28 17:56:31: 23 <class 'PyQt4.QtGui.ColorRole'>
2014-08-28 17:56:31: 20 <class 'PyQt4.QtCore.GlobalColor'>
2014-08-28 17:56:31: 20 <class 'PyQt4.QtGui.ButtonRole'>
2014-08-28 17:56:31: 20 <class 'PyQt4.QtGui.QKeySequence'>
2014-08-28 17:56:31: 19 <class 'PyQt4.QtCore.BrushStyle'>
2014-08-28 17:56:31: 18 <class 'PyQt4.QtCore.ItemDataRole'>
2014-08-28 17:56:31: 18 <class 'abc.ABCMeta'>
2014-08-28 17:56:31: 17 <class 'PyQt4.QtCore.QTimer'>
2014-08-28 17:56:31: 17 <type 'staticmethod'>
2014-08-28 17:56:31: 16 <class 'DeadlineUI.Commands.ScriptCommands.GeneralScriptQAction'>
2014-08-28 17:56:31: 16 <class 'PyQt4.QtCore.QString'>
2014-08-28 17:56:31: 16 <class 'PyQt4.QtGui.GraphicsItemFlag'>
2014-08-28 17:56:31: 16 <type 'classmethod'>
2014-08-28 17:56:31: 16 <type 'frozenset'>
2014-08-28 17:56:31: 16 <type 'instance'>
2014-08-28 17:56:31: 15 <class 'PyQt4.QtCore.InputMethodHint'>
2014-08-28 17:56:31: 15 <class 'PyQt4.QtGui.ControlType'>
2014-08-28 17:56:31: 15 <class 'PyQt4.QtGui.QSplitter'>
2014-08-28 17:56:31: 15 <type 'classmethod_descriptor'>
2014-08-28 17:56:31: 14 <class 'PyQt4.QtCore.ItemFlags'>
2014-08-28 17:56:31: 14 <class 'ThinkboxUI.Controls.DownArrowToolButton.DownArrowToolButton'>
2014-08-28 17:56:31: 14 <type 'collections.deque'>
2014-08-28 17:56:31: 13 <class 'Deadline.LimitGroups.LimitGroup'>
2014-08-28 17:56:31: 13 <class 'DeadlineUI.Commands.RemoteCommands.RemoteSlaveCommandAfterLastTask'>
2014-08-28 17:56:31: 13 <class 'PyQt4.QtCore.AlignmentFlag'>
2014-08-28 17:56:31: 13 <class 'PyQt4.QtCore.QSettings'>
2014-08-28 17:56:31: 13 <class 'abc.abstractproperty'>
2014-08-28 17:56:31: 12 <class 'DeadlineMonitor.Forms.MonitorDockWidget.MonitorDockWidget'>
2014-08-28 17:56:31: 12 <class 'PyQt4.QtChart.QChart'>
2014-08-28 17:56:31: 12 <class 'PyQt4.QtChart.QChartView'>
2014-08-28 17:56:31: 12 <class 'PyQt4.QtChart.QPieSeries'>
2014-08-28 17:56:31: 12 <class 'PyQt4.QtCore.ApplicationAttribute'>
2014-08-28 17:56:31: 12 <class 'PyQt4.QtCore.ImageConversionFlag'>
2014-08-28 17:56:31: 12 <class 'PyQt4.QtGui.QScrollArea'>
2014-08-28 17:56:31: 12 <class 'PyQt4.QtGui.QSpacerItem'>
2014-08-28 17:56:31: 12 <class 'PyQt4.QtGui.QStackedWidget'>
2014-08-28 17:56:31: 12 <class 'PyQt4.QtGui.QTreeView'>
2014-08-28 17:56:31: 12 <class 'PyQt4.QtGui.StyleStrategy'>
2014-08-28 17:56:31: 12 <class 'ThinkboxUI.Controls.ElidedLabel.ElidedLabel'>
2014-08-28 17:56:31: 12 <class 'ThinkboxUI.Controls.IconLineEdit.IconButton'>
2014-08-28 17:56:31: 12 <class 'ThinkboxUI.Controls.IconLineEdit.IconLineEdit'>
2014-08-28 17:56:31: 12 <class 'ThinkboxUI.Controls.KeyPressTreeView.KeyPressTreeView'>
2014-08-28 17:56:31: 11 <class 'DeadlineMonitor.DisplayWidgets.FilterListWidget.FilterListWidget_META'>
2014-08-28 17:56:31: 11 <class 'PyQt4.QtChart.SeriesType'>
2014-08-28 17:56:31: 11 <class 'PyQt4.QtGui.ComplexControl'>
2014-08-28 17:56:31: 11 <class 'PyQt4.QtGui.Section'>
2014-08-28 17:56:31: 11 <class 'PyQt4.QtGui.SelectionFlag'>
2014-08-28 17:56:31: 11 <class 'PyQt4.QtGui.StandardLocation'>
2014-08-28 17:56:31: 10 <class 'PyQt4.QtCore.FormattingOption'>
2014-08-28 17:56:31: 10 <class 'PyQt4.QtCore.MatchFlag'>
2014-08-28 17:56:31: 10 <class 'PyQt4.QtCore.TextFlag'>
2014-08-28 17:56:31: 10 <class 'PyQt4.QtCore.WindowFrameSection'>
2014-08-28 17:56:31: 10 <class 'PyQt4.QtGui.CursorAction'>
2014-08-28 17:56:31: 10 <class 'PyQt4.QtGui.PaintDeviceMetric'>
2014-08-28 17:56:31: [Ommitted 385 other object types]
2014-08-28 17:56:31: Python Object Deltas (since last dump):
2014-08-28 17:56:31: +8618 <type 'dict'>
2014-08-28 17:56:31: +1043 <type 'list'>
2014-08-28 17:56:31: +1034 <class 'ThinkboxUI.Models.UpdateModel.UpdateItem'>
2014-08-28 17:56:31: +408 <class 'Deadline.Importers.JobDetailsEntry'>
2014-08-28 17:56:31: +408 <class 'PyQt4.QtCore.QVariant'>
2014-08-28 17:56:31: +256 <class 'Deadline.Reports.Report'>
2014-08-28 17:56:31: +195 <class 'Deadline.Jobs.Task'>
2014-08-28 17:56:31: +179 <type 'tuple'>
2014-08-28 17:56:31: +162 <class 'Deadline.Slaves.SlaveInfoSettings'>
2014-08-28 17:56:31: +126 <type 'weakref'>
2014-08-28 17:56:31: +73 <class 'Deadline.Permissions.Feature'>
2014-08-28 17:56:31: +70 <type 'wrapper_descriptor'>
2014-08-28 17:56:31: +34 <class 'PyQt4.QtGui.QAction'>
2014-08-28 17:56:31: +17 <class 'ThinkboxUI.Commands.QMenuPlusFiles.QMenuPlus'>
2014-08-28 17:56:31: +14 <class 'Deadline.Configuration.ScriptInfo'>
2014-08-28 17:56:31: +14 <class 'DeadlineUI.Commands.ScriptCommands.GeneralScriptQAction'>
2014-08-28 17:56:31: +13 <class 'Deadline.Jobs.Job'>
2014-08-28 17:56:31: +13 <class 'DeadlineUI.Commands.RemoteCommands.RemoteSlaveCommandAfterLastTask'>
2014-08-28 17:56:31: +11 <class 'PyQt4.QtGui.Section'>
2014-08-28 17:56:31: +7 <class 'CLR.CLR Metatype'>
2014-08-28 17:56:31: +7 <type 'builtin_function_or_method'>
2014-08-28 17:56:31: +4 <class 'DeadlineUI.Models.JobListModel.JobListModel'>
2014-08-28 17:56:31: +4 <class 'PyQt4.QtCore.ItemFlags'>
2014-08-28 17:56:31: +4 <class 'PyQt4.QtCore.QString'>
2014-08-28 17:56:31: +4 <class 'PyQt4.QtCore.QTimer'>
2014-08-28 17:56:31: +4 <type 'collections.deque'>
2014-08-28 17:56:31: +3 <class 'ThinkboxUI.Commands.TreeViewCommands.TreeViewCopy'>
2014-08-28 17:56:31: +3 <class 'ThinkboxUI.Commands.TreeViewCommands.TreeViewSelectAll'>
2014-08-28 17:56:31: +3 <type 'instancemethod'>
2014-08-28 17:56:31: +2 <class 'DeadlineUI.Commands.JobCommands.JobBrowseOutputLocationBase'>
2014-08-28 17:56:31: +2 <class 'DeadlineUI.Commands.JobCommands.JobCopyOutputLocationBase'>
2014-08-28 17:56:31: +2 <class 'DeadlineUI.Commands.JobCommands.JobViewRenderOutput'>
2014-08-28 17:56:31: +2 <class 'DeadlineUI.Commands.RemoteCommands.RemoteExecCommand'>
2014-08-28 17:56:31: +2 <class 'DeadlineUI.Commands.RemoteCommands.RemoteRestartSlave'>
2014-08-28 17:56:31: +2 <class 'DeadlineUI.Commands.RemoteCommands.RemoteStartSlave'>
2014-08-28 17:56:31: +2 <class 'DeadlineUI.Commands.RemoteCommands.RemoteStopSlave'>
2014-08-28 17:56:31: +2 <class 'PyQt4.QtGui.ItemType'>
2014-08-28 17:56:31: +2 <class 'PyQt4.QtGui.QWidget'>
2014-08-28 17:56:31: +1 <class 'Deadline.Jobs.Task[]'>
2014-08-28 17:56:31: +1 <class 'Deadline.Launcher.LauncherCommandItem'>
2014-08-28 17:56:31: +1 <class 'Deadline.Slaves.SlaveSettings'>
2014-08-28 17:56:31: +1 <class 'DeadlineUI.Commands.JobCommands.JobArchive'>
2014-08-28 17:56:31: +1 <class 'DeadlineUI.Commands.JobCommands.JobBrowseJobAuxDirectory'>
2014-08-28 17:56:31: +1 <class 'DeadlineUI.Commands.JobCommands.JobComplete'>
2014-08-28 17:56:31: +1 <class 'DeadlineUI.Commands.JobCommands.JobCopyJobAuxFileBase'>
2014-08-28 17:56:31: +1 <class 'DeadlineUI.Commands.JobCommands.JobDelete'>
2014-08-28 17:56:31: +1 <class 'DeadlineUI.Commands.JobCommands.JobFail'>
2014-08-28 17:56:31: +1 <class 'DeadlineUI.Commands.JobCommands.JobListReportDeleteAll'>
2014-08-28 17:56:31: +1 <class 'DeadlineUI.Commands.JobCommands.JobListReportDeleteAllErrors'>
2014-08-28 17:56:31: +1 <class 'DeadlineUI.Commands.JobCommands.JobListReportDeleteAllLogs'>
2014-08-28 17:56:31: +1 <class 'DeadlineUI.Commands.JobCommands.JobListReportDeleteAllRequeues'>
2014-08-28 17:56:31: +1 <class 'DeadlineUI.Commands.JobCommands.JobModifyProperties'>
2014-08-28 17:56:31: +1 <class 'DeadlineUI.Commands.JobCommands.JobModifyTasks'>
2014-08-28 17:56:31: +1 <class 'DeadlineUI.Commands.JobCommands.JobNotifyOnCompletion'>
2014-08-28 17:56:31: +1 <class 'DeadlineUI.Commands.JobCommands.JobReleasePending'>
2014-08-28 17:56:31: +1 <class 'DeadlineUI.Commands.JobCommands.JobRepend'>
2014-08-28 17:56:31: +1 <class 'DeadlineUI.Commands.JobCommands.JobReports'>
2014-08-28 17:56:31: +1 <class 'DeadlineUI.Commands.JobCommands.JobRequeue'>
2014-08-28 17:56:31: +1 <class 'DeadlineUI.Commands.JobCommands.JobResubmitJob'>
2014-08-28 17:56:31: +1 <class 'DeadlineUI.Commands.JobCommands.JobResume'>
2014-08-28 17:56:31: +1 <class 'DeadlineUI.Commands.JobCommands.JobResumeFailed'>
2014-08-28 17:56:31: +1 <class 'DeadlineUI.Commands.JobCommands.JobScanForMissingOutput'>
2014-08-28 17:56:31: +1 <class 'DeadlineUI.Commands.JobCommands.JobSuspend'>
2014-08-28 17:56:31: +1 <class 'DeadlineUI.Commands.JobCommands.JobViewHistoryLog'>
2014-08-28 17:56:31: +1 <class 'DeadlineUI.Commands.JobCommands.MaintenanceJobModifyFrames'>
2014-08-28 17:56:31: +1 <class 'DeadlineUI.Commands.JobCommands.TileJobModifyFrame'>
2014-08-28 17:56:31: +1 <class 'DeadlineUI.Commands.RemoteCommands.RemoteRemoveSlave'>
2014-08-28 17:56:31: +1 <class 'DeadlineUI.Commands.RemoteCommands.RemoteRestartMachine'>
2014-08-28 17:56:31: +1 <class 'DeadlineUI.Commands.RemoteCommands.RemoteShutdownMachine'>
2014-08-28 17:56:31: +1 <class 'DeadlineUI.Commands.RemoteCommands.RemoteStartAllSlave'>
2014-08-28 17:56:31: +1 <class 'DeadlineUI.Commands.RemoteCommands.RemoteStartMachine'>
2014-08-28 17:56:31: +1 <class 'DeadlineUI.Commands.RemoteCommands.RemoteStartNewSlave'>
2014-08-28 17:56:31: +1 <class 'DeadlineUI.Commands.RemoteCommands.RemoteSuspendMachine'>
2014-08-28 17:56:31: +1 <class 'DeadlineUI.Commands.ReportCommands.JobReportDelete'>
2014-08-28 17:56:31: +1 <class 'DeadlineUI.Commands.ReportCommands.JobReportDeleteAll'>
2014-08-28 17:56:31: +1 <class 'DeadlineUI.Commands.ReportCommands.JobReportDeleteAllErrors'>
2014-08-28 17:56:31: +1 <class 'DeadlineUI.Commands.ReportCommands.JobReportDeleteAllLogs'>
2014-08-28 17:56:31: +1 <class 'DeadlineUI.Commands.ReportCommands.JobReportDeleteAllRequeues'>
2014-08-28 17:56:31: +1 <class 'DeadlineUI.Commands.ReportCommands.ReportBlacklistSlave'>
2014-08-28 17:56:31: +1 <class 'DeadlineUI.Commands.ReportCommands.ReportRemoteLog'>
2014-08-28 17:56:31: +1 <class 'DeadlineUI.Commands.ReportCommands.ReportSave'>
2014-08-28 17:56:31: +1 <class 'DeadlineUI.Commands.ReportCommands.ReportUnwhitelistSlave'>
2014-08-28 17:56:31: +1 <class 'DeadlineUI.Commands.SlaveCommands.SlaveDelete'>
2014-08-28 17:56:31: +1 <class 'DeadlineUI.Commands.SlaveCommands.SlaveEnabled'>
2014-08-28 17:56:31: +1 <class 'DeadlineUI.Commands.SlaveCommands.SlaveMarkOffline'>
2014-08-28 17:56:31: +1 <class 'DeadlineUI.Commands.SlaveCommands.SlaveModifySettings'>
2014-08-28 17:56:31: +1 <class 'DeadlineUI.Commands.SlaveCommands.SlaveRemoteLog'>
2014-08-28 17:56:31: +1 <class 'DeadlineUI.Commands.SlaveCommands.SlaveReportDeleteAll'>
2014-08-28 17:56:31: +1 <class 'DeadlineUI.Commands.SlaveCommands.SlaveReports'>
2014-08-28 17:56:31: +1 <class 'DeadlineUI.Commands.SlaveCommands.SlaveViewHistory'>
2014-08-28 17:56:31: +1 <class 'DeadlineUI.Commands.SlaveCommands.SlaveViewJob'>
2014-08-28 17:56:31: +1 <class 'PyQt4.QtCore.QDateTime'>
2014-08-28 17:56:31: +1 <class 'PyQt4.QtGui.QScrollBar'>
2014-08-28 17:56:31: +1 <class 'ThinkboxUI.Models.ListModel.ListItem'>
2014-08-28 17:56:31: +1 <type 'method_descriptor'>
2014-08-28 17:56:31: -1 <class 'PyQt4.QtCore.QByteArray'>
2014-08-28 19:21:16: Python Object Counts [>= 10]:
2014-08-28 19:21:16: 169573 <type 'dict'>
2014-08-28 19:21:16: 39657 <type 'tuple'>
2014-08-28 19:21:16: 22596 <type 'list'>
2014-08-28 19:21:16: 21488 <class 'ThinkboxUI.Models.UpdateModel.UpdateItem'>
2014-08-28 19:21:16: 18579 <class 'Deadline.Slaves.SlaveInfoSettings'>
2014-08-28 19:21:16: 14409 <type 'wrapper_descriptor'>
2014-08-28 19:21:16: 4913 <type 'function'>
2014-08-28 19:21:16: 3805 <type 'weakref'>
2014-08-28 19:21:16: 2008 <type 'builtin_function_or_method'>
2014-08-28 19:21:16: 1926 <class 'Deadline.Jobs.Job'>
2014-08-28 19:21:16: 1679 <type 'getset_descriptor'>
2014-08-28 19:21:16: 1229 <class 'CLR.CLR Metatype'>
2014-08-28 19:21:16: 1076 <type 'PyQt4.QtCore.pyqtWrapperType'>
2014-08-28 19:21:16: 930 <type 'method_descriptor'>
2014-08-28 19:21:16: 662 <class 'Deadline.Reports.Report'>
2014-08-28 19:21:16: 511 <type 'sip.enumtype'>
2014-08-28 19:21:16: 491 <type 'module'>
2014-08-28 19:21:16: 418 <class 'PyQt4.QtCore.Key'>
2014-08-28 19:21:16: 333 <class 'PyQt4.QtGui.QCheckBox'>
2014-08-28 19:21:16: 308 <class 'Deadline.Permissions.Feature'>
2014-08-28 19:21:16: 286 <type 'instancemethod'>
2014-08-28 19:21:16: 263 <type 'property'>
2014-08-28 19:21:16: 219 <type 'type'>
2014-08-28 19:21:16: 207 <class 'Deadline.Jobs.Task'>
2014-08-28 19:21:16: 198 <type 'set'>
2014-08-28 19:21:16: 187 <class 'PyQt4.QtCore.Type'>
2014-08-28 19:21:16: 187 <type 'member_descriptor'>
2014-08-28 19:21:16: 171 <class 'PyQt4.QtGui.QAction'>
2014-08-28 19:21:16: 144 <class 'DeadlineMonitor.Forms.MonitorDockWidget.MonitorMorphWidget'>
2014-08-28 19:21:16: 125 <class 'PyQt4.QtGui.QIcon'>
2014-08-28 19:21:16: 113 <class 'PyQt4.QtGui.StyleHint'>
2014-08-28 19:21:16: 105 <class 'PyQt4.QtCore.WidgetAttribute'>
2014-08-28 19:21:16: 100 <class 'PyQt4.QtCore.QVariant'>
2014-08-28 19:21:16: 98 <class 'Deadline.Importers.JobDetailsEntry'>
2014-08-28 19:21:16: 95 <class 'PyQt4.QtGui.PixelMetric'>
2014-08-28 19:21:16: 71 <class 'PyQt4.QtGui.QColor'>
2014-08-28 19:21:16: 70 <class 'PyQt4.QtGui.StandardPixmap'>
2014-08-28 19:21:16: 66 <class 'PyQt4.QtGui.QVBoxLayout'>
2014-08-28 19:21:16: 66 <class 'PyQt4.QtGui.StandardKey'>
2014-08-28 19:21:16: 66 <class 'PyQt4.QtGui.SubElement'>
2014-08-28 19:21:16: 61 <class 'Deadline.Configuration.ScriptInfo'>
2014-08-28 19:21:16: 58 <class 'PyQt4.QtChart.QPieSlice'>
2014-08-28 19:21:16: 57 <class 'PyQt4.QtGui.PrimitiveElement'>
2014-08-28 19:21:16: 52 <class 'ThinkboxUI.Commands.QMenuPlusFiles.QMenuPlus'>
2014-08-28 19:21:16: 49 <class 'PyQt4.QtGui.ControlElement'>
2014-08-28 19:21:16: 46 <class 'PyQt4.QtGui.StandardButton'>
2014-08-28 19:21:16: 46 <class 'PyQt4.QtGui.SubControl'>
2014-08-28 19:21:16: 45 <class 'DeadlineUI.Commands.ScriptCommands.SubmissionScriptQAction'>
2014-08-28 19:21:16: 44 <type 'classobj'>
2014-08-28 19:21:16: 43 <class 'PyQt4.QtGui.QToolButton'>
2014-08-28 19:21:16: 39 <class 'PyQt4.QtGui.QWidget'>
2014-08-28 19:21:16: 34 <class 'PyQt4.QtGui.GraphicsItemChange'>
2014-08-28 19:21:16: 33 <class 'PyQt4.QtCore.WindowType'>
2014-08-28 19:21:16: 33 <class 'PyQt4.QtGui.CompositionMode'>
2014-08-28 19:21:16: 29 <class 'PyQt4.QtGui.OptionType'>
2014-08-28 19:21:16: 28 <class 'PyQt4.QtGui.QHBoxLayout'>
2014-08-28 19:21:16: 28 <class 'PyQt4.QtGui.QLabel'>
2014-08-28 19:21:16: 28 <class 'PyQt4.QtGui.StateFlag'>
2014-08-28 19:21:16: 26 <class 'PyQt4.QtGui.ContentsType'>
2014-08-28 19:21:16: 25 <class 'PyQt4.QtCore.CursorShape'>
2014-08-28 19:21:16: 25 <class 'PyQt4.QtGui.MoveOperation'>
2014-08-28 19:21:16: 24 <class 'PyQt4.QtCore.QModelIndex'>
2014-08-28 19:21:16: 24 <type 'operator.itemgetter'>
2014-08-28 19:21:16: 23 <class 'PyQt4.QtGui.ColorRole'>
2014-08-28 19:21:16: 20 <class 'PyQt4.QtCore.GlobalColor'>
2014-08-28 19:21:16: 20 <class 'PyQt4.QtGui.ButtonRole'>
2014-08-28 19:21:16: 20 <class 'PyQt4.QtGui.QKeySequence'>
2014-08-28 19:21:16: 19 <class 'PyQt4.QtCore.BrushStyle'>
2014-08-28 19:21:16: 18 <class 'PyQt4.QtCore.ItemDataRole'>
2014-08-28 19:21:16: 18 <class 'abc.ABCMeta'>
2014-08-28 19:21:16: 17 <class 'PyQt4.QtCore.QTimer'>
2014-08-28 19:21:16: 17 <type 'staticmethod'>
2014-08-28 19:21:16: 16 <class 'DeadlineUI.Commands.ScriptCommands.GeneralScriptQAction'>
2014-08-28 19:21:16: 16 <class 'PyQt4.QtCore.QString'>
2014-08-28 19:21:16: 16 <class 'PyQt4.QtGui.GraphicsItemFlag'>
2014-08-28 19:21:16: 16 <type 'classmethod'>
2014-08-28 19:21:16: 16 <type 'frozenset'>
2014-08-28 19:21:16: 16 <type 'instance'>
2014-08-28 19:21:16: 15 <class 'PyQt4.QtCore.InputMethodHint'>
2014-08-28 19:21:16: 15 <class 'PyQt4.QtGui.ControlType'>
2014-08-28 19:21:16: 15 <class 'PyQt4.QtGui.QSplitter'>
2014-08-28 19:21:16: 15 <type 'classmethod_descriptor'>
2014-08-28 19:21:16: 14 <class 'PyQt4.QtCore.ItemFlags'>
2014-08-28 19:21:16: 14 <class 'ThinkboxUI.Controls.DownArrowToolButton.DownArrowToolButton'>
2014-08-28 19:21:16: 14 <type 'collections.deque'>
2014-08-28 19:21:16: 13 <class 'Deadline.LimitGroups.LimitGroup'>
2014-08-28 19:21:16: 13 <class 'DeadlineUI.Commands.RemoteCommands.RemoteSlaveCommandAfterLastTask'>
2014-08-28 19:21:16: 13 <class 'PyQt4.QtCore.AlignmentFlag'>
2014-08-28 19:21:16: 13 <class 'PyQt4.QtCore.QSettings'>
2014-08-28 19:21:16: 13 <class 'abc.abstractproperty'>
2014-08-28 19:21:16: 12 <class 'DeadlineMonitor.Forms.MonitorDockWidget.MonitorDockWidget'>
2014-08-28 19:21:16: 12 <class 'PyQt4.QtChart.QChart'>
2014-08-28 19:21:16: 12 <class 'PyQt4.QtChart.QChartView'>
2014-08-28 19:21:16: 12 <class 'PyQt4.QtChart.QPieSeries'>
2014-08-28 19:21:16: 12 <class 'PyQt4.QtCore.ApplicationAttribute'>
2014-08-28 19:21:16: 12 <class 'PyQt4.QtCore.ImageConversionFlag'>
2014-08-28 19:21:16: 12 <class 'PyQt4.QtGui.QScrollArea'>
2014-08-28 19:21:16: 12 <class 'PyQt4.QtGui.QSpacerItem'>
2014-08-28 19:21:16: 12 <class 'PyQt4.QtGui.QStackedWidget'>
2014-08-28 19:21:16: 12 <class 'PyQt4.QtGui.QTreeView'>
2014-08-28 19:21:16: 12 <class 'PyQt4.QtGui.StyleStrategy'>
2014-08-28 19:21:16: 12 <class 'ThinkboxUI.Controls.ElidedLabel.ElidedLabel'>
2014-08-28 19:21:16: 12 <class 'ThinkboxUI.Controls.IconLineEdit.IconButton'>
2014-08-28 19:21:16: 12 <class 'ThinkboxUI.Controls.IconLineEdit.IconLineEdit'>
2014-08-28 19:21:16: 12 <class 'ThinkboxUI.Controls.KeyPressTreeView.KeyPressTreeView'>
2014-08-28 19:21:16: 11 <class 'DeadlineMonitor.DisplayWidgets.FilterListWidget.FilterListWidget_META'>
2014-08-28 19:21:16: 11 <class 'PyQt4.QtChart.SeriesType'>
2014-08-28 19:21:16: 11 <class 'PyQt4.QtGui.ComplexControl'>
2014-08-28 19:21:16: 11 <class 'PyQt4.QtGui.Section'>
2014-08-28 19:21:16: 11 <class 'PyQt4.QtGui.SelectionFlag'>
2014-08-28 19:21:16: 11 <class 'PyQt4.QtGui.StandardLocation'>
2014-08-28 19:21:16: 10 <class 'PyQt4.QtCore.FormattingOption'>
2014-08-28 19:21:16: 10 <class 'PyQt4.QtCore.MatchFlag'>
2014-08-28 19:21:16: 10 <class 'PyQt4.QtCore.TextFlag'>
2014-08-28 19:21:16: 10 <class 'PyQt4.QtCore.WindowFrameSection'>
2014-08-28 19:21:16: 10 <class 'PyQt4.QtGui.CursorAction'>
2014-08-28 19:21:16: 10 <class 'PyQt4.QtGui.PaintDeviceMetric'>
2014-08-28 19:21:16: [Ommitted 383 other object types]
2014-08-28 19:21:16: Python Object Deltas (since last dump):
2014-08-28 19:21:16: +51495 <type 'dict'>
2014-08-28 19:21:16: +18214 <type 'tuple'>
2014-08-28 19:21:16: +17949 <class 'ThinkboxUI.Models.UpdateModel.UpdateItem'>
2014-08-28 19:21:16: +17947 <type 'list'>
2014-08-28 19:21:16: +17902 <class 'Deadline.Slaves.SlaveInfoSettings'>
2014-08-28 19:21:16: +406 <class 'Deadline.Reports.Report'>
2014-08-28 19:21:16: +28 <class 'Deadline.Jobs.Job'>
2014-08-28 19:21:16: +12 <class 'Deadline.Jobs.Task'>
2014-08-28 19:21:16: +3 <class 'PyQt4.QtGui.Mode'>
2014-08-28 19:21:16: -1 <class 'Deadline.Jobs.Task[]'>
2014-08-28 19:21:16: -1 <class 'DeadlineUI.Commands.JobCommands.JobBrowseOutputLocationBase'>
2014-08-28 19:21:16: -1 <class 'DeadlineUI.Commands.JobCommands.JobCopyOutputLocationBase'>
2014-08-28 19:21:16: -1 <class 'PyQt4.QtGui.QAction'>
2014-08-28 19:21:16: -2 <class 'Deadline.Permissions.Feature'>
2014-08-28 19:21:16: -2 <class 'DeadlineUI.Commands.JobCommands.JobViewRenderOutput'>
2014-08-28 19:21:16: -4 <type 'weakref'>
2014-08-28 19:21:16: -399 <class 'Deadline.Importers.JobDetailsEntry'>
2014-08-28 19:21:16: -399 <class 'PyQt4.QtCore.QVariant'>
2014-08-28 21:26:27: Listener Thread - OnConnect: Listener Socket has been closed.
jgaudet:
Data is still being loaded/kept for panels that aren’t currently showing, as a general rule. We’ve discussed changing this, and we might end up changing it – I’ll definitely bring it up with Ryan again once he’s back.
I wonder if qt sorting the invisible data? While data loading makes sense, updating the gui does not.
We actually tried disabling auto-sorting/filtering for hidden panels, and to our surprise it really didn’t make any noticeable difference.
Courtenay, do you see this behavior if you only have 1 of each panel open? If not, would it be an option for now to pin a few layouts that each have different panels, and then switch between those pinned layouts, rather than having all 14 panels open all the time? You can pin layouts from the View menu, and you can use shortcuts (CTRL+1, CTRL+2, etc) to switch between them.
jgaudet
September 3, 2014, 6:04pm
#12
Hmmm, there definitely seems to be a leak of some kind, related to the Slave Panel(s) specifically.
From the output you provided:
This is basically showing that there was an increase of ~18k slave objects over the course of the last interval between these commands (1.5 hours, judging from the timestamps), which is obviously problematic. The amount of these objects should be on the same order of the amount of Slaves you guys have, and I’m assuming you didn’t suddenly add 18k slaves to your farm. Weird thing is though, I’m not seeing that behaviour here at all… Can you save out your Monitor Layout, and post the .dmlayout here? I’m wondering if there’s something specific with your filters/panel set up that might be causing the Monitor to hold onto these resources, that I don’t have on my local setup.