diff --git a/xt/benchmark.pl b/xt/benchmark.pl
new file mode 100644
index 0000000..f7d0cb0
--- /dev/null
+++ b/xt/benchmark.pl
@@ -0,0 +1,87 @@
+#!/usr/bin/env perl
+use strict;
+use warnings;
+use Dumbbench;
+use File::Basename 'dirname';
+use File::Spec::Functions qw/catfile catdir 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 = 'korapxml2krill';
+
+my $f = dirname(__FILE__);
+my $script = rel2abs(catfile($f, '..', 'script', $SCRIPT_NAME));
+
+
+# begin instance 1 setup
+# Load example file
+my $input = rel2abs(catdir($f, '..', 't', 'annotation', 'corpus', 'doc', '0001'));
+my $output = tmpnam();
+my $cache = tmpnam();
+# end instance 1
+
+# Create a new benchmark object
+my $bench = Dumbbench->new(
+  verbosity => 0
+);
+
+# Add benchmark instances
+$bench->add_instances(
+  Dumbbench::Instance::PerlSub->new(
+    name => 'ExampleRun 1',
+    code => sub {
+      my $cmd = join(
+        ' ',
+        'perl', $script,
+        '--input' => $input,
+        '--output' => $output,
+        '--cache' => $cache,
+        '-k' => '0.03',
+        '-t' => 'OpenNLP#Tokens',
+        '-l' => 'ERROR',
+        '>' => '/dev/null'
+      );
+      `$cmd`;
+    }
+  )
+);
+
+# 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 { $_->single_run } $bench->instances), "\n";
+  exit(0);
+};
+
+# Output simple timings for comparation
+foreach my $inst ($bench->instances) {
+  unless ($no_header) {
+    print $inst->name, ': ';
+  };
+  print $inst->single_run, "\n";
+};
+
+exit(0);
