One of the best talks of the YAPC::Eu 2003 was Nick Clark's talk on optimising perl without dropping down to XS code (or Inline). This covered all sorts of micro optimisations that you probably should never do, but it inspired me anyway...
So on Wednesday night I tossed and turned in bed thinking about how XML::SAX::PurePerl has a horrible design - it parses in perl by nibbling away at the document 1 character at a time. That's horribly inefficient in a language that doesn't treat strings as character arrays.
So this weekend I sat down and re-wrote XML::SAX::PurePerl. I made as much use of perl's regexp engine as I could (actually not true - I could use it more, but it would require much deeper re-design). In the end it's now about 10 times faster.