相关疑难解决方法(0)

如何分析在Linux上运行的C++代码?

我有一个在Linux上运行的C++应用程序,我正在优化它.如何确定代码的哪些区域运行缓慢?

c++ unix profiling

1732
推荐指数
12
解决办法
49万
查看次数

最后的性能优化策略

这个网站上已经存在很多性能问题,但是我发现几乎所有这些都是特定于问题且相当狭窄的问题.几乎所有人都重复这些建议,以避免过早优化.

我们假设:

  • 代码已经正常工作
  • 所选择的算法对于问题的情况已经是最佳的
  • 已经测量了代码,并且已经隔离了违规的例程
  • 所有优化尝试也将被测量,以确保它们不会使事情变得更糟

我在这里寻找的是在一个关键算法中挤出最后几个百分点的策略和技巧,除此之外别无他法.

理想情况下,尝试使答案语言不可知,并在适用的情况下指出建议策略的任何缺点.

我将使用我自己的初步建议添加回复,并期待Stack Overflow社区可以想到的任何其他内容.

language-agnostic optimization performance

600
推荐指数
28
解决办法
8万
查看次数

为什么要避免使用JavaScript中的递增("++")和递减(" - ")运算符?

jslint工具的一个提示是:

++和 -
已知++(增量)和 - (减量)运算符通过鼓励过多的诡计来导致错误的代码.它们仅次于故障架构,可以实现病毒和其他安全威胁.有一个plusplus选项禁止使用这些运算符.

我知道像PHP这样的PHP结构$foo[$bar++]可能很容易导致一个错误,但是我无法找到一个更好的方法来控制循环而不是一个while( a < 10 ) do { /* foo */ a++; }for (var i=0; i<10; i++) { /* foo */ }.

jslint是否突出显示它们是因为有些类似的语言缺少" ++"和" --"语法或者处理方式不同,还是有其他理由可以避免我可能会丢失的" ++"和" --"?

javascript syntax jslint prefix-operator postfix-operator

348
推荐指数
12
解决办法
32万
查看次数

x + =比x = x + a快吗?

我正在阅读Stroustrup的"The C++ Programming Language",他说有两种方法可以向变量添加内容

x = x + a;
Run Code Online (Sandbox Code Playgroud)

x += a;
Run Code Online (Sandbox Code Playgroud)

他更喜欢,+=因为它最有可能更好地实施.我认为他的意思是它的工作速度也更快.
但它真的吗?如果它取决于编译器和其他东西,我该如何检查?

c++ performance operators

84
推荐指数
9
解决办法
1万
查看次数

x + = 1比x = x + 1更有效吗?

x = x + 1,x评估两次?如果是这样,这意味着什么x += 1,x只评估一次?两个表达式如何根据编译器中间代码进行评估?

例如,x++可能意味着:获取位置x,将内容加载x到寄存器中,并增加x内存中的值.

另外我读过,x += 1x它不是一个简单的变量,而是一个涉及数组的表达式时很有用.任何想法为什么会这样?

c performance increment

10
推荐指数
3
解决办法
1万
查看次数

0
推荐指数
1
解决办法
688
查看次数