Files
swift-aws-lambda-runtime/scripts/linux_performance_setup.sh
T
tomer doron b8a6466577 add docker support (#15)
motivation: enable CI

changes: add docker files support for ubuntu 16.04 and 18.04 and swift 5.0 and 5.1

note that eventyally this will need to move to AL2 docker images, but we dont have official ones yet
2020-03-06 18:43:16 -08:00

45 lines
1.5 KiB
Bash
Executable File

#!/bin/bash
##===----------------------------------------------------------------------===##
##
## This source file is part of the SwiftAwsLambda open source project
##
## Copyright (c) 2020 Apple Inc. and the SwiftAwsLambda project authors
## Licensed under Apache License v2.0
##
## See LICENSE.txt for license information
## See CONTRIBUTORS.txt for the list of SwiftAwsLambda project authors
##
## SPDX-License-Identifier: Apache-2.0
##
##===----------------------------------------------------------------------===##
# docker run --cap-add SYS_ADMIN -it -v `pwd`:/code -w /code swift:5.1 bash
apt-get update
apt-get install -y vim htop strace linux-tools-common linux-tools-generic
cd /usr/bin
rm -rf perf
ln -s /usr/lib/linux-tools/4.15.0-88-generic/perf perf
cd -
cd build
git clone https://github.com/brendangregg/FlameGraph.git
cd -
# build the code in relase mode with debug symbols
# swift build -c release -Xswiftc -g
#
# run the server
# (.build/release/MockServer) &
#
# strace
# export MAX_REQUESTS=10000
# strace -o .build/strace-c-string-$MAX_REQUESTS -c .build/release/SwiftAwsLambdaStringSample
# strace -o .build/strace-ffftt-string-$MAX_REQUESTS -fftt .build/release/SwiftAwsLambdaStringSample
#
# perf
# export MAX_REQUESTS=10000
# perf record -o .build/perf-$MAX_REQUESTS.data -g .build/release/SwiftAwsLambdaStringSample dward
# perf script -i .build/perf-$MAX_REQUESTS.data | .build/FlameGraph/stackcollapse-perf.pl | swift-demangle | .build/FlameGraph/flamegraph.pl > .build/flamegraph-$MAX_REQUESTS.svg