【问题标题】:Intel VTune / Memory Leak Detector -- what additional feature does Valgrind provideIntel VTune / Memory Leak Detector——Valgrind 提供了哪些附加功能
【发布时间】:2022-01-23 09:54:34
【问题描述】:

考虑以下代码:

int main() {
    for (int i = 0; i < 10; i++)
        int *a = new int[10];
}

英特尔 VTune Profiler/Inspector 现在是英特尔的免费套件,可用于 Windows 和 Linux(以前,完整版仅可免费用于学术非商业用途)。作为其中一部分的内存泄漏检测器能够找出泄漏线:

同样,该套件提供算法热点检测,并为矢量化和并行化提供建议。它根据算法是否受内存限制和处理器限制提供输入。

鉴于此,我想知道 valgrind 提供了哪些 VTune Profiler 未提供的功能。我知道 valgrind 带有 Memcheck、Cachegrind、Callgrind 等,但在我看来,这些都可以在 VTune 中使用。此外,VTune 可集成到 Visual Studio IDE 中。

【问题讨论】:

  • ::sigh:: 我与 Intel V Tune 无关。我真的很想知道 Valgrind 是否有我错过的功能。小测验:您如何区分广告和真正的问题?有没有我没有正确使用的形容词/动词?我的OP的语气是否遇到了错误的方式?令人失望的是,生活在现实世界中的客观开发人员希望使用最好的工具来提高他们的工作效率,现在不得不担心他们的问题是如何被提出来的。
  • 这与 C++ 有什么关系?

标签: c++ profiling valgrind intel-vtune


【解决方案1】:

Valgrind 适用于多种非英特尔架构:ARM、POWER、MIPS。我不知道 VTune 在 AMD 硬件上的效果如何。

Valgrind 不能在 Windows 上原生运行,但它可以在 FreeBSD、Solaris 和(不太好)macOS 上运行。

VTune 和 Valgrind 功能有一些重叠,但并不完全相同。 Valgrind 不使用性能计数器。我对 Inspector 没有任何经验,但它似乎大致相当于 memcheck 和 drd/helgrind。

最后,Valgrind 可以在没有任何特殊权限的情况下构建和使用,而 afaik VTune 需要管理员权限才能安装并且对运行有更多限制。

【讨论】:

  • 我最终购买了一台纯 linux 机器,只是为了实际运行 valgrind,因为我知道它不能在 Windows 上运行,而且当时 Windows 上没有足够的免费工具来检测泄漏。我相信 valgrind 提供的另一个功能是通过 KCachegrind 的调用图。这在 VTune 中似乎很难获得。事实上,你在 Windows 上对 Valgrind 的看法是正确的。一种解决方法是 Windows 上的 WSL。然而,KCachegrind 似乎是一个基于 gui 的工具,在 WSL/Windows 上是不可能的。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2014-04-29
  • 1970-01-01
  • 2019-07-13
  • 1970-01-01
  • 1970-01-01
  • 2022-12-03
  • 2012-03-25
相关资源
最近更新 更多