[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [48409] trunk/blender/source: Added command line option "--debug-jobs"

Sergey Sharybin sergey.vfx at gmail.com
Fri Jun 29 16:32:26 CEST 2012


Revision: 48409
          http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=48409
Author:   nazgul
Date:     2012-06-29 14:32:25 +0000 (Fri, 29 Jun 2012)
Log Message:
-----------
Added command line option "--debug-jobs"

This option enables time profiling of background jobs, namely it's
measuring run time of the job and prints it to the console.

Modified Paths:
--------------
    trunk/blender/source/blender/blenkernel/BKE_global.h
    trunk/blender/source/blender/windowmanager/intern/wm_jobs.c
    trunk/blender/source/creator/creator.c

Modified: trunk/blender/source/blender/blenkernel/BKE_global.h
===================================================================
--- trunk/blender/source/blender/blenkernel/BKE_global.h	2012-06-29 13:55:25 UTC (rev 48408)
+++ trunk/blender/source/blender/blenkernel/BKE_global.h	2012-06-29 14:32:25 UTC (rev 48409)
@@ -119,7 +119,8 @@
 	G_DEBUG_FFMPEG =    (1 << 1),
 	G_DEBUG_PYTHON =    (1 << 2), /* extra python info */
 	G_DEBUG_EVENTS =    (1 << 3), /* input/window/screen events */
-	G_DEBUG_WM =        (1 << 4)  /* operator, undo */
+	G_DEBUG_WM =        (1 << 4), /* operator, undo */
+	G_DEBUG_JOBS =      (1 << 5)  /* jobs time profiling */
 };
 
 #define G_DEBUG_ALL  (G_DEBUG | G_DEBUG_FFMPEG | G_DEBUG_PYTHON | G_DEBUG_EVENTS | G_DEBUG_WM)

Modified: trunk/blender/source/blender/windowmanager/intern/wm_jobs.c
===================================================================
--- trunk/blender/source/blender/windowmanager/intern/wm_jobs.c	2012-06-29 13:55:25 UTC (rev 48408)
+++ trunk/blender/source/blender/windowmanager/intern/wm_jobs.c	2012-06-29 14:32:25 UTC (rev 48409)
@@ -54,8 +54,8 @@
 #include "wm_event_types.h"
 #include "wm.h"
 
+#include "PIL_time.h"
 
-
 /* ********************** Threaded Jobs Manager ****************************** */
 
 /*
@@ -127,6 +127,7 @@
 	/* we use BLI_threads api, but per job only 1 thread runs */
 	ListBase threads;
 
+	double start_time;
 };
 
 /* finds:
@@ -343,6 +344,9 @@
 			/* restarted job has timer already */
 			if (steve->wt == NULL)
 				steve->wt = WM_event_add_timer(wm, steve->win, TIMERJOBS, steve->timestep);
+
+			if (G.debug & G_DEBUG_JOBS)
+				steve->start_time = PIL_check_seconds_timer();
 		}
 		else printf("job fails, not initialized\n");
 	}
@@ -465,6 +469,11 @@
 					// if (steve->stop) printf("job ready but stopped %s\n", steve->name);
 					// else printf("job finished %s\n", steve->name);
 
+					if (G.debug & G_DEBUG_JOBS) {
+						printf("Job '%s' finished in %f seconds\n", steve->name,
+						       PIL_check_seconds_timer() - steve->start_time);
+					}
+
 					steve->running = 0;
 					BLI_end_threads(&steve->threads);
 					

Modified: trunk/blender/source/creator/creator.c
===================================================================
--- trunk/blender/source/creator/creator.c	2012-06-29 13:55:25 UTC (rev 48408)
+++ trunk/blender/source/creator/creator.c	2012-06-29 14:32:25 UTC (rev 48409)
@@ -1144,6 +1144,7 @@
 #endif
 
 	BLI_argsAdd(ba, 1, NULL, "--debug-value", "<value>\n\tSet debug value of <value> on startup\n", set_debug_value, NULL);
+	BLI_argsAdd(ba, 1, NULL, "--debug-jobs",  "\n\tEnable time profiling for background jobs.", debug_mode_generic, (void *)G_DEBUG_JOBS);
 
 	BLI_argsAdd(ba, 1, NULL, "--verbose", "<verbose>\n\tSet logging verbosity level.", set_verbosity, NULL);
 




More information about the Bf-blender-cvs mailing list