Skip to content

Instantly share code, notes, and snippets.

@lilith
Last active June 24, 2016 22:55
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save lilith/f976fac8b53f41d69224c56ac15c3e3e to your computer and use it in GitHub Desktop.
Save lilith/f976fac8b53f41d69224c56ac15c3e3e to your computer and use it in GitHub Desktop.
This version of Imageflow was used: https://github.com/imazen/imageflow/commit/80d38f8c471d60a89dfebe9543fb364b99c7743e
The benchmark script is here: https://github.com/imazen/imageflow/blob/80d38f8c471d60a89dfebe9543fb364b99c7743e/wrappers/server/bench_single_thread.sh
./bench_single_thread.sh
This benchmark is for ubuntu 14.04.
Please run the following commands first for more accurate results
mkdir bench_in
mkdir bench_out
sudo mount -t tmpfs -o size=512M tmpfs bench_in
sudo mount -t tmpfs -o size=512M tmpfs bench_out
You may also need to sudo apt-get install parallel
and sudo apt-get install linux-tools-common linux-tools-generic
on OS X, you will need to edit this script to use time instead of perf stat
Compiling imageflow-server v0.1.0 (file:///home/n/Documents/imazen/imageflow/wrappers/server)
src/bin/flow-proto1.rs:6:5: 6:18 warning: unused import, #[warn(unused_imports)] on by default
src/bin/flow-proto1.rs:6 use std::fs::File;
^~~~~~~~~~~~~
src/bin/flow-proto1.rs:7:5: 7:19 warning: unused import, #[warn(unused_imports)] on by default
src/bin/flow-proto1.rs:7 use std::io::Write;
^~~~~~~~~~~~~~
Version: ImageMagick 6.9.3-7 Q16 x86_64 2016-05-04 http://www.imagemagick.org
Copyright: Copyright (C) 1999-2016 ImageMagick Studio LLC
License: http://www.imagemagick.org/script/license.php
Features: Cipher DPC HDRI Modules OpenMP
Delegates (built-in): bzlib djvu fontconfig freetype gvc jbig jng jpeg lcms lqr ltdl lzma openexr pangocairo png tiff webp wmf x xml zlib
flow-proto1 0.0.1
libvips 8.3.1-Wed May 4 12:02:34 MDT 2016
File ‘u1.jpg’ already there; not retrieving.
mkdir: cannot create directory ‘bench_out’: File exists
mkdir: cannot create directory ‘bench_in’: File exists
Using imageflow to thumbnail
Performance counter stats for '../flow-proto1 -i c1.jpg -o ../bench_out/1_200x200.jpg -w 200 -h 200':
132.509766 task-clock (msec) # 0.996 CPUs utilized
11 context-switches # 0.083 K/sec
4 cpu-migrations # 0.030 K/sec
131 page-faults # 0.989 K/sec
506,220,228 cycles # 3.820 GHz
0 stalled-cycles-frontend # 0.00% frontend cycles idle
0 stalled-cycles-backend # 0.00% backend cycles idle
1,037,933,409 instructions # 2.05 insns per cycle
167,858,228 branches # 1266.761 M/sec
5,172,052 branch-misses # 3.08% of all branches
0.133037757 seconds time elapsed
Command being timed: "../flow-proto1 -i c1.jpg -o ../bench_out/1_200x200.jpg -w 200 -h 200"
User time (seconds): 0.12
System time (seconds): 0.00
Percent of CPU this job got: 98%
Elapsed (wall clock) time (h:mm:ss or m:ss): 0:00.13
Average shared text size (kbytes): 0
Average unshared data size (kbytes): 0
Average stack size (kbytes): 0
Average total size (kbytes): 0
Maximum resident set size (kbytes): 9784
Average resident set size (kbytes): 0
Major (requiring I/O) page faults: 0
Minor (reclaiming a frame) page faults: 149
Voluntary context switches: 1
Involuntary context switches: 12
Swaps: 0
File system inputs: 0
File system outputs: 0
Socket messages sent: 0
Socket messages received: 0
Signals delivered: 0
Page size (bytes): 4096
Exit status: 0
Using libvips to thumbnail
Performance counter stats for 'vipsthumbnail --linear --size=200x200 --output=../bench_out/1_vips_200x200.jpg c1.jpg':
367.322957 task-clock (msec) # 1.003 CPUs utilized
71 context-switches # 0.193 K/sec
14 cpu-migrations # 0.038 K/sec
6,397 page-faults # 0.017 M/sec
1,416,952,393 cycles # 3.858 GHz
0 stalled-cycles-frontend # 0.00% frontend cycles idle
0 stalled-cycles-backend # 0.00% backend cycles idle
3,987,576,919 instructions # 2.81 insns per cycle
374,001,277 branches # 1018.181 M/sec
5,347,499 branch-misses # 1.43% of all branches
0.366144377 seconds time elapsed
Command being timed: "vipsthumbnail --linear --size=200x200 --output=../bench_out/1_vips_200x200.jpg c1.jpg"
User time (seconds): 0.37
System time (seconds): 0.01
Percent of CPU this job got: 100%
Elapsed (wall clock) time (h:mm:ss or m:ss): 0:00.38
Average shared text size (kbytes): 0
Average unshared data size (kbytes): 0
Average stack size (kbytes): 0
Average total size (kbytes): 0
Maximum resident set size (kbytes): 34952
Average resident set size (kbytes): 0
Major (requiring I/O) page faults: 0
Minor (reclaiming a frame) page faults: 6419
Voluntary context switches: 33
Involuntary context switches: 34
Swaps: 0
File system inputs: 0
File system outputs: 0
Socket messages sent: 0
Socket messages received: 0
Signals delivered: 0
Page size (bytes): 4096
Exit status: 0
Using ImageMagick to thumbnail
Performance counter stats for 'convert c1.jpg -limit thread 1 -set colorspace sRGB -colorspace RGB -filter Robidoux -resize 200x200 -colorspace sRGB ../bench_out/1_magick_200x200.jpg':
1858.142059 task-clock (msec) # 0.998 CPUs utilized
159 context-switches # 0.086 K/sec
5 cpu-migrations # 0.003 K/sec
4,467 page-faults # 0.002 M/sec
7,003,690,152 cycles # 3.769 GHz
0 stalled-cycles-frontend # 0.00% frontend cycles idle
0 stalled-cycles-backend # 0.00% backend cycles idle
12,100,982,591 instructions # 1.73 insns per cycle
1,812,822,570 branches # 975.610 M/sec
6,305,101 branch-misses # 0.35% of all branches
1.862236678 seconds time elapsed
Command being timed: "convert c1.jpg -limit thread 1 -set colorspace sRGB -colorspace RGB -filter Robidoux -resize 200x200 -colorspace sRGB ../bench_out/1_magick_200x200.jpg"
User time (seconds): 1.78
System time (seconds): 0.02
Percent of CPU this job got: 99%
Elapsed (wall clock) time (h:mm:ss or m:ss): 0:01.81
Average shared text size (kbytes): 0
Average unshared data size (kbytes): 0
Average stack size (kbytes): 0
Average total size (kbytes): 0
Maximum resident set size (kbytes): 546040
Average resident set size (kbytes): 0
Major (requiring I/O) page faults: 0
Minor (reclaiming a frame) page faults: 4484
Voluntary context switches: 1
Involuntary context switches: 155
Swaps: 0
File system inputs: 0
File system outputs: 0
Socket messages sent: 0
Socket messages received: 0
Signals delivered: 0
Page size (bytes): 4096
Exit status: 0
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment