CGI-Minimal
view release on metacpan or search on metacpan
lib/CGI/Minimal.pod view on Meta::CPAN
execution environment). While you can reach around 66 or so invokations per second on
an AMD XP2100+ processor running a simple script using CGI::Minimal, you can exceed
400 per second using mod_perl.
Here are some performance numbers using an extremely simple script
using CGI.pm, CGI::Lite, CGI::Deurl, cgi-lib.pl, CGI::Thin, CGI::Simple
and CGI::Minimal to read a single passed parameter (a=b) and print it.
Also included are a 'null' Perl script and a 'null' compiled C program which
didn't actually read the passed cgi parameter but output the same results
as if they had.
Notably, mod_perl outperforms the compiled C program by
quite a lot for this simple case. Note also that using the :preload
option slowed the CGI::Minimal script down from 66 fetches/second
to only 52 fetches/second when used in standard CGI mode.
With 10 parallel fetches repeated as fast as possible for 30 seconds
with and without mod_perl (if supported) the tests gave the following
results (sorted by speed):
CGI.pm (3.05) via standard CGI - 16 fetches per second
CGI::Simple (0.075) via standard CGI - 20 fetches per second
CGI::Deurl (1.08) via standard CGI - 36 fetches per second
CGI::Thin (0.52) via standard CGI - 38 fetches per second
CGI::Lite (2.02) via standard CGI - 52 fetches per second
CGI::Minimal (1.16, :preload) via standard CGI - 52 fetches per second
CGI::Minimal (1.16) via standard CGI - 66 fetches per second
cgi-lib.pl (2.18) via standard CGI - 71 fetches per second
null Perl script via standard CGI - 103 fetches per second
null C program via standard CGI - 174 fetches per second
CGI::Simple (0.075) via mod_perl - 381 fetches per second
CGI.pm (3.05) via mod_perl - 386 fetches per second
CGI::Minimal (1.16) via mod_perl - 417 fetches per second
null Perl script via mod_perl - 500 fetches per second
=head1 CHANGES
1.30 13 Jun 2020 - Maintainer update. Relicenced under the MIT License.
Small tweaks to build process. Added meta_merge info
for GitHub. No functional changes.
1.29 21 Aug 2007 - Documentation fix to performance hints section. No functional changes.
1.28 18 Aug 2007 - Improved mod_perl2 handling (patch courtesy of Jeremy Nixon).
Added a ':no_subprocess_env' flag to suppress populating
the %ENV environment hash. Added a 'subprocess_env'
static class method to allow smooth co-existance of
ModPerl2 scripts that use ':no_subprocess_env' with ModPerl2
scripts that do not on the same server.
1.27 25 May 2007 - Added example of a command line 'wrapper' script and
of using environment variables as an alternate way
to test scripts via the command line. Added example
for use with FastCGI. Changed behavior for unsupported
HTTP methods. The module used to 'croak' for unsupported
methods, it now 'carp's instead and treats as a 'GET'
(change at suggestion of Roman Mahirov to better support
FastCGI).
1.26 06 Apr 2007 - Added decoding of Javascript/EMCAScript style unicode
escaped (%uxxxx form) parameter data (both to the main
'param' method and to the 'url_decode'/'url_encode' methods)
at the suggestion of Michael Kröll (the core code for
this additional functionality is derived from CGI.pm).
Added support for ModPerl2.
Fixed META.yml problems introduced with 1.25.
Changed POD/POD Coverage tests to only execute if specifically requested
Added examples directory and scripts
1.25 20 Apr 2006 - Added 'allow_hybrid_post_get' class method. Tweaked file permissions.
Added regression tests for hybrid forms.
1.24 23 Sep 2005 - Added 'Carp' to install requirements. Extended build tests.
Fixed multi-part form decoding bug in handling of degenerate MIME
boundaries. Added fatal errors for mis-calling of param_mime
and param_filename methods.
1.23 18 Sep 2005 - Made Test::More optional in build tests. No functional changes.
1.22 13 Sep 2005 - Changed POD tests to be more friendly to CPANTS.
1.21 11 Sep 2005 - Fixed pod coverage build test for compatibility
with Perl 5.005.
1.20 11 Sep 2005 - Fixed issue that caused mod_perl to issue
'Use of uninitialized value.' warnings.
Extended build tests.
1.19 10 Sep 2005 - Fixed POD Coverage build test error.
1.18 08 Sep 2005 - Tweaked prerequisite modules lists. Extended regresssion
tests to cover more of the code.
1.17 04 Sep 2005 - More tweaks to regression tests to work around MS-Windows
problems with binary file handles under Perl 5.6.1.
Added 'Build.PL' support back in. Added POD tests.
Minor documentation tweaks. No functional changes.
1.16 12 Nov 2004 - Added CGI::Simple to the benchmarks table. Tweaked regresssion
tests for MS-Windows. Added 'delete' and 'delete_all'
methods and regression tests. Added ':preload' flag for
preloading all sub-components at module 'use' time.
Fixed bug introduced with 1.15 in param value setting.
1.15 9 Nov 2004 - Added more regression tests. Tweaked url encoder to comply
better with RFC2396. Tuned performance some more. Extended
benchmarks table to cover more CGI form decoders.
1.14 16 Oct 2004 - Tuned module load time (about a 40% improvement) and
added performance hints to the documentation.
1.13 28 Sep 2004 - Removed support for Module::Build from module install.
1.12 25 Sep 2004 - Tweaked the default form parser to accept ';' as a field seperator
in addition to '&'. Change suggested by Peter Karman.
( run in 0.581 second using v1.01-cache-2.11-cpan-39bf76dae61 )