如何分析指针锯齿的性能影响
How can I profile the performance effects of pointer aliasing?
我的代码使用了大量重复的、主要是代数运算,这些运算适用于 MATLAB/FORTRAN 风格的向量运算。
我一直在考虑切换到std::valarray甚至Blitz++来利用这一点。但是在进行切换之前,我如何分析造成C++和FORTRAN之间性能差距的主要因素之一(指针混叠)对代码性能的影响程度,而不是声明所有限制并测试差异。
Visual Studio 2012/2013是否提供了实现此目的的方法?也许是不同的 IDE?
C/C++ 语言没有优化,在做数学事情时表现得不是很好。对于这些操作,我只建议尝试更改语言,或者,如果您真的想继续使用 c/c++,请格外小心地编写。不同的语言被指定以最好的方式做他们所做的事情,但它几乎从来不是同一件事。
据我所知,没有办法更好地优化C/C++中大多数已经存在的功能,尤其是非标准包(boost),因为它们被认为尽可能简单。调试包也过载了调试函数,因此它们速度较慢,但我也看到一些具有安全检查的发布函数,例如"对象是否属于我"或"订阅者超出范围检查"。如果这是关于原子函数,如别名,自动定位器,其他指针类型或类似的东西,它们再好不过了,并且它们尽可能地工作。
你也可以尝试告诉编译器你想要更多的压缩级别,如果可能的话,这可能会加快速度,但正如我之前所说,使用为数学制作的语言来做数学。 最终,如果您可以从 fortran 或其他语言制作 asm 对象,则可以将此文件链接到 c/c++ 中的代码。
相关文章:
- 删除一个线程上有数百万个字符串的大型哈希映射会影响另一个线程的性能
- 在容量内调整矢量大小时的性能影响
- 未达到的情况会影响开关外壳性能
- 数组中的不同浮点值会影响性能 10 倍 - 为什么?
- 为 lambda 分配名称会影响性能吗?
- 通过默认复制构造函数比较 C++ 字符串是否会影响性能,原因为何?
- 每个帧的参考中都有多少性能影响
- C++:if 内部循环的性能影响
- C :对输入验证函数进行编程的性能影响可以对其进行编程,而每次都可以将其编程
- GSL 的预期 (cond) 对运行时施加的性能影响是什么?
- VS2005调试模式和发布模式之间存在巨大的性能影响
- 如何分析指针锯齿的性能影响
- 指针和性能影响
- notify_one性能影响
- 可变长度阵列性能影响 (C/C++)
- 包含每个标头是否有任何性能影响
- 在'for-loop'中使用'break'的性能影响
- 当RVO显示最大的性能影响时
- signal():任何性能影响
- 解引用字符串迭代器和性能影响