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

Speeding up WML / real-time WML


I just got WML up and running recently and threw together a small WML file
that only included wml::std::page and my own template. Nice and small.
However, this file was taking 30 seconds to be processed by WML. Now, I
admit this machine is slow (it's a sparc 20) but I thought this was a little
too slow.

Investigating revealed that 10 of those 30 seconds were being spent in pass
one alone. This seemed weird, because pass one doesn't have much to
implement. So, I modified the pass one source code to get rid of some
inefficiencies and it runs much faster - pass one takes 1.9 seconds now,
reducing my total time from 30 to 20 seconds.

WML sites which include more external files will experience a gain greater
than 5 to 1 on pass one. On my system, the new pass one takes 5.1 seconds to
parse wml::all, where the old one takes 109.9 seconds. This reduced the
total time from 127.9 to 23.0 seconds.

If you want the sources to this, just e-mail me -- I'll be glad to provide
them. I'm also sending them to Mr. WML himself for inclusion into his stew

I've also noticed inefficiencies in other WML passes, but I have not
undertaken to work on them. However, I will soon (month or two) be starting
on a project which will use WML for real-time page generation. At that time,
I'll go mucking around with WML's internals if I run into any problems. Is
anyone else using WML in a real time? If so, how is it faring?

 - David Harris
   Principal Engineer, DRH Internet Services

Website META Language (WML)                www.engelschall.com/sw/wml/
Official Support Mailing List                   sw-wml@engelschall.com
Automated List Manager                       majordomo@engelschall.com