Mon Mar 28 11:09:02 2005  Soeren Sandmann  <sandmann@redhat.com>

	* TODO: updates
This commit is contained in:
Soeren Sandmann
2005-03-28 16:10:01 +00:00
committed by Søren Sandmann Pedersen
parent 398603a85d
commit c2dc2c3680
5 changed files with 118 additions and 63 deletions

View File

@ -1,3 +1,7 @@
Mon Mar 28 11:09:02 2005 Soeren Sandmann <sandmann@redhat.com>
* TODO: updates
Sat Mar 26 19:26:52 2005 Søren Sandmann <sandmann@redhat.com>
* sysprof.c: Show the right number of samples afte Open; remove

86
TODO
View File

@ -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:

View File

@ -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)

View File

@ -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 */

View File

@ -17,6 +17,7 @@
<property name="skip_pager_hint">False</property>
<property name="type_hint">GDK_WINDOW_TYPE_HINT_NORMAL</property>
<property name="gravity">GDK_GRAVITY_NORTH_WEST</property>
<property name="focus_on_map">True</property>
<child>
<widget class="GtkVBox" id="main_vbox">
@ -46,7 +47,7 @@
<accelerator key="o" modifiers="GDK_CONTROL_MASK" signal="activate"/>
<child internal-child="image">
<widget class="GtkImage" id="image28">
<widget class="GtkImage" id="image68">
<property name="visible">True</property>
<property name="stock">gtk-open</property>
<property name="icon_size">1</property>
@ -68,7 +69,7 @@
<accelerator key="s" modifiers="GDK_CONTROL_MASK | GDK_SHIFT_MASK" signal="activate"/>
<child internal-child="image">
<widget class="GtkImage" id="image29">
<widget class="GtkImage" id="image69">
<property name="visible">True</property>
<property name="stock">gtk-save-as</property>
<property name="icon_size">1</property>
@ -88,11 +89,24 @@
</child>
<child>
<widget class="GtkImageMenuItem" id="quit_item">
<widget class="GtkImageMenuItem" id="quit">
<property name="visible">True</property>
<property name="label">gtk-quit</property>
<property name="use_stock">True</property>
<signal name="activate" handler="on_quit1_activate" last_modification_time="Wed, 31 Dec 2003 20:44:40 GMT"/>
<property name="label" translatable="yes">_Quit</property>
<property name="use_underline">True</property>
<signal name="activate" handler="on_quit_activate" last_modification_time="Wed, 31 Dec 2003 20:44:40 GMT"/>
<accelerator key="q" modifiers="GDK_CONTROL_MASK" signal="activate"/>
<child internal-child="image">
<widget class="GtkImage" id="image70">
<property name="visible">True</property>
<property name="stock">gtk-quit</property>
<property name="icon_size">1</property>
<property name="xalign">0.5</property>
<property name="yalign">0.5</property>
<property name="xpad">0</property>
<property name="ypad">0</property>
</widget>
</child>
</widget>
</child>
</widget>
@ -117,7 +131,7 @@
<signal name="activate" handler="on_start1_activate" last_modification_time="Thu, 04 Nov 2004 18:51:54 GMT"/>
<child internal-child="image">
<widget class="GtkImage" id="image30">
<widget class="GtkImage" id="image71">
<property name="visible">True</property>
<property name="stock">gtk-media-play</property>
<property name="icon_size">1</property>
@ -138,7 +152,7 @@
<signal name="activate" handler="on_profile1_activate" last_modification_time="Thu, 04 Nov 2004 18:51:54 GMT"/>
<child internal-child="image">
<widget class="GtkImage" id="image31">
<widget class="GtkImage" id="image72">
<property name="visible">True</property>
<property name="stock">gtk-justify-left</property>
<property name="icon_size">1</property>
@ -159,7 +173,7 @@
<signal name="activate" handler="on_reset_item_activate" last_modification_time="Fri, 05 Nov 2004 15:34:30 GMT"/>
<child internal-child="image">
<widget class="GtkImage" id="image32">
<widget class="GtkImage" id="image73">
<property name="visible">True</property>
<property name="stock">gtk-clear</property>
<property name="icon_size">1</property>
@ -186,11 +200,23 @@
<widget class="GtkMenu" id="menuitem4_menu">
<child>
<widget class="GtkImageMenuItem" id="about_item">
<widget class="GtkImageMenuItem" id="about">
<property name="visible">True</property>
<property name="label">gtk-about</property>
<property name="use_stock">True</property>
<signal name="activate" handler="on_about1_activate" last_modification_time="Wed, 31 Dec 2003 20:44:40 GMT"/>
<property name="label" translatable="yes">_About</property>
<property name="use_underline">True</property>
<signal name="activate" handler="on_about_activate" last_modification_time="Wed, 31 Dec 2003 20:44:40 GMT"/>
<child internal-child="image">
<widget class="GtkImage" id="image74">
<property name="visible">True</property>
<property name="stock">gtk-about</property>
<property name="icon_size">1</property>
<property name="xalign">0.5</property>
<property name="yalign">0.5</property>
<property name="xpad">0</property>
<property name="ypad">0</property>
</widget>
</child>
</widget>
</child>
</widget>
@ -206,11 +232,25 @@
</child>
<child>
<widget class="GtkHSeparator" id="hseparator1">
<widget class="GtkAlignment" id="alignment1">
<property name="visible">True</property>
<property name="xalign">0.5</property>
<property name="yalign">0.5</property>
<property name="xscale">1</property>
<property name="yscale">1</property>
<property name="top_padding">0</property>
<property name="bottom_padding">3</property>
<property name="left_padding">3</property>
<property name="right_padding">3</property>
<child>
<widget class="GtkHSeparator" id="hseparator1">
<property name="visible">True</property>
</widget>
</child>
</widget>
<packing>
<property name="padding">2</property>
<property name="padding">0</property>
<property name="expand">False</property>
<property name="fill">True</property>
</packing>
@ -334,7 +374,7 @@
</child>
</widget>
<packing>
<property name="padding">0</property>
<property name="padding">3</property>
<property name="expand">True</property>
<property name="fill">True</property>
</packing>
@ -368,6 +408,10 @@
<property name="yalign">0.5</property>
<property name="xpad">6</property>
<property name="ypad">0</property>
<property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
<property name="width_chars">-1</property>
<property name="single_line_mode">False</property>
<property name="angle">0</property>
</widget>
</child>
</widget>
@ -378,7 +422,7 @@
</child>
</widget>
<packing>
<property name="padding">0</property>
<property name="padding">3</property>
<property name="expand">False</property>
<property name="fill">True</property>
</packing>
@ -425,6 +469,9 @@
<property name="rules_hint">True</property>
<property name="reorderable">False</property>
<property name="enable_search">True</property>
<property name="fixed_height_mode">False</property>
<property name="hover_selection">False</property>
<property name="hover_expand">False</property>
</widget>
</child>
</widget>
@ -451,6 +498,9 @@
<property name="rules_hint">True</property>
<property name="reorderable">False</property>
<property name="enable_search">True</property>
<property name="fixed_height_mode">False</property>
<property name="hover_selection">False</property>
<property name="hover_expand">False</property>
</widget>
</child>
</widget>
@ -483,6 +533,9 @@
<property name="rules_hint">True</property>
<property name="reorderable">False</property>
<property name="enable_search">True</property>
<property name="fixed_height_mode">False</property>
<property name="hover_selection">False</property>
<property name="hover_expand">False</property>
</widget>
</child>
</widget>