Cara menggunakan memory allocation in php

Pada tanggal 5 Nopember 2008 kemaren, blog saya ini tidak dapat diakses sama sekali. Begitu diketikkan urlnya https://blog.rosihanari.net hanya keluar blank, tapi anehnya di situs induknya http://rosihanari.net tidak mengalami kejadian serupa alias normal-normal saja. Melihat keganjilan ini, segeralah saya kontak ke support tempat saya hosting untuk mengetahui ada apakah gerangan.

Alhamdulillah tidak lama berselang setelah saya kirim email komplain, langsung ditanggapi oleh support dan saya disuruh ngecek di cpanel terutama pada bagian ERROR LOG.

Olala…. ternyata di error log muncul banyak sekali error yang berbunyi seperti ini

[Wed Nov 05 17:32:57 2008] [error] [client 124.195.53.98] PHP Fatal error: Allowed memory size of 8388608 bytes exhausted (tried to allocate 323984 bytes) in /…/wp-includes/functions.php on line 1961.

Ternyata si admin hosting sengaja mendisable settingan untuk menampilkan error message. Sehingga saya tidak tahu ada apa gerangan. But.. any way thanks to admin hosting yang telah memberikan pencerahan ke saya tentang cara mengecek ada tidaknya masalah di server, yaitu melalui ERROR LOG di Cpanel.

Kembali lagi ke error…. Setelah melihat error seperti itu, langsung saya buka Google trus searching dengan keyword ‘allowed memory size’, ‘exhausted’, ‘solve’, untuk melihat apa penyebabnya dan bagaimana solusinya.

Alhamdulillah ketemu juga salah satu artikel yang membahas jenis error di atas. Ternyata error tersebut muncul karena alokasi memori untuk menjalankan script PHP sudah habis (exhausted). Apabila kita lihat bunyi error di atas, bisa dilihat bahwa alokasi memori yang diset oleh admin hosting adalah sekitar 8M. Jumlah ini adalah default dari memory PHPnya.

Seperti yang Anda tahu, bahwa untuk blog.rosihanari.net ini saya menggunakan WordPress, sedangkan untuk main sitenya rosihanari.net, saya buat sendiri. Memang untuk bisa menjalankan WordPress ini, memory yang dibutuhkan lumayan besar. Saya sendiri pernah coba menginstal WordPress di localhost di komputer saya, juga pernah mengalami hal serupa (memory habis untuk 8M). Tidak hanya WordPress, ada beberapa cms seperti drupal atau joomla yang terkadang juga menyebabkan memory exhausted ini.

So… bagaimana solusinya? Apakah harus memperbaiki script WordPress nya supaya load memory yang dibutuhkan kecil? he..he..he… 🙂 tentu hal ini agak impossible. Alternatif lain cara untuk mengatasinya yaitu menambah limit alokasi memori untuk menjalankan script PHP nya. Nah.. yang menjadi pertanyaan, bagaimana caranya ya?

Ternyata caranya cukup mudah sekali. Untuk mengatur limit alokasi memory ini, dapat Anda buka file php.ini. Lalu cari baris yang bertuliskan seperti ini:

memory_limit = 8M

Sekali lagi 8M atau sekitar 8388608 bytes adalah default dari besarnya alokasi memory maksimum untuk menjalankan script PHP. Nah… sekarang untuk menambah memori, hanya dengan mengubah menjadi 12M (untuk alokasi 12 Mb memory) atau berapapun yang diinginkan. Misalnya

memory_limit = 12M

That’s all… hanya gitu aja. Selanjutnya jangan lupa merestart Apachenya.

Oya… sebagai referensi saja, ada hostingan yang mensetting memory limitnya sampai dengan 32M, termasuk hostingan yang saya pakai (atas saran saya). Any way… makasih atas tim support hosting yang telah mau menerima saran saya untuk menaikkan memory limitnya.

OK… mudah-mudahan artikel ini ada manfaatnya.

Bagikan artikel ini jika bermanfaat !


Content dated before 2011-04-08 (UTC) is licensed under CC BY-SA 2.5. Content dated from 2011-04-08 up to but not including 2018-05-02 (UTC) is licensed under CC BY-SA 3.0. Content dated on or after 2018-05-02 (UTC) is licensed under CC BY-SA 4.0. | Privacy

PHP | Ds\Stack allocate() Function

View Discussion

Improve Article

Save Article

  • Read
  • Discuss
  • View Discussion

    Improve Article

    Save Article

    The Ds\Stack::allocate() function is an inbuilt function in PHP which is used to allocate memory for required capacity. This function allocates sufficient memory for a given capacity of an instance of Stack class.
    Syntax: 
     

    void Ds\Stack::allocate( $capacity )

    Parameters: This function accepts a single parameter $capacity which is an integral value denoting the number of values for which capacity is needed to allocate.
    Return Value: This function does not return any value.
    Below programs illustrate the Ds\Stack::allocate() function in PHP:
    Program 1: 
     

    <?php

    $stack = new \Ds\Stack();

    echo("Allocated Space is: ");

    var_dump($stack->capacity());

    echo("Allocated space is: ");

    $stack->allocate(50);

    var_dump($stack->capacity());

    ?>

    Output:

    Allocated Space is: int(8)
    Allocated space is: int(50)

    Program 2: 
     

    php

    <?php

    $stack = new \Ds\Stack();

    echo("Allocated Space is: ");

    var_dump($stack->capacity());

    echo("Allocated space is: ");

    $stack->allocate(5);

    var_dump($stack->capacity());

    echo("Allocated space is: ");

    $stack->allocate(120);

    var_dump($stack->capacity());

    ?>

    Output:

    Allocated Space is: int(8)
    Allocated space is: int(8)
    Allocated space is: int(120)

    Reference: https://www.php.net/manual/en/ds-stack.allocate.php