summaryrefslogtreecommitdiff
path: root/tools/benchmark.php
diff options
context:
space:
mode:
authorczaks <marcin@6irc.net>2013-07-02 22:45:52 -0400
committerczaks <marcin@6irc.net>2013-07-02 22:45:52 -0400
commit47640a0ce872038110ff011c22bf9e0b557aa67e (patch)
tree63c64370f57145357e3bddaf477faab8b0279179 /tools/benchmark.php
parentfe1e07f1bfa818b515d10b93588a1397b3f76b78 (diff)
tools/: move cli utils from tinyboard-tools to tinyboard repo
Diffstat (limited to 'tools/benchmark.php')
-rw-r--r--tools/benchmark.php52
1 files changed, 52 insertions, 0 deletions
diff --git a/tools/benchmark.php b/tools/benchmark.php
new file mode 100644
index 00000000..8c97364c
--- /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');
+