Benchmark - Perl vs PHP vs Python

Setelah cukup lama membaca berbagai artikel tentang bagaimana performa bahasa scripting PERL, PHP, PYTHON, akhirnya saya mencoba untuk melakukan pembuktian sendiri terhadap kebenaran informasi yang ada.

Telah lama pula saya mencoba mencari bahasa scripting yang paling ideal dalam membuat sebuah applikasi berbasiskan web.  Mengikuti pertentangan pada kubu masing - masing bahasa pada kelebihan dan kekurangan yang ada, sulit bagi saya untuk memutuskan mana yang terbaik.

Tujuan saya melakukan perbandingan ini adalah untuk mengetahui kelebihan dan kekurangan sebuah bahasa scripting, kemudian bagaimana cara mengoptimasi, menutupi kekurangan tersebut dengan membandingkan performanya pada bahasa pemrograman yang lain.

Saya telah mencoba berbagai skenario untuk menguji ketiga bahasa tersebut.  Namun pada kesempatan ini saya akan membahas 2 tehnik perbandingan yang saya lakukan.

Web Service Responsive 

Latar belakang dari skenario ini adalah untuk mencari bagaimana mempercepat response terhadap request data kepada client.

Dalam PHP

<?php
    echo validate($_POST["key"]);
?>


Dengan Python

import cgi;
rq = cgi.FieldStorage();
print validate(rq["key"]);

Dengan Perl

#!/usr/bin/perl
use CGI;

$rq = new CGI;
print validate($rq->param("key"));

Applikasi dijalankan pada server Linux dengan web server: Apache dan NGinX.  Proses evaluasi menggunakan konfigurasi FastCGI saja.

Tehnik pengambilan data dengan cara mencatat waktu awal dan akhir ketika sebuah script dijalankan.   pada Server yang sama.  Masing-masing dijalankan dalam rentang waktu 1 minggu bergantian.  Proses memakan waktu 6 minggu.  Data yang diambil kemudian dirata-ratakan.

Pokok dari fungsi validate pada program di atas adalah mengambil data POST key, melakukan validasi dan akhirnya mengeluarkan data JSON hasil validasi tersebut.  Fungsi validasi hanya memuat fungsi identifikasi keberadaan sebuah file berukuran 50 bytes.

Berikut rata - rata yang didapatkan dalam percobaan di atas dalam satuan seconds:

              PHP    PERL  PYTHON

MAX         0.155   0.011   0.074
AVERAGE     0.084   0.005   0.053
MIN         0.076   0.007   0.043

Dari data tersebut tanpa diragukan lagi, PERL adalah engine yang paling optimize.

Application Scheduled Task

Latar belakang dari skenario ini adalah melakukan optimasi pada background service sebuah applikasi.  Applikasi dijalankan menggunakan Linux CRON yang berjalan setiap 5 menit sekali.

Applikasi menggunakan database pada MySQL.  Berikut pseudocode program yang dijalankan:

Open Database Connection
Query Data 
While (Not EOF)
Begin
     Summary = Calculate (Data)
     Insert Summary Into Table Summary 
End


Besar database yang diproses adalah 10 Megabytes dalam 1.2 juta records.  Hasil yang didapat adalah: (dalam satuan second)

              PHP    PERL  PYTHON  GNU C

MAX         8.273  10.355  16.670  1.012
AVERAGE     6.472   7.274  12.181  0.729
MIN         5.776   6.608  10.925  0.573


Skenario kedua menunjukkan PHP lebih optimize.

Kesimpulan

Masih terlalu dini untuk menyimpulkan mana yang terbaik di antara PERL, PHP dan PYTHON.  Namun dari data percobaan di atas, kita dapat melihat masing - masing bahasa memiliki keunggulan dalam menangani skenario tertentu.

Seperti terlihat pada data di atas, apabila kita ingin menciptakan sebuah applikasi yang memiliki performa tinggi, hanya bahasa C menjadi solusi terbaik.  Namun demikian, kita harus memperhitungkan pula produktifitas kita dengan menggunakan bahasa pemrograman tersebut.

No comments:

Post a Comment