From 597433bc874ff2cf5cb9f9de4e053db47837e042 Mon Sep 17 00:00:00 2001 From: Carlos Garcia Campos Date: Sun, 27 Jul 2008 15:42:03 +0000 Subject: Add a profile mode available when debug is enabled. Add profilers in 2008-07-27 Carlos Garcia Campos * libdocument/ev-debug.[ch]: (ev_profiler_start), (ev_profiler_stop): * shell/ev-jobs.c: (ev_job_finished), (ev_job_links_run), (notify_page_ready), (ev_job_render_run), (ev_job_thumbnail_run), (ev_job_fonts_run), (ev_job_load_run), (ev_job_save_run), (ev_job_print_run): * shell/main.c: (main): Add a profile mode available when debug is enabled. Add profilers in ev-jobs. svn path=/trunk/; revision=3086 --- (limited to 'shell') diff --git a/shell/ev-jobs.c b/shell/ev-jobs.c index af6ead0..196bad6 100644 --- a/shell/ev-jobs.c +++ b/shell/ev-jobs.c @@ -248,10 +248,11 @@ ev_job_print_class_init (EvJobPrintClass *class) void ev_job_finished (EvJob *job) { - ev_debug_message (DEBUG_JOBS, NULL); + ev_debug_message (DEBUG_JOBS, EV_GET_TYPE_NAME (job)); + ev_profiler_stop (EV_PROFILE_JOBS, "%s (%p)", EV_GET_TYPE_NAME (job), job); g_return_if_fail (EV_IS_JOB (job)); - + g_signal_emit (job, job_signals[FINISHED], 0); } @@ -272,6 +273,7 @@ void ev_job_links_run (EvJobLinks *job) { ev_debug_message (DEBUG_JOBS, NULL); + ev_profiler_start (EV_PROFILE_JOBS, "%s (%p)", EV_GET_TYPE_NAME (job), job); g_return_if_fail (EV_IS_JOB_LINKS (job)); @@ -345,6 +347,7 @@ static gboolean notify_page_ready (EvJobRender *job) { ev_debug_message (DEBUG_JOBS, "%d", job->ev_page->index); + ev_profiler_stop (EV_PROFILE_JOBS, "Rendering page %d", job->ev_page->index); g_signal_emit (job, job_render_signals[PAGE_READY], 0); @@ -369,6 +372,7 @@ ev_job_render_run (EvJobRender *job) g_return_if_fail (EV_IS_JOB_RENDER (job)); ev_debug_message (DEBUG_JOBS, "page: %d", job->page); + ev_profiler_start (EV_PROFILE_JOBS, "%s (%p)", EV_GET_TYPE_NAME (job), job); ev_document_doc_mutex_lock (); @@ -380,6 +384,8 @@ ev_job_render_run (EvJobRender *job) G_CALLBACK (render_finished_cb), job); } else { EvRenderContext *rc; + + ev_profiler_start (EV_PROFILE_JOBS, "Rendering page %d", job->page); ev_document_fc_mutex_lock (); @@ -456,6 +462,7 @@ ev_job_thumbnail_run (EvJobThumbnail *job) EvPage *page; ev_debug_message (DEBUG_JOBS, "%d", job->page); + ev_profiler_start (EV_PROFILE_JOBS, "%s (%p)", EV_GET_TYPE_NAME (job), job); g_return_if_fail (EV_IS_JOB_THUMBNAIL (job)); @@ -498,6 +505,7 @@ ev_job_fonts_run (EvJobFonts *job) EvDocumentFonts *fonts; ev_debug_message (DEBUG_JOBS, NULL); + ev_profiler_start (EV_PROFILE_JOBS, "%s (%p)", EV_GET_TYPE_NAME (job), job); g_return_if_fail (EV_IS_JOB_FONTS (job)); @@ -595,6 +603,7 @@ ev_job_load_run (EvJobLoad *job) g_return_if_fail (EV_IS_JOB_LOAD (job)); ev_debug_message (DEBUG_JOBS, "%s", job->uri); + ev_profiler_start (EV_PROFILE_JOBS, "%s (%p)", EV_GET_TYPE_NAME (job), job); if (job->error) { g_error_free (job->error); @@ -685,6 +694,7 @@ ev_job_save_run (EvJobSave *job) gchar *local_uri; ev_debug_message (DEBUG_JOBS, "uri: %s, document_uri: %s", job->uri, job->document_uri); + ev_profiler_start (EV_PROFILE_JOBS, "%s (%p)", EV_GET_TYPE_NAME (job), job); filename = ev_tmp_filename ("saveacopy"); tmp_filename = g_strdup_printf ("%s.XXXXXX", filename); @@ -940,6 +950,7 @@ ev_job_print_run (EvJobPrint *job) g_return_if_fail (EV_IS_JOB_PRINT (job)); ev_debug_message (DEBUG_JOBS, NULL); + ev_profiler_start (EV_PROFILE_JOBS, "%s (%p)", EV_GET_TYPE_NAME (job), job); if (job->temp_file) g_free (job->temp_file); diff --git a/shell/main.c b/shell/main.c index 04aa5ea..f230ea8 100644 --- a/shell/main.c +++ b/shell/main.c @@ -418,6 +418,8 @@ main (int argc, char *argv[]) ev_backends_manager_shutdown (); + ev_debug_shutdown (); + #if WITH_GNOME g_object_unref (program); #endif -- cgit v0.9.1