diff --git a/xt/benchmark.pl b/xt/benchmark.pl
new file mode 100644
index 0000000..d8e3b2a
--- /dev/null
+++ b/xt/benchmark.pl
@@ -0,0 +1,73 @@
+#!/usr/bin/env perl
+use strict;
+use warnings;
+use Dumbbench;
+use File::Basename 'dirname';
+use File::Spec::Functions qw/catfile rel2abs/;
+use File::Temp ':POSIX';
+use FindBin;
+use Getopt::Long;
+
+BEGIN {
+  unshift @INC, "$FindBin::Bin/../lib";
+};
+
+my $columns = 0;
+my $no_header = 0;
+GetOptions(
+  'columns|c' => \$columns,
+  'no-header|n' => \$no_header,
+  'help|h' => sub {
+    print "--columns|-c     Print instances in columns\n";
+    print "--no-header|-n   Dismiss benchmark names\n";
+    print "--help|-h        Print this page\n\n";
+    exit(0);
+  }
+);
+
+our $SCRIPT_NAME = 'tei2korapxml';
+
+my $f = dirname(__FILE__);
+my $script = rel2abs(catfile($f, '..', 'script', $SCRIPT_NAME));
+
+# Load example file
+my $file = rel2abs(catfile($f, '..', 't', 'data', 'goe_sample.i5.xml'));
+
+# Create a new benchmark object
+my $bench = Dumbbench->new(
+  verbosity => 0
+);
+
+# Add benchmark instances
+$bench->add_instances(
+  Dumbbench::Instance::PerlSub->new(
+    name => 'SimpleConversion',
+    code => sub {
+      `cat '$file' | perl '$script' > /dev/null 2>&1`
+    }
+  )
+);
+
+# Run benchmarks
+$bench->run;
+
+# Output in a single row
+if ($columns) {
+  unless ($no_header) {
+    print join("\t", map { $_->name } $bench->instances), "\n";
+  };
+  print join("\t", map { $_->result->raw_number } $bench->instances), "\n";
+  exit(0);
+};
+
+# Output simple timings for comparation
+foreach my $inst ($bench->instances) {
+  unless ($no_header) {
+    print $inst->name, ': ';
+  };
+  print $inst->result->raw_number, "\n";
+};
+
+exit(0);
+
+__END__
