| C vs Perl | Perl vs Python | POGL vs SDL | Windows vs Linux |
The following benchmarks are all performed on the same multi-boot system:
3Ghz Intel Pentium D
nVidia GeForce 6800 GT/AGP/SSE2
Matched nVidia drivers (as of March, 15, 2007):
If you would like to receive updates on new benchmarks,
signup for our newsletter.
If you would like to submit your benchmarks to this site, please send
your code ports to the
When used for online services, Perl (via Apache/mod_perl or IIS/ActivePerl)
performance approaches that of C, as the interpretter and modules are already
loaded in memory and executed in-process.
This is further enhanced by the fact that many performance-critical Perl modules
are written in C.
In the case of OpenGL, much of the work is actually performed by the GPU, making
Perl overhead statistically insignificant.
Due to Perl's strength in string manipulation, there are cases where Perl can even
outperform C when loading/manipulating shader programs.
Using FBO and Shader Program extensions, this benchmark compares C and Perl
on Windows and Linux.
While it is generally agreed that Python has a more aesthetic syntax than
Perl, there are a number of reasons to prefer Perl over Python for OpenGL
It is far easier to port Perl to/from C/C++/Java than it is with Python.
Every function in Python can easily be performed in Perl; the converse is not
true, particularly in terms of string handling.
Perl has a larger base of open source modules
These benchmarks demonstrate that OpenGL performance is much higher in Perl
than in Python, particularly when using Vertex Arrays.
SDL provides a comprehensive library for media handling: imaging, audio, video
and OpenGL. SDL::OpenGL is SDL's Perl binding to OpenGL.
This benchmark demonstrates that POGL is 35% faster than SDL::OpenGL using
normal Vertex Arrays, and 46% faster when using POGL's OpenGL::Array (OGA) objects.
POGL's OGAs store data as typed C arrays, eliminating the need to convert/copy/cast
data when passing arrays to various APIs.
POGL's VBOs provide 2-4X performance over SDL::OpenGL's Vertex Arrays
(SDL::OpenGL does not support VBO's as of this writing).
While Windows and Linux generally perform equally well for most applications
(Apache, MySQL, Perl, etc), this is not the case for OpenGL.
Using both C and Perl benchmarks, Linux performs up to 10X faster than Windows (Vista)
using POGL's FBO test app.