Re: (severe) performance issues



John,

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 



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]