C vs Perl | Perl vs Python | POGL vs SDL | Windows vs Linux |

Blacklight Shader OpenGL Benchmarks

The following benchmarks are all performed on the same multi-boot system:

  • 3Ghz Intel Pentium D
  • 1G Memory
  • nVidia GeForce 6800 GT/AGP/SSE2
  • Matched nVidia drivers (as of March, 15, 2007):
    • Linux: v97.55
    • Vista: v100.65

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 POGL team.




C vs Perl - details
    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.



Perl vs Python - details
    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 applications:

  • 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.



POGL vs SDL::OpenGL - details
    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).



Windows vs Linux - details
    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 test.pl FBO test app.