Benchmarks
==========

Those benchmarks have been done with all data already in cache using a Intel Xeon E5520  @ 2.27GHz
running Debian 7.

.. table:: Execution time for reading a file, benchmarked using the ``timeit'' module. 
    :class: w

    +---------------+---------------------------+--------+--------------+--------------+--------------+
    | FabIO module  | Filename                  | Size   | Py2.7 v0.1.4 | Py2.7 v0.2.0 | Py3.2 v0.2.0 |
    +---------------+---------------------------+--------+--------------+--------------+--------------+
    | adscimage     | mb_LP_1_001.img           | 9 Mpix |  1.16 s      |   1.12 s     | 2.67 s       |
    +---------------+---------------------------+--------+--------------+--------------+--------------+
    | brukerimage   | Cr8F8140k103.0026         | 256kpix|   796 µs     |   795 µs     | 1.43 ms      |
    +---------------+---------------------------+--------+--------------+--------------+--------------+
    | cbfimage      |  run2_1_00148.cbf         | 6 Mpix |   173 ms     |   70.8 ms    | 70.8 ms      |
    +---------------+---------------------------+--------+--------------+--------------+--------------+
    | edfimage      | F2K_Seb_Lyso0675.edf      | 4 Mpix |  512 µs      |   597 µs     | 595 µs       |
    +---------------+---------------------------+--------+--------------+--------------+--------------+
    | fit2dmaskimage| fit2d_click.msk           | 1 Mpix | 30.4 ms      |   30.5 ms    | 28.4 ms      |
    +---------------+---------------------------+--------+--------------+--------------+--------------+
    | GEimage       |GE_aSI_detector_image_1529 | 4 Mpix | 5.37 ms      |   5.44 ms    | 4.3 ms       |
    +---------------+---------------------------+--------+--------------+--------------+--------------+
    | kcdimage      | i01f0001.kcd              | 360kpix| 130 ms       |   121 ms     | 292 ms       |
    +---------------+---------------------------+--------+--------------+--------------+--------------+
    | mar345image   | example.mar2300           | 5 Mpix | 78 ms        |   77 ms      | 77 ms        |
    +---------------+---------------------------+--------+--------------+--------------+--------------+
    | marccdimage   | corkcont2_H_0089.mccd     | 4 Mpix | 9.28 ms      |    9.01 ms   | 17.2 ms      |
    +---------------+---------------------------+--------+--------------+--------------+--------------+
    | OXDimage      | b191_1_9_1.img            | 256kpix| 5.75 ms      |   5.67 ms    |  8.35 ms     |
    +---------------+---------------------------+--------+--------------+--------------+--------------+
    | pnmimage      | image0001.pgm             | 1 Mpix |   3.29 ms    |   3.25 ms    |    5.71 ms   |
    +---------------+---------------------------+--------+--------------+--------------+--------------+
    | raxisimage    | mgzn-20hpt.img            | 3 Mpix |  53.5 ms     |   57.1 ms    |   69.2 ms    |
    +---------------+---------------------------+--------+--------------+--------------+--------------+
    | tifimage      | oPPA_5grains_0001.tif     | 4 Mpix |  59.9 ms     |   58.4 ms    |   105 ms     |
    +---------------+---------------------------+--------+--------------+--------------+--------------+
    | xsdimage      | XSDataImage.xml           | 256kpix|  13.3 ms     | 12.9 ms      | 18.4 ms      |
    +---------------+---------------------------+--------+--------------+--------------+--------------+
    
The Python3 version is sometimes twice slower then the Python2 version. As the codebase is the
same this regression is not due to FabIO but to the programming language itself.
