[Gimp-developer] Why is GIMP 1.3.x user interface much slower than 1.2.x?

2002-04-24 Thread Raphaël Quinet

This is something that has been bothering me for a while, and maybe I am
not the only one who has noticed this.  I have compiled the CVS HEAD
version and the 1.2.3 version on the same old machine (a Pentium 200)
and the CVS version is significantly slower than the 1.2.x version.  Of
course, there is a lot of debugging code in 1.3.x, but I am surprised
that the differences are so significant on that machine.

Some simple operations such as accessing the menus (both the pop-up menus
and the menus from the toolbox), refreshing the toolbox or refreshing the
contents of the docks take approximatively 5 to 6 times longer than with
the old 1.2.3 version.  The delays are significant enough to disturb the
normal flow of operations (at least for me).

Does anybody know what could be the source of these delays?  Is this due
to the GIMP itself (debugging code, new user interface) or is this due to
the fact that the CVS version uses GTK+ 2.0 instead of GTK+ 1.2.x?

-Raphaël
___
Gimp-developer mailing list
[EMAIL PROTECTED]
http://lists.xcf.berkeley.edu/mailman/listinfo/gimp-developer



Re: [Gimp-developer] Why is GIMP 1.3.x user interface much slower than 1.2.x?

2002-04-24 Thread Sven Neumann

Hi,

RaphaXl Quinet <[EMAIL PROTECTED]> writes:

> This is something that has been bothering me for a while, and maybe I am
> not the only one who has noticed this.  I have compiled the CVS HEAD
> version and the 1.2.3 version on the same old machine (a Pentium 200)
> and the CVS version is significantly slower than the 1.2.x version.  Of
> course, there is a lot of debugging code in 1.3.x, but I am surprised
> that the differences are so significant on that machine.
> 
> Some simple operations such as accessing the menus (both the pop-up menus
> and the menus from the toolbox), refreshing the toolbox or refreshing the
> contents of the docks take approximatively 5 to 6 times longer than with
> the old 1.2.3 version.  The delays are significant enough to disturb the
> normal flow of operations (at least for me).
> 
> Does anybody know what could be the source of these delays?  Is this due
> to the GIMP itself (debugging code, new user interface) or is this due to
> the fact that the CVS version uses GTK+ 2.0 instead of GTK+ 1.2.x?

Hard to say. It's been said that GTK+-2.0 is substantially slower than
1.2. I don't notice much difference here but then my machine is
probably fast enough. Have you played with testgtk; do you notice the
same problems there?

Of course GIMP-1.3 has lots of room for improvement. One thing that is
on our TODO is to change GimpPreview so it can use GdkPixbuf directly.
We'd avoid the conversion to TempBuf and could use the (optionally 
hardware accelerated) pixbuf render routines.

Since we use a model-view concept in GIMP-1.3, we use a lot of signal
emissions to synchronize the UI with the core data structs. You could
get a noticeable speedup by compiling glib without debugging (default
since 2.0) and make sure that app/core/gimpmarshal.[ch] is generated
using a recent version of glib-genmarshal. Newer versions access the
GValues used in signal emissions directly instead of going thru
extensive type checks. Basically you should have some code like this
in app/core/gimpmarshal.c:

#ifdef G_ENABLE_DEBUG
#define g_marshal_value_peek_boolean(v)  g_value_get_boolean (v)
#else
#define g_marshal_value_peek_boolean(v)  (v)->data[0].v_int
#endif

For further optimizations we should do some profiling first since it
doesn't make sense to remove useful debugging code unless it shows up
significantly in the profile.


Salut, Sven
___
Gimp-developer mailing list
[EMAIL PROTECTED]
http://lists.xcf.berkeley.edu/mailman/listinfo/gimp-developer



Re: [Gimp-developer] Why is GIMP 1.3.x user interface much slower than 1.2.x?

2002-04-24 Thread Raphaël Quinet

On 24 Apr 2002 15:26:05 +0200, "Sven Neumann" <[EMAIL PROTECTED]> wrote:
> Raphaël Quinet <[EMAIL PROTECTED]> writes:
> > Does anybody know what could be the source of these delays?  Is this due
> > to the GIMP itself (debugging code, new user interface) or is this due to
> > the fact that the CVS version uses GTK+ 2.0 instead of GTK+ 1.2.x?
> 
> Hard to say. It's been said that GTK+-2.0 is substantially slower than
> 1.2. I don't notice much difference here but then my machine is
> probably fast enough. Have you played with testgtk; do you notice the
> same problems there?

Yes, I have played with testgtk in both versions.  Unfortunately the
interface has changed so it is hard to compare the performance in both
cases.  The new one from GTK+ 2.0 is definitely slower, but it is
difficult to say if that would explain the difference seen in the GIMP.

Maybe I need to find an even slower computer than my PC at home, so
that I can compare how fast GTK+ 2.0 redraws its widgets compared to
1.2.x.

> Since we use a model-view concept in GIMP-1.3, we use a lot of signal
> emissions to synchronize the UI with the core data structs. You could
> get a noticeable speedup by compiling glib without debugging (default
> since 2.0) and make sure that app/core/gimpmarshal.[ch] is generated
> using a recent version of glib-genmarshal.

Yes, I also get glib and gtk+ from anonymous CVS (updated during the
week-end) so I should have the correct version.

> For further optimizations we should do some profiling first since it
> doesn't make sense to remove useful debugging code unless it shows up
> significantly in the profile.

Of course!  It is much too early to remove the debugging code from CVS
HEAD and it would be foolish to start optimizing anything before the
code is reasonably stable.  And, as you pointed out, no optimization
should be attempted before having a good profiling report.  I was not
trying to find a way to improve the speed of the current GIMP 1.3.x
(not yet, at least), but I was curious to know if anybody had an idea
about what was making it so slow.

-Raphaël
___
Gimp-developer mailing list
[EMAIL PROTECTED]
http://lists.xcf.berkeley.edu/mailman/listinfo/gimp-developer



Re: [Gimp-developer] Why is GIMP 1.3.x user interface much slower than 1.2.x?

2002-04-24 Thread Sven Neumann

Hi,

RaphaXl Quinet <[EMAIL PROTECTED]> writes:

> Yes, I have played with testgtk in both versions.  Unfortunately the
> interface has changed so it is hard to compare the performance in both
> cases.  The new one from GTK+ 2.0 is definitely slower, but it is
> difficult to say if that would explain the difference seen in the GIMP.
> 
> Maybe I need to find an even slower computer than my PC at home, so
> that I can compare how fast GTK+ 2.0 redraws its widgets compared to
> 1.2.x.

GTK+-2.0 draws its widgets double-buffered which definitely does not
make it faster (but reduces flickering). It might be interesting to 
disable this feature by undefining USE_BACKING_STORE in gdkwindow.c.

> > Since we use a model-view concept in GIMP-1.3, we use a lot of signal
> > emissions to synchronize the UI with the core data structs. You could
> > get a noticeable speedup by compiling glib without debugging (default
> > since 2.0) and make sure that app/core/gimpmarshal.[ch] is generated
> > using a recent version of glib-genmarshal.
> 
> Yes, I also get glib and gtk+ from anonymous CVS (updated during the
> week-end) so I should have the correct version.

gimpmarshal.[ch] might nevertheless not have been rebuilt since there's
no dependency to glib-genmarshal. You better have a look at the files
or touch gimpmarshal.list to force regeneration.


Salut, Sven
___
Gimp-developer mailing list
[EMAIL PROTECTED]
http://lists.xcf.berkeley.edu/mailman/listinfo/gimp-developer