Commit ad546f93 authored by Brian Tiger Chow's avatar Brian Tiger Chow

feat(integration_test) add make task to perform benchmarks in docker env

pprof cannot be used reliably on OS X. This provides two make tasks to
collect and analyze profiling data.

To run profiling in a dockerized linux environment...
```
make // or `make collect`
```

To analyze results on host machine...
```
make analyze
```

@jbenet @whyrusleeping
parent ca32a833
# This Makefile provides a way to really simple way to run benchmarks in a
# docker environment.
IMAGE = jbenet/go-ipfs-bench
CONTAINER = go-ipfs-bench
PACKAGE = epictest
PACKAGE_DIR = epictest
BUILD_DIR = ./build/bench
CONTAINER_WORKING_DIR = /go
CPU_PROF_NAME = cpu.out
all: collect
collect: clean build_image run_profiler cp_pprof_from_container
cp_pprof_from_container:
docker cp $(CONTAINER):$(CONTAINER_WORKING_DIR)/$(CPU_PROF_NAME) $(BUILD_DIR)
docker cp $(CONTAINER):$(CONTAINER_WORKING_DIR)/$(PACKAGE).test $(BUILD_DIR)
build_image:
cd .. && docker build -t $(IMAGE) .
run_profiler:
docker run --name $(CONTAINER) -it --entrypoint go $(IMAGE) test ./src/github.com/jbenet/go-ipfs/$(PACKAGE_DIR) --cpuprofile=$(CPU_PROF_NAME)
clean:
docker rm $(CONTAINER) || true
rm -rf $(BUILD_DIR)
analyze:
go tool pprof $(BUILD_DIR)/$(PACKAGE).test $(BUILD_DIR)/$(CPU_PROF_NAME)
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment