Re: Efficiency question
- From: John Cupitt ng-london org uk
- To: thesurprises1 attbi com
- Cc: gtk-list gnome org
- Subject: Re: Efficiency question
- Date: Tue, 22 Oct 2002 13:00:30 +0100
The Surprises wrote:
> I am developing a gtk app that uses motion events to capture mouse
> pointer location and continuously update a gtk label. I have also
> implemented routines to drag various gnome canvas items around a canvas.
> I have found that calling the gtk_label_set_text routine to update the
> label significantly degrades performance of the app. There is a serious
> lag during fast canvas item drag that disappears completely when I
> comment out the gtk_label_set_text call. Without this line, the items
> drag completely smooth even at full screen zoom. With the line, I get
> smooth scrolling up to a certain app size, any larger causes slowdown.
>
> The label, along with the canvas, is packed into a table. My thinking
> is that the label changing text is causing all the widgets within the
> table to trigger a size_allocate or something. The bigger the app, the
> more expensive the size allocate. I did notice that the label widget
> changes size depending on the text size. I played around with various
> packing options (x expand, fill, etc, etc), but couldn't get any
> improvement. Any ideas on how to fix this?
Hi, as an experiment you could try gtk_widget_set_usize(100,100) on the
label. This would give it a useless but fixed size ... if your app still
runs slowly, you'll be able to rule out resizing problems.
Another solution would be to add a timer to your motion callback, and
limit label updates to no more than (eg.) 5 per second. That should be
fast enough for the user and it'll take the CPU load right down.
John
==========================================================
Madame de Pompadour
Images of a Mistress
16 October 2002 - 12 January 2003
For information and tickets:
http://www.nationalgallery.org.uk/exhibitions/pompadour/default.htm
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]