Re: (severe) performance issues
- From: "David J. Andruczyk" <djandruczyk yahoo com>
- To: Bobby Jack <bobbykjack yahoo co uk>, jcupitt gmail com
- Cc: gtk-list gnome org
- Subject: Re: (severe) performance issues
- Date: Tue, 3 Apr 2007 06:21:37 -0700 (PDT)
In my case, my display is NOT so simple. my label is
packed into an hbox (with EXPAND) in the middle of
another fixed (non updating) label, and a progress bar
(which is part of a size group to keep the pbars all a
consistent size). Multiple instances of these hbox's
are packed into a table.
http://megatunix.sourceforge.net/screenshots/images/runtime-display-tab.png
--- Bobby Jack <bobbykjack yahoo co uk> wrote:
>
>
> Can you include some details as to how you gathered
> these metrics? I'm seeing very different results
> from
> your test program, although I'm just eyeballing top
> so
> I'd like to use whatever method you did.
>
> - Bobby
>
> --- jcupitt gmail com wrote:
>
> > Hi David,
> >
> > On 3/26/07, David J. Andruczyk
> > <djandruczyk yahoo com> wrote:
> > > I would NOT expect updating approx 10 labels
> > perhaps 5-10 times per
> > > second (ie. when data chages) on a 1.8Ghz
> machine
> > be so cpu hungry.
> >
> > I made a tiny test program. This updates 50 labels
> > at 100Hz with less
> > than 1% CPU on my machine.
> >
> > --------------
> > /* compile with
> > * gcc -Wall try16.c `pkg-config gtk+-2.0
> > --cflags --libs`
> > */
> >
> > #include <gtk/gtk.h>
> > #include <stdlib.h>
> >
> > const int NUM_LABELS = 50;
> > const int FPS = 100;
> >
> > gboolean
> > update_labels (GtkWidget * label[])
> > {
> > int i;
> >
> > for (i = 0; i < NUM_LABELS; i++)
> > {
> > char buf[256];
> >
> > snprintf (buf, 256, "%d", rand ());
> > gtk_label_set_text (GTK_LABEL (label[i]),
> > buf);
> > }
> >
> > return TRUE;
> > }
> >
> > int
> > main (int argc, char **argv)
> > {
> > GtkWidget *label[NUM_LABELS];
> > GtkWidget *win, *box;
> > int i;
> >
> > gtk_init (&argc, &argv);
> > win = gtk_window_new (GTK_WINDOW_TOPLEVEL);
> > g_signal_connect (win, "destroy", G_CALLBACK
> > (gtk_main_quit), NULL);
> >
> > box = gtk_vbox_new (FALSE, 0);
> > gtk_container_add (GTK_CONTAINER (win), box);
> >
> > for (i = 0; i < NUM_LABELS; i++)
> > {
> > label[i] = gtk_label_new (NULL);
> > gtk_box_pack_start (GTK_BOX (box), label[i],
> > TRUE, TRUE, 0);
> > }
> >
> > g_timeout_add (1000 / FPS, (GSourceFunc)
> > update_labels, label);
> >
> > gtk_widget_show_all (win);
> >
> > gtk_main ();
> >
> > return 0;
> > }
> > -------------
> >
> > I have Dapper still on my machine (gtk 2.8, amd64
> > 2.7 GHz) which might
> > make some difference I guess. Though I think Pango
> > has actually sped
> > up in 2.10.
> >
> > I wonder if another reason might be resizing?
> > Setting a label's text
> > can cause the label to change size, which might be
> > forcing some
> > (large?) chunk of your interface to resize too.
> You
> > could try using
> > gtk_widget_set_size_request() on your labels to
> make
> > them a fixed
> > size.
> >
> > John
> > _______________________________________________
> > gtk-list mailing list
> > gtk-list gnome org
> > http://mail.gnome.org/mailman/listinfo/gtk-list
> >
>
>
>
>
>
____________________________________________________________________________________
> Don't pick lemons.
> See all the new 2007 cars at Yahoo! Autos.
> http://autos.yahoo.com/new_cars.html
>
-- David J. Andruczyk
____________________________________________________________________________________
It's here! Your new message!
Get new email alerts with the free Yahoo! Toolbar.
http://tools.search.yahoo.com/toolbar/features/mail/
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]