-
Notifications
You must be signed in to change notification settings - Fork 141
/
Copy pathbench.sh
executable file
·102 lines (75 loc) · 3.35 KB
/
bench.sh
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
#!/bin/bash
echo 'This benchmark is for ubuntu 14.04. '
echo 'Please run the following commands first for more accurate results'
echo mkdir bench_in
echo mkdir bench_out
echo sudo mount -t tmpfs -o size=512M tmpfs bench_in
echo sudo mount -t tmpfs -o size=512M tmpfs bench_out
echo
echo You may also need to sudo apt-get install parallel
echo and sudo apt-get install linux-tools-common linux-tools-generic
echo
echo on OS X, you will need to edit this script to use time instead of perf stat
echo And run brew install parallel
cargo build --release
cp target/release/flow-proto1 .
convert --version
./flow-proto1 --version
vipsthumbnail --vips-version
wget -nc https://s3-us-west-2.amazonaws.com/imageflow-resources/test_inputs/u1.jpg
mkdir bench_out
mkdir bench_in
rm bench_out/*.jpg
rm bench_in/*.jpg
export COUNT=32
for i in `seq 1 $COUNT`;
do
cp u1.jpg bench_in/c$i.jpg
done
export TIME_COMMAND=time
#comment out this line for
export TIME_COMMAND="perf stat"
cd bench_in
echo Using imageflow to thumbnail $COUNT images in parallel
$TIME_COMMAND parallel '../flow-proto1 -i {} -o ../bench_out/{.}_200x200.jpg -w 200 -h 200' ::: *.jpg
echo
echo
echo Using libvips to thumbnail $COUNT images in parallel
$TIME_COMMAND parallel 'vipsthumbnail --linear --size=200x200 --output=../bench_out/{.}_vips_200x200.jpg {}' ::: *.jpg
echo
echo
echo Using ImageMagick to thumbnail $COUNT images in parallel
$TIME_COMMAND parallel 'convert {} -set colorspace sRGB -colorspace RGB -filter Robidoux -resize 200x200 -colorspace sRGB ../bench_out/{.}_magick_200x200.jpg' ::: *.jpg
echo
echo
echo Using ImageMagick ideal settings to thumbnail $COUNT images in parallel
$TIME_COMMAND parallel 'convert {} -set colorspace sRGB -colorspace RGB -filter Mitchell -distort Resize 200x200 -colorspace sRGB ../bench_out/{.}_magick_ideal_200x200.jpg' ::: *.jpg
echo
echo
echo Using imageflow to create 2000px versions of $COUNT images in parallel
$TIME_COMMAND parallel '../flow-proto1 -i {} -o ../bench_out/{.}_2000x2000.jpg -w 2000 -h 2000' ::: *.jpg
echo
echo
echo Using libvips to create 2000px versions of $COUNT images in parallel
$TIME_COMMAND parallel 'vipsthumbnail --linear --size=2000x2000 --output=../bench_out/{.}_vips_2000x2000.jpg {}' ::: *.jpg
echo
echo
echo Using ImageMagick to create 2000px versions of $COUNT images in parallel
$TIME_COMMAND parallel 'convert {} -set colorspace sRGB -colorspace RGB -filter Robidoux -resize 2000x2000 -colorspace sRGB ../bench_out/{.}_magick_2000x2000.jpg' ::: *.jpg
echo
echo
echo Using ImageMagick ideal settings to create 2000px versions of COUNT images in parallel
$TIME_COMMAND parallel 'convert {} -set colorspace sRGB -colorspace RGB -filter Mitchell -distort Resize 2000x2000 -colorspace sRGB ../bench_out/{.}_magick_ideal_2000x2000.jpg' ::: *.jpg
echo
echo
echo Using imageflow wrong on $COUNT images in parallel. 200x200
$TIME_COMMAND parallel '../flow-proto1 -i {} --incorrectgamma -o ../bench_out/{.}_200x200_wrong.jpg -w 200 -h 200' ::: *.jpg
echo
echo
echo Using libvips wrong on $COUNT images in parallel. 200x200
$TIME_COMMAND parallel 'vipsthumbnail --size=200x200 --output=../bench_out/{.}_vips_200x200_wrong.jpg {}' ::: *.jpg
echo
echo
echo Using ImageMagick wrong on $COUNT images in parallel. 200x200
$TIME_COMMAND parallel 'convert {} -filter Robidoux -resize 200x200 ../bench_out/{.}_magick_200x200_wrong.jpg' ::: *.jpg
cd ..