Tag: Flamegraph

服务器端Swift的火焰图

火焰图是性能概要分析数据的强大可视化形式,通常用于帮助分析复杂应用程序的CPU使用率。 它们由布伦丹·格雷格(Brendan Gregg)推广,他拥有一个不错的网站,向他们解释了所有相关信息。 这是如何生成服务器端Swift应用程序的火焰图。 就我而言,我正在对Kitura进行性能分析,但是我认为该指南适用于任何服务器端Swift应用程序。 整个过程的大部分过程都是正确地设置您的系统-希望这些信息对我来说对其他人有用! 我正在使用Ubuntu 16.04(Xenial)。 我不会尝试使用任何较旧的版本,因为perf分析器正常工作可能很棘手,但是较新的版本应该没问题。 首先,您需要在apt安装中添加一些额外的Ubuntu软件包存储库-我们需要安装的某些软件包未包含在默认存储库中。 在/etc/apt/sources.list.d/ddebs.list添加三行: deb http://ddebs.ubuntu.com xenial主要受限宇宙multiverse deb http://ddebs.ubuntu.com xenial-updates主要受限制的宇宙multiverse deb http://ddebs.ubuntu.com xenial建议的主要受限宇宙multiverse 将Ubuntu调试符号签名密钥添加到您的受信任密钥中,并重新同步程序包索引文件: sudo apt-key adv –keyserver keyserver.ubuntu.com –recv-keys C8CAB6595FDFF622sudo apt-get更新 现在,您可以为特定的内核安装性能分析器: 须藤apt-get install linux-tools-$(uname -r) 您可以通过运行sudo perf record /bin/true来验证perf是否正常工作。 您应该看到类似以下内容: [性能记录:唤醒1次以写入数据] [性能记录:捕获并写入0.010 MB性能数据(4个样本)] (如果收到有关kptr_restrict的错误消息,请尝试允许访问内核地址映射: echo 0 | sudo tee /proc/sys/kernel/kptr_restrict )。 像Kitura这样的服务器端Swift应用程序通常需要一些额外的系统软件包。 您可以将它们安装在一个命令中: 须藤apt-get install clang […]