Tag: 优化

什么是“优化代码”选项在Visual Studio中真正做什么?

该选项的名称告诉了什么,但Visual Studio /编译器真的做什么,真正的后果是什么? 编辑:如果你search谷歌,你可以find这个地址 ,但是这不是真的我在找。 我不知道真实的事情发生。 例如,为什么循环获得更less的时间,等等

为什么有条件的移动不容易出现分支预测失败?

在阅读这篇文章(在StackOverflow的答案) (在优化部分),我想知道为什么有条件的移动不容易分支预测失败。 我在这里find一篇有关cond动作的文章(AMD的PDF) 。 在那里,他们声称cond的性能优势。 移动。 但为什么呢? 我不明白 在评估ASM指令的那一刻,前面CMP指令的结果还不知道。 谢谢。

海湾合作委员会:三月和三月有什么不同?

我试图擦洗这个GCC手册页,但仍然没有得到它,真的。 -march和-mtune什么区别? 什么时候一个人只是使​​用,而不是两个? 是否有可能只是 – -mtune ? 谢谢。

清除.NET的StringBuilder内容的最好方法

我想问你认为什么是最好的方法(持续less/消耗更less的资源)来清除内容,以便重用StringBuilder。 想象一下下面的场景: StringBuilder sb = new StringBuilder(); foreach(var whatever in whateverlist) { sb.Append("{0}", whatever); } //Perform some stuff with sb //Clear stringbuilder here //Populate stringbuilder again to perform more actions foreach(var whatever2 in whateverlist2) { sb.Append("{0}", whatever2); } 而清理StringBuilder时,我可以想到两种可能性: sb = new StringBuilder(); 要么 sb.Length = 0; 什么是最好的方式来清除它,为什么? 谢谢。 编辑:我用目前的.NET 3.5版本。

如何阻止C#用它们的值replaceconstvariables?

我们有一个编译成名为consts.dll的DLL的项目,其中包含如下内容: public static class Consts { public const string a = "a"; public const string b = "b"; public const string c = "c"; } 我们有这种types的多个项目,每个编译成一个同名(consts.dll)的DLL,我们根据需要replace它们。 我们有另一个类使用这些常量: public class ConstsUser { string f() { return Consts.a; } } 不幸的是, Consts.a被优化为“a”,所以即使我们replaceConsts.dll实现,我们仍然得到“a”而不是正确的值,我们需要重新编译ConstsUser 。 有没有办法阻止优化器用它们的值replaceconstvariables?

Chrome Profiler中的“未优化”警告是什么意思?

当我在Chrome中使用开发者工具收集JavaScript CPUconfiguration文件时,我得到了两个关于函数的神秘警告: 未优化:优化了太多次 未优化:内联保护 这些实际上是什么意思? 什么是可能的解决scheme? 我见过的另一个是未优化:TryCatchStatement ,但这是有道理的。 解决scheme是删除try-catch。 我迄今为止发现的最接近的解释是 – https://github.com/GoogleChrome/devtools-docs/issues/53

Eclipse 4.2非常慢,如何使它更快速响应?

我在一个相当大的PHP项目上使用Eclipse PDT,IDE几乎不可用。 打开一个文件需要将近30秒的时间,其他的操作,比如在文件浏览器中select一个文件夹,编辑一些文本等等也是很慢的。 我遵循各种指示加快速度,但似乎没有任何工作。 这是我目前的eclipse.ini文件。 任何想法如何我可以改善它? -startup plugins/org.eclipse.equinox.launcher_1.3.0.v20120522-1813.jar –launcher.library plugins/org.eclipse.equinox.launcher.win32.win32.x86_1.1.200.v20120522-1813 -showsplash org.eclipse.platform –launcher.XXMaxPermSize 256m –launcher.defaultAction openFile -vmargs -server -Dosgi.requiredJavaVersion=1.7 -Xmn128m -Xms1024m -Xmx1024m -Xss2m -XX:PermSize=128m -XX:MaxPermSize=128m -XX:+UseParallelGC 系统:Eclipse 4.2.0,Windows 7,4 GB RAM

为什么C ++优化器对这些临时variables有问题,或者为什么在紧密循环中应该避免使用v `?

在这个代码片段中 ,我比较了两个function相同的循环的性能: for (int i = 1; i < v.size()-1; ++i) { int a = v[i-1]; int b = v[i]; int c = v[i+1]; if (a < b && b < c) ++n; } 和 for (int i = 1; i < v.size()-1; ++i) if (v[i-1] < v[i] && v[i] < v[i+1]) ++n; 第一个运行速度明显慢于第二个,其优化标志设置为O2 : […]

什么时候不适合使用python生成器?

这是相反的什么你可以使用Python生成器函数? :python生成器,生成器expression式和itertools模块是我现在最喜欢的python特性之一。 当设置一系列操作来执行一大堆数据时,它们特别有用 – 我经常在处理DSV文件时使用它们。 那么,什么时候使用一个生成器,一个生成器expression式或者一个itertools函数呢? 什么时候应该比较喜欢zip() itertools.izip()或者 range()通过xrange() ,或 [x for x in foo] over (x for x in foo) ? 显然,我们最终需要将一个生成器“parsing”为实际的数据,通常是通过创build一个列表或用一个非生成器循环对其进行迭代。 有时我们只需要知道长度。 这不是我要问的。 我们使用生成器,因此我们不会将新列表分配给内存中的临时数据。 这对大数据集尤其有意义。 对于小数据集也有意义吗? 有一个明显的内存/ CPU的权衡? 我特别感兴趣的是,如果有人对此进行了一些分析,那么根据对列表理解性能与map()和filter()的令人eye目的讨论。 ( alt链接 )

编译器优化能否引入错误?

今天我和我的一个朋友进行了一次讨论,我们就“编译器优化”问题进行了几个小时的讨论。 我曾经辩解过, 有时编译器优化可能会引入错误或者至less是不希望的行为。 我的朋友完全不同意,说“编译器是聪明人做的,做聪明的事情”,所以不会出错。 他根本没有说服我,但我不得不承认我缺乏现实的例子来强化我的观点。 谁在这里? 如果是,那么你是否有一个真实的例子,编译器优化在结果软件中产生了一个bug? 如果我错了,我应该停止编程,学习捕鱼吗?