Kyllä se nopeuskerroin taitaa olla 3x-5x edelleen,
Riippuu hyvin paljon tehtävästä. Kokeilin juuri keskiarvon tekstitiedostosta laskevaa ohjelmaa C:llä ja Pythonilla, kun dataa on pari megaa: eri oli luokkaa 2× – ja puhutaan sekunnin murto-osista. Siitäkin erosta suurin osa kuluu Pythonin käynnistämiseen.
Jompi kumpi meistä ei osaa optimoida (todennäköisesti minä). Minä ilmeisesti koodaan sen verran paskasti, että kun käännän python-ohjelmani C/C++:lle, niin ohjelmani nopeutuvat usein 5x. Tosin kyseistä optimointia en tee kovin usein, mutta jos on kysessä gigatavu-luokkaa olevan aineiston käsittely, niin saatan aluksi tehdä sen pythonilla, ja kun olen sen saanut tehdyksi, niin väännän siitä C/C++-version. Yleensä ratkaisu on nopeutunut monikertaisena python-ratkaisuun nähden.
Esimerkiksi käänsin tämän C/C++:lle ...
https://github.com/vancha/Binary-stl-to-ascii-stl ... ja ainakin omalla koneellani tuli merkittävä ero käskyillä:
time python3 Reader.py binary_example.stl py-example.stl
real 0m15,615s
user 0m7,652s
sys 0m0,585s
ja C/C++:lla...
time ./Reader binary_example.stl c++example.stl
Binary file
real 0m2,388s
user 0m2,114s
sys 0m0,154s
Edit - Käänteisessä testausjärjestyksessä ei ole niin suuri ero, mutta kuitenkin merkittävä myös siinä:
time ./Reader binary_example.stl c++example.stl
Binary file
real 0m2,433s
user 0m2,161s
sys 0m0,157s
time python3 ./Reader.py binary_example.stl py-example.stl
real 0m8,544s
user 0m7,545s
sys 0m0,560s