summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMichael Save <savetheinternet@tinyboard.org>2012-03-18 01:00:58 +1100
committerMichael Save <savetheinternet@tinyboard.org>2012-03-18 01:00:58 +1100
commit0c8941fc5b463c4d8225e314ffd5da517953f98a (patch)
tree2a554964062a4ac4ec3118987e8d55b2dfa9d507
parent7d3938458175f03d0ca864bd4d08bc7f03306581 (diff)
benchmark.php: Benchmark thumbnailing methods
-rwxr-xr-xtools/benchmark.php52
1 files changed, 52 insertions, 0 deletions
diff --git a/tools/benchmark.php b/tools/benchmark.php
new file mode 100755
index 00000000..60aba638
--- /dev/null
+++ b/tools/benchmark.php
@@ -0,0 +1,52 @@
+#!/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');
+ benchmark('imagick');
+ benchmark('convert');
+