是否有任何好的,免费的(或至少相当便宜的)至少可以与Visual Studio 2008 Professional集成的本机C++的分析器?
我查看了DevPartner社区版,但它们似乎只支持Visual Studio 2003和Visual Studio 2005.
如果没有那么好的免费/便宜的剖析器,我可以与VS一起工作,相对较小的摩擦力?
我正在寻找一个KCacheGrind替代品,或者至少是Mac OS X的二进制包?
我将使用KCacheGrind与XDebug for PHP,但Mac Os X在这里是正确的环境......
谢谢
编辑:我知道我可以使用MacPort,但我正在寻找这种痛苦安装的替代方案.
也许是"在mac方式"的东西
我试图解决一个更大的问题,我认为该程序的一个重要部分是花在低效计算上.
我需要计算给定数N,区间[P,Q],其中P是<=到N的最大斐波纳契数,而Q是> =到N的最小斐波纳契数.
目前,我正在使用地图来记录斐波纳契数的值.查询通常涉及搜索最多为N的所有斐波纳契数,并且它不是非常节省时间,因为它涉及大量的比较.
这种类型的查询将在我的程序中经常出现,我对可以改进查找的方式感兴趣,最好是使用子线性复杂性.
我试图使用命令行工具在Mac OS X配置文件的C/C++代码,我使用-pg与选项gcc来运行gprof在Linux上,但我似乎无法找到gprof在Mac上,即使我有这个页面的说明:其他命令行工具(iOS)或其他命令行工具(mac).
gprof:Produces execution profiles based on an execution analysis of a program.
Run Code Online (Sandbox Code Playgroud)
我安装的命令行工具,所以其他的命令行工具,如otool和atos可用.我用谷歌搜索这个页面(https://apple.stackexchange.com/questions/154289/installing-gprof-on-mac),说不gprof支持,但我不确定我什么时候有一个描述该工具的Apple doc ; 无论如何,我试图用来brew下载gprof,但它没有用.
我发现尝试在Mac上使用带有C++代码的gprof,但我没有输出instruments -t.我还在mac os x上发现了profiling c ++,但我不想打开Instruments,因为我想自动化一些进程并尝试保持跨平台系统.
gprof?我看到术语软件基准测试和分析有时可以互换,但据我的理解,这是一个微妙的差异.
两者都是按时间连接的.但是,虽然基准测试主要是确定可以与其他应用程序进行比较的特定速度分数,但分析可以为您提供有关应用程序在大部分时间(或周期数)上花费的确切信息.
对我来说,它总是如下:集成测试是基准测试和单元测试对应的分析测试的对应物.但微基准测试如何适用于此?
有人在这里说:
分析和基准测试是相同硬币的另一面,分析可帮助您缩小到最有用的优化位置,基准测试可让您轻松隔离优化并对它们进行交叉比较.
另一个人在这里谈到分析:
分析在不同时间意味着不同的东西.有时它意味着衡量绩效.有时它意味着诊断内存泄漏.有时它意味着可以了解多线程或其他低级别活动.
那么,这些技术在概念上是不同的还是不是那种黑白?
我即将使用JProfiler和Eclipse Tptp进行java应用程序的研讨会分析,性能调优,内存分析,内存泄漏检测等. 我需要一些练习,我可以提供给参与者,他们可以:使用工具来分析发现问题:瓶颈,内存泄漏,次优代码等.我相信有丰富的经验和现实生活中的例子.
问题和解决方案不应过于复杂; 应该可以在几分钟内解决它们,最坏的情况是几小时.一些有趣的锻炼领域:
理想情况下,练习应包括样本未优化代码和解决方案代码.
我正在编写一个非常重要的性能代码部分,我有一个关于用函数指针数组替换case语句(或if语句)的疯狂想法.
让我来证明一下; 这是正常版本:
while(statement)
{
/* 'option' changes on every iteration */
switch(option)
{
case 0: /* simple task */ break;
case 1: /* simple task */ break;
case 2: /* simple task */ break;
case 3: /* simple task */ break;
}
}
Run Code Online (Sandbox Code Playgroud)
这里是"回调函数"版本:
void task0(void) {
/* simple task */
}
void task1(void) {
/* simple task */
}
void task2(void) {
/* simple task */
}
void task3(void) {
/* simple task */
}
void (*task[4]) (void); …Run Code Online (Sandbox Code Playgroud) 我在 VSCode 扩展、插件、google 中进行了一些搜索,但似乎没有给我提供与标准 VS 提供的类似工具。
有一个针对大型 VS 的完整代码分析器列表(仅 .NET 和托管 C++)。
使用“真正的”VisualStudio,您可以拥有非常先进的分析工具,支持 MSVS 支持的多种语言。
但我无法获得 VSCode 的任何信息。(是的,我找到了这个答案,但在我看来太复杂了。如果有任何带有 GUI 的东西,类似于 JavaScript 内置分析器,那就太棒了:)
请问有人知道 C#/C++/Java 的这种可能性吗?
目标:Linux 服务器,嵌入式 Linux,但我也可以在 Windows 上运行(仅 C# 代码)。
c# c++ performance-testing memory-profiling visual-studio-code
profiling ×6
c++ ×4
optimization ×3
c ×2
.net ×1
algorithm ×1
benchmarking ×1
c# ×1
callback ×1
cuda ×1
gprof ×1
if-statement ×1
java ×1
kcachegrind ×1
macos ×1
math ×1
memory-leaks ×1
performance ×1
php ×1
profiler ×1
xdebug ×1