|
- #!/usr/bin/php
- <?php
- /*
- * benchmark.php - benchmarks thumbnailing methods
- *
- */
-
- require dirname(__FILE__) . '/inc/cli.php';
- require 'inc/image.php';
-
- // move back to this directory
- chdir(dirname(__FILE__));
-
- if(count($argv) != 2)
- die("Usage: {$argv[0]} [file]\n");
-
- $file = $argv[1];
- $extension = strtolower(substr($file, strrpos($file, '.') + 1));
- $out = tempnam($config['tmp'], 'thumb');
- $count = 300;
-
- function benchmark($method) {
- global $config, $file, $extension, $out, $count;
-
- $config['thumb_method'] = $method;
-
- printf("Method: %s\nThumbnailing %d times... ", $method, $count);
-
- $start = microtime(true);
- for($i = 0; $i < $count; $i++) {
- $image = new Image($file, $extension);
- $thumb = $image->resize(
- $config['thumb_ext'] ? $config['thumb_ext'] : $extension,
- $config['thumb_width'],
- $config['thumb_height']
- );
-
- $thumb->to($out);
- $thumb->_destroy();
- $image->destroy();
- }
- $end = microtime(true);
-
- printf("Took %.2f seconds (%.2f/second; %.2f ms)\n", $end - $start, $rate = ($count / ($end - $start)), 1000 / $rate);
-
- unlink($out);
- }
-
- benchmark('gd');
- if (extension_loaded('imagick')) {
- benchmark('imagick');
- } else {
- echo "Imagick extension not loaded... skipping.\n";
- }
- benchmark('convert');
- benchmark('gm');
- becnhmark('convert+gifsicle');
|