#!/usr/bin/perl -w
#
# A quick test to see which methods are quickest. This is not terribly
# realistic as it throws away all output.
#
# @(#) $Id: benchmark.pl 477 2005-02-18 10:10:55Z dom $
#
use strict;
use warnings;
use Benchmark qw( cmpthese );
use File::Spec;
use XML::Genx::Simple;
# Set up some shared variables.
my $devnull = File::Spec->devnull;
open my $nullfh, '>', $devnull
or die "open(>$devnull): $!\n";
my $genx = XML::Genx::Simple->new;
my $xml_output = '';
cmpthese(
100_000,
{
'StartDocFile()' => \&StartDocFile,
'StartDocSender()' => \&StartDocSender,
'StartDocString()' => \&StartDocString,
}
);
sub StartDocSender {
$xml_output = '';
$genx->StartDocSender( sub { $xml_output .= shift } );
$genx->StartElementLiteral( 'foo' );
$genx->AddText( 'bar' );
$genx->EndElement;
$genx->EndDocument;
}
sub StartDocFile {
$genx->StartDocFile( $nullfh );
$genx->StartElementLiteral( 'foo' );
$genx->AddText( 'bar' );
$genx->EndElement;
$genx->EndDocument;
}
sub StartDocString {
$genx->StartDocString();
$genx->StartElementLiteral( 'foo' );
$genx->AddText( 'bar' );
$genx->EndElement;
$genx->EndDocument;
}
# vim: set ai et sw=4 syntax=perl :