首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >有什么方法在WSL下运行perf吗?

有什么方法在WSL下运行perf吗?
EN

Stack Overflow用户
提问于 2020-02-15 08:36:18
回答 5查看 19.5K关注 0票数 31

当我想在WSL下运行perf时,我遇到了以下问题:

警告:内核4.4.0-18362找不到perf 您可能需要为这个特定的内核安装以下软件包: linux-tools-4.4.0-18362-Microsoft linux-cloud-tools-4.4.0-18362-Microsoft 您还可能希望安装下列软件包之一以保持最新: linux工具-Microsoft linux云工具-Microsoft

但我找不到名为linux-tools-4.4.0-18362-Microsoftlinux-cloud-tools-4.4.0-18362-Microsoft的包。我想包名是自动生成的。

我还试图在码头集装箱中使用perf。但是,docker容器使用与主机相同的内核。

有什么方法在WSL下运行perf吗?

我听说perf可以在WSL2中使用。但是在升级到WSL2之后,它显示了类似的错误消息:

警告:未为内核4.19.84找到perf -microsoft 您可能需要为这个特定的内核安装以下软件包: linux-工具-4.19.84-微软-标准linux-云-工具-4.19.84-微软-标准 您还可能希望安装下列软件包之一以保持最新: linux.工具.标准linux.云工具.标准

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2020-02-18 08:46:30

警告:未为内核4.19.84找到perf -microsoft

因为WSL2使用自定义的Linux内核。它的源代码可以在这里找到microsoft/WSL2-Linux内核。我们必须从它编译perf工具。

操作步骤

  • 安装所需的构建包。如果在WSL2中使用Ubuntu,这是必需的命令:
代码语言:javascript
运行
复制
sudo apt install build-essential flex bison libssl-dev libelf-dev
  • 克隆WSL2 Linux内核存储库:
代码语言:javascript
运行
复制
git clone --depth=1 https://github.com/microsoft/WSL2-Linux-Kernel.git
  • 转到perf文件夹并编译它:
代码语言:javascript
运行
复制
cd WSL2-Linux-Kernel/tools/perf
make

perf可执行文件将位于该文件夹中。

票数 59
EN

Stack Overflow用户

发布于 2020-12-13 13:13:38

您可以安装linux-tools-generic

代码语言:javascript
运行
复制
apt install linux-tools-generic

然后使用install /usr/lib/linux-tools/<linux-version>-generic/perf运行/usr/lib/linux-tools/<linux-version>-generic/perf

有些工具,如flamegraph,将使用环境变量PERF作为perf路径。

代码语言:javascript
运行
复制
PERF=/usr/lib/linux-tools/<linux-version>-generic/perf flamegraph -- my_program
票数 27
EN

Stack Overflow用户

发布于 2022-03-09 16:30:36

接受的答案是有效的。但是,缺少一些功能。

为了获得有用的信息,我必须安装下面的库,然后再运行make

  • libbabeltrace-dev
  • libunwind-dev
  • libdw-dev
  • binutils-dev
  • libiberty-dev

我不确定是否所有这些都是必要的。然而,这些都足以使cargo-flamegraph (我的usecase)工作。

票数 7
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/60237123

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档