Re: GTK2 performance and Dillo



On Thu, 2003-10-16 at 14:09, Robin Rowe wrote:
Hi. Dillo is a very small fast web browser (400kb executable). Stephan Lewis
posted some interesting performances tests yesterday comparing GTK1 and GTK2
running Dillo.

Can anyone illuminate further on the size and performance differences
between GTK1 and GTK2?

I think these observations are basically irrelevant to most GTK+-2.x
applications. GTK+-2.x *is* bigger and slower (this is an almost
inevitable consequence of having more features and rendering nicer),
but it's not megs bigger and minutes slower.

Test 1: Base load times
dillo1
    Time to load+render: ~1s
    Time to quit: instantaneous
    Size (from top): 7MB
dillo2
    Time to load+render: ~3s
    Time to quit: 0.5s (estimated, "felt" slower than dillo1)
    Size: 14MB

This is almost a plausible difference between GTK+-1.2 and GTK+-2.0
for a large program; though I suspect that reading the common FAQ's
about how to read top sizes would show that the memory difference in
actual memory used is much smaller than described above.

Small GTK+-2.0 programs load in a few tenths of a second and malloc
maybe ~600k of memory on X11. (Probably considerably less on
Windows since a large amount that RAM is being used for font lists and
fonts.)

Test2: Loading a 1.8MB html file, styled text, bulletted lists, tables
       of text
dillo1
    Time to load: 3s
        extra time to finish rendering: 6s
    Time to quit: ~2s
    Size: 56MB
dillo2
    Time to load: 1m20s real according to the time command, more like
                  2m30s due to swapping
        extra time to finish rendering: 10s
    Time to close: 1m20s
    Size: 220MB

This is a dillo bug and has nothing to do with GTK+. (Or alternatively
dillo is misusing GTK+ badly; if it's creating a GtkLabel per paragraph
or something you might get this kind of change. But the 56meg "before"
is pretty bad too.)

A couple of behavioural notes:
1) Progressive rendering wasn't useful in dillo2, you get an initial
   draw (which is largely useless), then dillo2 blocks, then the final
   draw.

dillo2 issue; the expose models *are* different between GTK+-1.2 and
GTK+-2.0. This needs to be taken into account if you are doing something
like progressive rendering.

Regards,
                                                Owen





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