From c2dc2c368053c7de04d9fd6054bd26dba682fa43 Mon Sep 17 00:00:00 2001 From: Soeren Sandmann Date: Mon, 28 Mar 2005 16:10:01 +0000 Subject: [PATCH] updates Mon Mar 28 11:09:02 2005 Soeren Sandmann * TODO: updates --- ChangeLog | 4 +++ TODO | 86 ++++++++++++++++++++++++-------------------------- profile.c | 1 + sysprof.c | 3 +- sysprof.glade | 87 +++++++++++++++++++++++++++++++++++++++++---------- 5 files changed, 118 insertions(+), 63 deletions(-) diff --git a/ChangeLog b/ChangeLog index 101fee91..f8f9a1d6 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,7 @@ +Mon Mar 28 11:09:02 2005 Soeren Sandmann + + * TODO: updates + Sat Mar 26 19:26:52 2005 Søren Sandmann * sysprof.c: Show the right number of samples afte Open; remove diff --git a/TODO b/TODO index 16d20757..6c5ac584 100644 --- a/TODO +++ b/TODO @@ -1,39 +1,27 @@ -- Get this TODO file more organized - -- Figure out what's needed before 1.0 - -- Consider what it would take to take stacktraces of other languages - - - perl, - - python - - java - - bash - -- Add support for line numbers within functions - -- Consider adding KDE-style nested callgraph view +Before 1.0: +- grep FIXME +- Need to make "make install" work (how do you know where to install + kernel modules?) - Find out what distributions it actually works on - -- Find out how to hack around gtk+ bug causing multiple double clicks - to get eaten. - + (ask for sucess stories in 0.9.x releases) - hook up about box - - Need an icon - - Add busy cursors, - - when you hit "Profile" - when you click something in the main list and we don't respond within 50ms (or perhaps when we expect to not be able to do so (can we know the size in advance?)) - -- Need to make "make install" work (how do you know where to install - kernel modules?) - - Sould just install the kernel module if it running as root, pop up - a dialog if not. + a dialog if not. Note we must be able to start without module now, since + it is useful to just load profiles from disk. +- hook up menu items view/start etc (or possibly get rid of them or move + them) +- give profiles on the command line +- autoconfuscate? +- .desktop file + +Before 1.2: - Reorganise stackstash and profile @@ -54,24 +42,19 @@ - Send each stack trace to the profile module, along with presentation objects - -- hook up menu items view/start etc (or possibly get rid of them or move - them) - +- Charge 'self' properly to processes that don't get any stack trace at all + (probably we get that for free with stackstash reorganisation) +- Consider adding KDE-style nested callgraph view +- Add support for line numbers within functions - consider caching [filename => bin_file] - Have kernel module report the file the address was found in Should avoid a lot of potential broken/raciness with dlopen etc. - -- grep FIXME - -- hide internal stuff in ProfileDescendant - +- Make things faster + - Can I get it to profile itself? + - speedprof seems to report that lots of time is spent in + stack_stash_foreach() and also in generate_key() - add an 'everything' object. It is really needed for a lot of things - -- kernel module should put process to sleep before sampling. Should get us - more accurate data - - make profile.c more agnostic to processes and functions etc. Ideally it should just take a set of stack traces containing "presentation objects" and do something sensible with it. @@ -81,18 +64,31 @@ dump the data to a network socket. Should be able to react to eg. SIGUSR1 by dumping the data. -- Port to GtkAction +- hide internal stuff in ProfileDescendant -- Charge 'self' properly to processes that don't get any stack trace at all +- kernel module should put process to sleep before sampling. Should get us + more accurate data + + +Later: + +- Find out how to hack around gtk+ bug causing multiple double clicks + to get eaten. + +- Figure out what a 'disk profiler' is. + +- Consider what it would take to take stacktraces of other languages + + - perl, + - python + - java + - bash - figure out a way to deal with both disk and CPU. Need to make sure that things that are UNINTERRUPTIBLE while there are RUNNING tasks is not consider bad. -- Make things faster - - Can I get it to profile itself? - - speedprof seems to report that lots of time is spent in - stack_stash_foreach() and also in generate_key() + DONE: diff --git a/profile.c b/profile.c index 9958b3d5..38ac85a2 100644 --- a/profile.c +++ b/profile.c @@ -549,6 +549,7 @@ add_trace_to_tree (ProfileDescendant **tree, GList *trace, guint size) { ProfileDescendant *seen_tree_node; + /* Have we seen this object further up the tree? */ seen_tree_node = g_hash_table_lookup (seen_objects, node->object); if (seen_tree_node) diff --git a/sysprof.c b/sysprof.c index 30ab326a..05b261e2 100644 --- a/sysprof.c +++ b/sysprof.c @@ -1020,6 +1020,7 @@ set_shadows (GladeXML *xml) "{ " " GtkToolbar::shadow_type = none " " GtkMenuBar::shadow_type = none " + " GtkMenuBar::internal_padding = 2 " "} " "widget \"*toolbar\" style : rc \"blah\"\n" "widget \"*menubar\" style : rc \"blah\"\n" @@ -1067,7 +1068,7 @@ build_gui (Application *app) G_CALLBACK (on_save_as_clicked), app); /* quit */ - g_signal_connect (G_OBJECT (glade_xml_get_widget (xml, "quit_item")), "activate", + g_signal_connect (G_OBJECT (glade_xml_get_widget (xml, "quit")), "activate", G_CALLBACK (on_delete), NULL); /* Tool items */ diff --git a/sysprof.glade b/sysprof.glade index 8c62b886..2155e4b5 100644 --- a/sysprof.glade +++ b/sysprof.glade @@ -17,6 +17,7 @@ False GDK_WINDOW_TYPE_HINT_NORMAL GDK_GRAVITY_NORTH_WEST + True @@ -46,7 +47,7 @@ - + True gtk-open 1 @@ -68,7 +69,7 @@ - + True gtk-save-as 1 @@ -88,11 +89,24 @@ - + True - gtk-quit - True - + _Quit + True + + + + + + True + gtk-quit + 1 + 0.5 + 0.5 + 0 + 0 + + @@ -117,7 +131,7 @@ - + True gtk-media-play 1 @@ -138,7 +152,7 @@ - + True gtk-justify-left 1 @@ -159,7 +173,7 @@ - + True gtk-clear 1 @@ -186,11 +200,23 @@ - + True - gtk-about - True - + _About + True + + + + + True + gtk-about + 1 + 0.5 + 0.5 + 0 + 0 + + @@ -206,11 +232,25 @@ - + True + 0.5 + 0.5 + 1 + 1 + 0 + 3 + 3 + 3 + + + + True + + - 2 + 0 False True @@ -334,7 +374,7 @@ - 0 + 3 True True @@ -368,6 +408,10 @@ 0.5 6 0 + PANGO_ELLIPSIZE_NONE + -1 + False + 0 @@ -378,7 +422,7 @@ - 0 + 3 False True @@ -425,6 +469,9 @@ True False True + False + False + False @@ -451,6 +498,9 @@ True False True + False + False + False @@ -483,6 +533,9 @@ True False True + False + False + False