Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with
or
.
Download ZIP
Fetching contributors…

Cannot retrieve contributors at this time

161 lines (119 sloc) 6.014 kB
##############################################################################
## Benchmarks
##############################################################################
## Config
#########
GHC6 = ghc-6.12.3
GHC7 = ghc-7.0.2
GHC = $(GHC7)
GHCI = ghci-6.12.3
## All benchmarks
#################
bench-all: bench-compression bench-string-and-text bench-throughput bench-chunked-write
clean-bench-all:
rm -f benchmarks/*.o benchmarks/*.hi
rm -f benchmarks/Throughput/*.o benchmarks/Throughput/*.hi
rm -f Blaze/ByteString/Builder.o Blaze/ByteString/Builder.hi
rm -f Blaze/ByteString/Builder/*.o Blaze/ByteString/Builder/*.hi
rm -f Blaze/ByteString/Builder/Internal/*.o Blaze/ByteString/Builder/Internal/*.hi
rm -f Blaze/ByteString/Builder/Char/*.o Blaze/ByteString/Builder/Char/*.hi
rm -f Blaze/ByteString/Builder/Html/*.o Blaze/ByteString/Builder/Html/*.hi
rm -f Blaze/ByteString/Builder/Core/*.o Blaze/ByteString/Builder/Core/*.hi
rm -f benchmarks/Compression benchmarks/StringAndText benchmarks/BenchThroughput benchmarks/ChunkedWrite benchmarks/BlazeVsBinary
rm -f Criterion/*.o Criterion/*.hi
rm -f Criterion/ScalingBenchmark
## Individual benchmarks
########################
# utf8 writing to a file
utf8-io:
$(GHC) --make -O2 -fforce-recomp -main-is Utf8IO benchmarks/Utf8IO.hs
time ./benchmarks/Utf8IO via-text 100000000 /dev/null
time ./benchmarks/Utf8IO text 100000000 /dev/null
time ./benchmarks/Utf8IO blaze 100000000 /dev/null
time ./benchmarks/Utf8IO base 100000000 /dev/null
time ./benchmarks/Utf8IO utf8-light 100000000 /dev/null
time ./benchmarks/Utf8IO utf8-string 100000000 /dev/null
# 'blaze-builder' vs. 'binary' comparision
bench-blaze-vs-binary:
$(GHC) --make -O2 -fforce-recomp -main-is BlazeVsBinary benchmarks/BlazeVsBinary.hs
./benchmarks/BlazeVsBinary --resamples 10000
# throughput benchmarks: interactive development
ghci-throughput: benchmarks/Throughput/CBenchmark.o
$(GHCI) -O2 -fforce-recomp -ibenchmarks -main-is BenchThroughput benchmarks/Throughput/CBenchmark.o benchmarks/BenchThroughput.hs
bench-throughput: benchmarks/Throughput/CBenchmark.o
$(GHC) --make -O2 -fforce-recomp -fliberate-case-threshold=1000 -ibenchmarks -main-is BenchThroughput benchmarks/Throughput/CBenchmark.o benchmarks/BenchThroughput.hs
./benchmarks/BenchThroughput 100
benchmarks/Throughput/CBenchmark.o: benchmarks/Throughput/CBenchmark.c
gcc -O3 -c $< -o $@
# Benchmark benefit of serializing several list elements at once
bench-chunked-write:
$(GHC) --make -O2 -fforce-recomp -main-is ChunkedWrite benchmarks/ChunkedWrite.hs
./benchmarks/ChunkedWrite --resamples 10000
core-chunked-write:
ghc-core -- --make -O2 -fforce-recomp -main-is ChunkedWrite benchmarks/ChunkedWrite.hs
# Benchmark best serialization techniques for 'String' and 'Text'
bench-string-and-text:
$(GHC) --make -O2 -fforce-recomp -ibenchmarks -main-is StringAndText StringAndText
echo $(GHC)
./benchmarks/StringAndText --resamples 10000
# Benchmark benefit of compaction before compression
bench-compression:
$(GHC) --make -O2 -fforce-recomp -ibenchmarks -main-is Compression Compression
./benchmarks/Compression --resamples 10000
# Benchmark the use of unboxed continuation calls
bench-unboxed-append:
$(GHC) --make -O2 -fforce-recomp -ibenchmarks -main-is UnboxedAppend UnboxedAppend
./benchmarks/UnboxedAppend --resamples 10000
# Core of the use of unboxed continuation calls
core-unboxed-append:
ghc-core -- --make -O2 -fforce-recomp -main-is UnboxedAppend benchmarks/UnboxedAppend.hs
# Benchmark the cost of the Put monad vs. the Builder monoid
bench-put-vs-builder:
$(GHC) --make -O2 -fforce-recomp -ibenchmarks -main-is FastPut FastPut
./benchmarks/FastPut --resamples 10000
# Benchmark the cost/benefit of a more general write type
bench-bounded-write:
$(GHC7) --make -O2 -fforce-recomp -ibenchmarks -main-is BoundedWrite BoundedWrite
./benchmarks/BoundedWrite --resamples 10000
core-bounded-write:
ghc-core -- --make -O2 -fforce-recomp -main-is BoundedWrite benchmarks/BoundedWrite.hs
# Benchmark the benefit of using a packed representation for the buffer range
bench-buffer-range:
$(GHC) --make -O2 -fforce-recomp -ibenchmarks -main-is BuilderBufferRange BuilderBufferRange
./benchmarks/BuilderBufferRange --resamples 10000
# Benchmark improvements to lazy bytestring functions
bench-lazy-bytestring:
$(GHC) --make -O2 -fforce-recomp -ibenchmarks -main-is LazyByteString LazyByteString
./benchmarks/LazyByteString --resamples 10000
core-lazy-bytestring:
ghc-core -- --make -O2 -fforce-recomp -ibenchmarks -main-is LazyByteString LazyByteString
# Benchmark benefit of compaction before compression
bench-server:
$(GHC) --make -O2 -ibenchmarks -main-is BenchmarkServer BenchmarkServer
# ./benchmarks/BenchmarkServer --resamples 10000
./benchmarks/BenchmarkServer 9999 100000 +RTS -s&
ab -n 1000 localhost:9999/lbs
curl localhost:9999/kill > /dev/null 2>&1
##############################################################################
## Plots
##############################################################################
plot-all:
$(GHC) --make -O2 -fforce-recomp -main-is Criterion.ScalingBenchmark Criterion.ScalingBenchmark
./Criterion/ScalingBenchmark --resamples 10000
##############################################################################
## Tests
##############################################################################
test:
$(GHC) --make -fforce-recomp -O2 -itests -main-is Tests Tests
./tests/Tests
clean-tests:
rm -f tests/Tests tests/*.o tests/*.hi
ghci-llvm-segfault:
$(GHCI) -itests -main-is LlvmSegfault tests/LlvmSegfault
test-llvm-segfault:
ghc-7.0.0.20100924 --make -fllvm -itests -main-is LlvmSegfault tests/LlvmSegfault
./tests/LlvmSegfault
##############################################################################
## All inclusive targets
##############################################################################
clean: clean-tests clean-bench-all
Jump to Line
Something went wrong with that request. Please try again.