A bare minimum [Catalyst][1] action can handle about 100 requests per second on my machine last I checked. Another old measurement places [Plack][2] at about 2K on the fastest backends, with absolutely bare minimum request handling.
Most of the real world applications I wrote can handle about 10-20 requests per second on my machine for the quickest dynamic requests.
confess, Throwable::Error, Exception::Class and creating a hash with 100 pairs of short strings are all in the range of 2K-5K iterations per second.
Devel::StackTrace and croak break the 10K iterations per second barrier.
It would take about 100 Devel::StackTrace->new calls per HTTP request to make my real world apps 5% slower, but 10 stack frames deep, it would only take 50 calls to have the same impact.