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

Speeple Core

Tagged Development

Page 1 of 3 »

  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. Speeple News Graphs

    A graph is now displayed for certain searches which are grouped by day or month. The graphs display the activity over a time period of 100 days or 100 months.

    The Speeple News graphs help outline when keywords were popular in the index, normally by showing a spike. This is most visible during sporting and seasonal events along with major world issues.

    Examples

    Continue Reading »

  3. 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 »

  4. Resource: Speeple News Statistics Page

    I’ve put together a source for Speeple News Statistics. The page provides overall statistics of the Speeple News service, including health statistics such as crawl rate and top sources grouped by domain and individual feeds.

    The stats cover news item totals, feed count, feed types and type version and content languages. The page is updated every 30 minutes.

  5. 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 »