Sam's Blog entries for category 'optimization'
Anchoring Regexps
Date: Thursday, 22 April 2010, 15:14.
Categories: perl, ironman, regexp, craft, optimization, basic, tutorial.
A common mistake I find whenever I look at someone else's regexps, is a failure to anchor the regexp.
This is often, in my experience, the single biggest thing you can do to improve the performance of a regexp: it's one of those things you should learn to do in every regexp where applicable, which should be almost every regexp unless you're specifically looking for "something somewhere in the middle but I don't know where".
So, what is anchoring, and why does it have such a big impact?
Advanced Benchmark Analysis II: Probing strengths and weaknesses
Date: Tuesday, 9 March 2010, 13:39.
Categories: perl, ironman, benchmarking, analysis, trim, regexp, optimization, advanced, tutorial.
In my previous blog entry, "Advanced Benchmark Analysis I: Yet more white-space trimming", I left you with the thought that our benchmarks changed with changing input.
This article shows you how to analyze those changes and how to draw conclusions from them.
Advanced Benchmark Analysis I: Yet more white-space trimming
Date: Friday, 5 March 2010, 09:43.
Categories: perl, ironman, benchmarking, analysis, trim, regexp, optimization, intermediate, tutorial.
Seems my previous blog, "Some simple "white-space trim" benchmarks" caught people's attention, and I've received some interesting suggestions and observations worthy of a followup article, this also gives me the chance to delve into explaining more advanced benchmark analysis.
So, deep breath, here goes.
Some simple "white-space trim" benchmarks
Date: Wednesday, 3 March 2010, 15:38.
Categories: perl, ironman, benchmarking, trim, regexp, optimization, basic, tutorial.
Laufeyjarson asked on Monday, about stripping whitespace from both ends of a string. The comments contains lots of suggestions, but no hard figures, so I thought I'd reproduce them here along with the code used to generate the benchmarks - it provides a simple example of how to write a quick and reliable benchmark.