HHVM vs PHP

Discussion in 'Dedicated Server dan Colocation' started by Mylo Sepz, 14 Jan 2016.

Thread Status:
Not open for further replies.
  1. Mylo Sepz

    Mylo Sepz Apprentice 2.0

    Messages:
    532
    Likes Received:
    59
    Trophy Points:
    28
    Buat admin saya gak tau mau taruh dimana postingan ini :) mohon dipindahkan ketempat yang sesuai yah om.

    Apa itu HHVM?
    HHVM singkatan dari HipHop Virtual Machine. Secara sederhananya, HHVM adalah mesin yang bertugas untuk menjalankan sintak PHP.

    Ketika kita menginstall PHP di Komputer, secara default akan menggunakan mesin interpreter bawaan dari PHP untuk menjalankan program-program berbasis PHP. Nah disamping itu, kita juga bisa menggunakan mesin alternatif lain seperti HHVM yang saya maksud.

    HHVM dikembangkan oleh Facebook, dengan kode proyek sumber host di GitHub dan berlisensi di bawah Lisensi PHP dan Zend Lisensi. HHVM dibuat sebagai penerus dari Hip Hop untuk PHP (HPHPc) mesin eksekusi PHP, yang merupakan PHP ke C++ transpiler yang juga telah diciptakan oleh Facebook.

    Bersama-sama dengan HHVM, Facebook juga merilis Hack, yang merupakan bahasa pemrograman yang dirancang khusus untuk HHVM dan dapat dilihat sebagai versi baru dari bahasa PHP.

    HHVM berjalan lebih dari PHP yang ada di dunia. Pengembang dan host yang mengadopsi HHVM. Tim HHVM, bersama dengan banyaknya anggota Komunitas, telah membuatnya menjadi ternyatakan, tujuan prioritas tinggi untuk menjalankan semua kode PHP yang ada di dunia ini.

    HHVM mengkompilasi Hack dan PHP menjadi kode bit menengah. Kode bit ini kemudian diterjemahkan ke dalam kode mesin X64 dinamis pada saat runtime oleh JIT Compiler. Proses kompilasi ini memungkinkan untuk segala macam optimasi yang tidak dapat dibuat dalam biner statis kompilasi, sehingga memungkinkan kinerja yang lebih tinggi dari program Hack dan PHP Anda. Daripada langsung menafsirkan atau mengkompilasi kode PHP langsung ke C++.

    HHVM membawa banyak manfaat dibandingkan dengan HPHPc, dan salah satunya adalah dukungan hampir lengkap untuk seluruh bahasa PHP, termasuk dukungan HHVM untuk konstruksi create_function() dan eval().
    Sebagai mesin virtual proses yang menyediakan lingkungan eksekusi, HHVM memiliki kemampuan untuk menggunakan informasi jenis secara langsung untuk menghasilkan kode native yang lebih efisien, yang mengarah ke yang lebih tinggi melalui web server dan latency rendah.

    Lalu kenapa harus pindah? padahal sama-sama PHP toh
    Disini biar gambar yang menjelaskan

    Saya membuat 2 domain dengan spesifikasi server yang sama dan isi yang sama (memang karena berada di satu server :p)

    kali ini saya akan membandingkan http://mseptian.com/ dengan http://kotaksoal.com/

    http://mseptian.com/ menggunakan PHP versi 5.6.99-hhvm Sedangkan http://kotaksoal.com/ menggunakan PHP versi 5.5.9-1ubuntu4.14

    dengan menjalankan file PHP sederhana dari http://www.php-benchmark-script.com
    PHP:
    <?php
    /*
    ##########################################################################
    #                      PHP Benchmark Performance Script                  #
    #                         © 2010 Code24 BV                               #
    #                                                                        #
    #  Author      : Alessandro Torrisi                                      #
    #  Company     : Code24 BV, The Netherlands                              #
    #  Date        : July 31, 2010                                           #
    #  version     : 1.0                                                     #
    #  License     : Creative Commons CC-BY license                          #
    #  Website     : http://www.php-benchmark-script.com                     #  
    #                                                                        #
    ##########################################################################
    */

        
    function test_Math($count 140000) {
            
    $time_start microtime(true);
            
    $mathFunctions = array("abs""acos""asin""atan""bindec""floor""exp""sin""tan""pi""is_finite""is_nan""sqrt");
            foreach (
    $mathFunctions as $key => $function) {
                if (!
    function_exists($function)) unset($mathFunctions[$key]);
            }
            for (
    $i=0$i $count$i++) {
                foreach (
    $mathFunctions as $function) {
                    
    $r call_user_func_array($function, array($i));
                }
            }
            return 
    number_format(microtime(true) - $time_start3);
        }
      
      
        function 
    test_StringManipulation($count 130000) {
            
    $time_start microtime(true);
            
    $stringFunctions = array("addslashes""chunk_split""metaphone""strip_tags""md5""sha1""strtoupper""strtolower""strrev""strlen""soundex""ord");
            foreach (
    $stringFunctions as $key => $function) {
                if (!
    function_exists($function)) unset($stringFunctions[$key]);
            }
            
    $string "the quick brown fox jumps over the lazy dog";
            for (
    $i=0$i $count$i++) {
                foreach (
    $stringFunctions as $function) {
                    
    $r call_user_func_array($function, array($string));
                }
            }
            return 
    number_format(microtime(true) - $time_start3);
        }


        function 
    test_Loops($count 19000000) {
            
    $time_start microtime(true);
            for(
    $i 0$i $count; ++$i);
            
    $i 0; while($i $count) ++$i;
            return 
    number_format(microtime(true) - $time_start3);
        }

      
        function 
    test_IfElse($count 9000000) {
            
    $time_start microtime(true);
            for (
    $i=0$i $count$i++) {
                if (
    $i == -1) {
                } elseif (
    $i == -2) {
                } else if (
    $i == -3) {
                }
            }
            return 
    number_format(microtime(true) - $time_start3);
        }  
      
      
        
    $total 0;
        
    $functions get_defined_functions();
        
    $line str_pad("-",38,"-");
        echo 
    "<pre>$line\n|".str_pad("PHP BENCHMARK SCRIPT",36," ",STR_PAD_BOTH)."|\n$line\nStart : ".date("Y-m-d H:i:s")."\nServer : {$_SERVER['SERVER_NAME']}\nPHP version : ".PHP_VERSION."\nPlatform : ".PHP_OS"\n$line\n";
        foreach (
    $functions['user'] as $user) {
            if (
    preg_match('/^test_/'$user)) {
                
    $total += $result $user();
                echo 
    str_pad($user25) . " : " $result ." sec.\n";
            }
        }
        echo 
    str_pad("-"38"-") . "\n" str_pad("Total time:"25) . " : " $total ." sec.</pre>";
      
    ?>

    Dapat dihasilkan dengan hasil seperti berikut
    a.png b.png

    Bagaimana? itu baru execute php sederhana. bagaimana kalo sudah banyak? :D

    Note: bagi yang bilang "ah itu hanya sebuah gambar, bisa dimodifikasi" silahkan cek di http://mseptian.com/benchmark.php dan di http://kotaksoal.com/benchmark.php

    bagi yang bilang "ah itu hanya PHP yang sama, gak ada bedanya" silahkan cek di http://mseptian.com/info.php dan di http://kotaksoal.com/info.php

    Like jika bermanfaat. kalo gak bermanfaat tolong jangan di like. Takut terjadi perang diantara kita :D
     
    Abang Noob, indra and Nina Prasetyo like this.
  2. Nina Prasetyo

    Nina Prasetyo Expert 2.0

    Messages:
    970
    Likes Received:
    277
    Trophy Points:
    63
    Patut di like nih !
    Mungkin perlu dicoba versus PHP7 biar apple-to-apple ..

    Kalo hhvm vs php5 .. baru apple-to-pear :)
     
    Mylo Sepz likes this.
  3. Mylo Sepz

    Mylo Sepz Apprentice 2.0

    Messages:
    532
    Likes Received:
    59
    Trophy Points:
    28
    siap di tunggu postingan selanjutnya :D
     
  4. junior riau

    junior riau Hosting Guru Web Hosting

    Messages:
    3,229
    Likes Received:
    515
    Trophy Points:
    113
    :71:
     
  5. FluidaWeb

    FluidaWeb Expert 1.0

    Messages:
    648
    Likes Received:
    86
    Trophy Points:
    28
    setelah ada php 7, ketertarikan saya pada hhvm sedikit menurun :)
    setidaknya jurang pemisahnya tidak terlalu jauh
     
  6. Nina Prasetyo

    Nina Prasetyo Expert 2.0

    Messages:
    970
    Likes Received:
    277
    Trophy Points:
    63
    At least, CPanel dan Virtualmin akan dukung PHP7 ketimbang HHVM

    Tapi, saya ada plan juga nih jadinya, mo bikin HHVM shared hosting. Lagi riset ..
     
  7. Mylo Sepz

    Mylo Sepz Apprentice 2.0

    Messages:
    532
    Likes Received:
    59
    Trophy Points:
    28
    UPDATE
    Setelah dirubah dari php 5.5 ke php 7 ternyata php7 lebih enteng dari HHVM. entah karena HHVM masih di PHP5.6 atau tidak. kita masih tunggu biar sama-sama seimbang di php7 semuanya.

    Skrinsut
    a.png b.png

    Note: saya masih penasaran kenapa HHVM jadi 7sec tadinya 2 sec :D

    om admin. tolong merge jadiin satu diatas yah om
     
  8. mustafaramadhan

    mustafaramadhan Hosting Guru

    Messages:
    3,237
    Likes Received:
    857
    Trophy Points:
    113
    Kalau mau adil ya HHVM ber-php56 dibandingkan php70.

    Kalau HHVM ber-php70 dibandingkan php70 kan sama saja dengan HHVM vs non-HHVM.
     
  9. Nina Prasetyo

    Nina Prasetyo Expert 2.0

    Messages:
    970
    Likes Received:
    277
    Trophy Points:
    63
    Wah, koq bisa gitu ... sepengetahuan saya dari beberapa blog benchmark independent, HHVM masih lebih cepat dari php7 lho ..
     
  10. Mylo Sepz

    Mylo Sepz Apprentice 2.0

    Messages:
    532
    Likes Received:
    59
    Trophy Points:
    28
    nah itu makannya saya bingung wkwk padahal konfigurasinya sama
     
Thread Status:
Not open for further replies.

Share This Page

Loading...