[mythtv] scheduler: "The Nanny" - tipping point into madness

Bruce Markey bjm at lvcm.com
Tue Apr 13 16:24:17 EDT 2004


David Engel wrote:
> On Tue, Apr 13, 2004 at 01:21:25PM -0500, Robert Kulagowski wrote:
> 
>>Ran mythfilldatabase, pulled one day of data.  9 showings of "The Nanny" 
>>are in there.  Added TN through mythweb.
>>2004-04-13 10:09:36 Scheduled 278 items in 2.14647 seconds.
>>2004-04-13 10:30:16 Scheduled 286 items in 5.67061 seconds.
>>2004-04-13 11:00:07 Scheduled 286 items in 7.68143 seconds.
>>2004-04-13 13:00:10 Scheduled 286 items in 9.1703 seconds.
>>
>>Each iteration through the scheduler is taking longer, even though the 
>>number of programs being scheduled hasn't changed.
>>
>>What else can I do?  I'll check what happens if another many-times-a-day 
> 
> 
> Please sprinkle some VERBOSE's in FillRecordLists so we can get an
> idea of where most of the time is going.

Run this with "-v schedule".

--  bjm
-------------- next part --------------
Index: programs/mythbackend/scheduler.cpp
===================================================================
RCS file: /var/lib/mythcvs/mythtv/programs/mythbackend/scheduler.cpp,v
retrieving revision 1.96
diff -u -r1.96 scheduler.cpp
--- programs/mythbackend/scheduler.cpp	13 Apr 2004 17:25:10 -0000	1.96
+++ programs/mythbackend/scheduler.cpp	13 Apr 2004 20:19:08 -0000
@@ -213,26 +213,36 @@
     schedMoveHigher = (bool)gContext->GetNumSetting("SchedMoveHigher");
     schedTime = QDateTime::currentDateTime();
 
+    VERBOSE(VB_SCHEDULE, "PruneOldRecords...");
     PruneOldRecords();
+    VERBOSE(VB_SCHEDULE, "AddNewRecords...");
     AddNewRecords();
 
+    VERBOSE(VB_SCHEDULE, "Sort by priority...");
     reclist.sort(comp_priority);
 
+    VERBOSE(VB_SCHEDULE, "BuildListMaps...");
     BuildListMaps();
 
+    VERBOSE(VB_SCHEDULE, "SchedNewRecords...");
     SchedNewRecords();
 
     if (schedMoveHigher)
     {
+        VERBOSE(VB_SCHEDULE, "Sort retrylist...");
         retrylist.sort(comp_retry);
+        VERBOSE(VB_SCHEDULE, "MoveHigherRecords...");
         MoveHigherRecords();
         retrylist.clear();
     }
 
+    VERBOSE(VB_SCHEDULE, "ClearListMaps...");
     ClearListMaps();
 
+    VERBOSE(VB_SCHEDULE, "Sort by time...");
     reclist.sort(comp_recstart);
 
+    VERBOSE(VB_SCHEDULE, "PruneRedundants...");
     PruneRedundants();
 
     return hasconflicts;


More information about the mythtv-dev mailing list