You guys asked for it and Your JoeDog delivered! The problem is you guys asked for it fifteen years ago and Your JoeDog delivered yesterday.
Beginning with version 4.0.0 beta 1, siege will parse the requested HTML document for additional elements such as style sheets, javascripts, images, etc. and make additional requests for those elements. This feature is still considered experimental so it’s off by default. To enable the parser you need to add this directive to your $HOME/.siege/siege.conf file:
parser = true
Siege was originally designed with performance in mind. Every thread basically dumped its HTML into the same bucket. This made parsing the content impossible without a design change. The choices were to wrap the reads with thread locks or create individual buckets for every thread. The former option would dramatically decrease performance and the latter option will require a lot of RAM. Imagine, if you will, running 255 browser tabs at once. “Meh,” Your JoeDog thought, “RAM is cheap now.”
We want to get the new version into your hands as soon as possible so it’s available with a few caveats:
- Don’t use gzip’d encoding – it will handle it but it’s not ready for prime time.
- Don’t expect cache validation to work – it requires a design overhaul
- Don’t expect it to parse poorly formatted HTML
- Element requests are sequential. We plan to make them concurrent.
There’s still a lot of work until 4.0.0 is ready for Prime Time but it can serve you well as long as your keep its limitations in mind.
[SIEGE RELEASE: 4.0.0-beta2]