OmniWeb 2 speed.
William Shipley
wjs
Wed Dec 20 14:57:34 PST 1995
We've worked pretty hard since the first beta to make OmniWeb a faster,
and we'll continue to do it right up until we ship.
People using NeXTstations have told us the latest internal version is
quite a bit speedier than it was.
On the other hand, please understand that in 2.0 we've taken what was a
C library and rewritten it from scratch using objects and foundation kit.
While this actually gives some performance boosts (less copying of
buffers), on the whole it's a performance lose.
At the same time, we've made our entire architecture extensible; you can
add new tags to the HTML parser and also add entirely new bundles of
processors and preferences and addresses and authorization types.
We've also added true multi-threading, which means each processor
doesn't have to be written as a state machine; instead each processor
just reads from a datasource and writes to a sink and doesn't realise
that sometimes when it does a read its thread gets blocked waiting for
the processor before it to create more data.
Multi-threading means writing processors is ten times easier, but also
means we need to use locks around everything, which slows us down more.
Just putting Objective-C into thread-safe mode gives up 15% of its speed,
according to one NeXT engineer.
So, while I want OmniWeb 2.0 to be nice and zippy, when judging it
remember that in the 10 months since we release OmniWeb 1.0 we've added
tables and frames and font colors and background images and incremental
loading of images and threads and extensibility and tons of other stuff,
and every feature we add is by necessity going to have some speed
penalty. Flexible architectures aren't as fast as inflexible
architectures; that's why some programs are written in assembly and some
in Objective-C.
Someone sent me mail saying, "I like the new features but I'd prefer to
have speed. Do I have to go back to Lynx?" Well, no. Stay with 1.0 if
you want a super-fast, non-featureful browser.
This all said, we ARE optimizing OmniWeb 2.0, and it is getting
incrementally faster. We also appreciate specific complaints about
slowness, but not general ones. For example, it's no surprise to me that
it's slower on a 25Mhz slab than on my Pentium 133. But if you say,
"Going to http://xxx.yyy.com seems particularly slow" then we can check
it out and find out if we're doing anything inefficient. Or if you say,
"Switching between pages that are already rendered is bothersomely slow"
then we can address that (and, in fact, already have). Or if you say,
"On monochrome hardware incremental image loading slows the app down too
much" we can address that.
-Wil
More information about the OmniWeb-l
mailing list