static public function savedRuns( $offset = 0, $limit = 0 )
    {
        $runsList = array();
        $count = 0;

        if ( !is_dir( self::logDir() ) )
        {
            return array( $runsList, $count );
        }

        // nb: PHP_SCANDIR_SORT_DESCENDING === 1, but only defined since php 5.4.0
        foreach( scandir( self::logDir(), 1 ) as $file )
        {
            $fullfile = self::logDir() . "/" . $file;
            if ( is_file( $fullfile ) && substr( $file, -7 ) == '.xhprof' )
            {
                $count++;
                if ( $count >= $offset  && ( $limit <= 0 || count( $runsList ) <= $limit ) )
                {
                    $run = substr( $file, 0, -7 );
                    $runsList[$run] = array(
                        // start out by taking run time as file time (if info file is there, itwill overwrite this value)
                        'time' => filemtime( $fullfile )
                    );
                    if ( is_file( $infoFile = self::logDir() . "/$run.info" ) )
                    {
                        if ( is_array( $info = eZPerfLoggerApacheLogger::parseLogLine( file_get_contents( $infoFile ) ) ) )
                        {
                            $runsList[$run] = $info;
                        }
                    }
                }
            }
        }
        return array( $runsList, $count );
    }