Performance Benchmarks

This Much Faster.

Free & Open Source on GitHub

Performance Benchmarks

Last Update: September 15th, 2015

Overview

The data presented here is from real benchmark runs, and shows exactly how much faster RPerl v1.1 runs when compared with normal Perl 5.

There are 2 primary components of programming languages: data and operations. RPerl can be configured to use either Perl data types or C/C++ data types, which means the RPerl compiler can accept as input 1 RPerl application source code, and can produce as output 2 functionally-equivalent RPerl application binary executables. We call these 2 options the RPerl "data modes", specifically the Perl data mode and the C/C++ data mode. In both data modes, RPerl uses C/C++ operations. Plain-old pure Perl uses Perl data and Perl operations. When we add RPerl's 2 data modes to pure Perl, we have a total of 3 "execution modes". Pure Perl (aka PERLOPS_PERLTYPES) is the slowest execution mode, RPerl's Perl data mode (aka CPPOPS_PERLTYPES) is significantly faster, and RPerl's C/C++ data mode (aka CPPOPS_CPPTYPES) is by far the fastest.

In addition, some algorithms may be further optimized by utilizing SSE 128-bit operations. RPerl v1.1 supports emulated SSE operations in Pure Perl execution mode (aka PERLOPS_PERLTYPES_SSE) and real hardware SSE operations in RPerl's C++ data mode (aka CPPOPS_CPPTYPES_SSE). Emulated SSE is even slower than normal Pure Perl mode, but it allows us to write code which is then compiled into hardware SSE, and the result is even faster than RPerl's C++ data mode. So, PERLOPS_PERLTYPES_SSE is slower than PERLOPS_PERLTYPES, while CPPOPS_CPPTYPES_SSE is faster than CPPOPS_CPPTYPES and anything else currently.

Counting the 2 SSE execution modes, there are 5 total execution modes in RPerl v1.1, although CPPOPS_PERLTYPES is currently supported for manual compiling only.

All benchmarks were run in serial under identical conditions on a Dell Latitude D630 with an 2GHz Intel Core2 Duo processor and 2GB of RAM, running Perl v5.18.2 and Xubuntu v14.04 on Linux kernel v3.13.0.

Bubble Sort

Bubble sort is a well-known algorithm often used for testing new computer languages.

View the Bubble Sort Benchmarks.

N-Body

N-body is a solar system gravity and motion simulator used as an arithmetic speed test.

View the N-Body Benchmarks.