Speeple » Join Speeple | People | Groups | Blogs | News

Speeple Core

Tagged Php

Page 1 of 1

  1. Compiling PHP – PHP Performance Optimization

    PHP like any other scripting or programming language can be optimized to improve performance. In this series of blog posts I hope to highlight the areas where PHP can be optimized. I won’t go into details of PHP output caching (which can of course lead to massive performance improvements) – mainly because after the initial cache PHP plays only a minor role. This series of posts will target dynamic PHP scripts where output caching (e.g. due to constantly changing data etc.) isn’t an option.

    Compiling PHP

    The performance of PHP is ultimately determined by the PHP interpreter itself. PHP is open source software written in the C programming language. Taking steps to make sure a fast binary is compiled is the first step to improving overall PHP performance.

    Continue Reading »

  2. PHP Argument Overload via func_num_args() and func_get_args()

    MySQL provides functionality for checking if a column or value is in a set, for example:

    -- x IN(set) Example:
    SELECT * FROM documents WHERE id IN(1, 20, 7, 18)
    
    -- x NOT IN(set) Example:
    SELECT * FROM documents WHERE id NOT IN(21, 5, 4, 13)
    

    Using PHP’s function overloading we can easily emulate this method in PHP:

    <?php
    function in() {
            if (func_num_args() < 2) return false; // Nothing to compare
    
            $args = array_flip(array_slice(func_get_args(), 1)); // Remove first array item, flip the array so fast key lookup can be used – bypasses slow loops
    
            return isset($args[func_get_arg(0)]); // Look up using array key – faster than using loops & less code
    }
    ?>
    

    Usage Examples:

    Continue Reading »

  3. Speeple NewsBot: ETag (If-None-Match) and Last-Modified (If-Modified-Since) Implemented

    To further improve the performance of the Speeple News “NewsBot” I have implemented support for ETag and Last-Modified HTTP headers. This basically means that only the HTTP headers will be retrieved rather than the full body content if the feed hasn’t changed since the last time NewsBot accessed the XML feed.

    This not only improves the efficiency fetching content for Speeple News, it also benefits webmasters and site owners because less bandwidth is used.

    Initial statistics shows that supporting HTTP ETag / Last-Modified headers along with handling gzip encoded content has reduced bandwidth costs by over 60%.

    Continue Reading »