An experiment for an alternate runloop for the perl interpreter
Perl
Switch branches/tags
Pull request Compare This branch is 10 commits ahead of rgs:master.
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
lib/Runops
t
Changes
MANIFEST
MANIFEST.SKIP
META.yml
Makefile.PL
README
Switch.xs

README

NAME
    Runops::Switch - Alternate runloop for the perl interpreter

SYNOPSIS
        perl -MRunops::Switch foo.pl

DESCRIPTION
    This module provides an alternate runops loop. It's based on a large
    switch statement, instead of function pointer calls like the regular
    perl one (in run.c in the perl source code.) I wrote it for benchmarking
    purposes.

    As dynamic extension there is no notable speedup measurable.

    516 non-threaded:

        $ ./TEST op/*.t
        u=0.46 s=0.06 cu=16.27 cs=0.95 scripts=182 tests=47170
        $ PERL5OPT_TEST=-MRunops::Switch ./TEST op/.t
        u=0.49 s=0.02 cu=16.39 cs=0.83 scripts=182 tests=47170 (dynamic_ext overhead)

KNOWN PROBLEMS
    This module calls directly the "pp_*" functions from the Perl
    interpreter (not through a function pointer). Since those functions
    aren't part of the public Perl API, they won't be available unless you
    happen to run an OS that exports every symbol by default (such as Linux
    without "PERL_DL_NONLAZY" set). Notably, this module does not compile on
    Windows.

AUTHOR
    Written by Rafael Garcia-Suarez, based on an idea that Nicholas Clark
    had while watching a talk by Leopold Toetsch. The thread is here :

        http://www.xray.mpe.mpg.de/mailing-lists/perl5-porters/2005-09/msg00012.html

    This program is free software; you may redistribute it and/or modify it
    under the same terms as Perl itself.