Tag: performance

C中交换值的最快方法是什么?

我想交换两个整数,我想知道这两个实现中的哪一个会更快:tempvariables的显而易见的方法: void swap(int* a, int* b) { int temp = *a; *a = *b; *b = temp; } 或者我相信大多数人看到的xor版本: void swap(int* a, int* b) { *a ^= *b; *b ^= *a; *a ^= *b; } 似乎第一个使用额外的寄存器,但第二个是做三个加载和存储,而第一个只做两个。 有人能告诉我哪个更快,为什么? 为什么更重要。

这是在pandas集团最快的方式吗?

以下代码运行良好。 只要检查一下:我是否正确使用pandas,是否有更快的方法? 谢谢。 $ python3 Python 3.4.0 (default, Apr 11 2014, 13:05:11) [GCC 4.8.2] on linux Type "help", "copyright", "credits" or "license" for more information. >>> import pandas as pd >>> import numpy as np >>> import timeit >>> pd.__version__ '0.14.1' def randChar(f, numGrp, N) : things = [f%x for x in range(numGrp)] return [things[x] […]

C ++ 11基于范围的for循环条件是否在每个周期被评估?

for(auto& entity : memoryManager.getItems()) entity->update(mFrameTime); 如果memoryManager包含1000个项目, memoryManager.getItems()会被调用1000次,或者只有一个在循环的开始? 编译器是否使用-O2(或-O3)运行任何优化? ( memoryManager.getItems()返回一个std::vector<Entity*>& )

SVN性能经过多次修改

我的项目目前正在使用一个svn仓库,每天增加几百个新版本。 版本库位于Win2k3服务器上,通过Apache / mod_dav_svn提供。 我现在担心,随着时间的推移,性能会因修改太多而下降。 这种恐惧是否合理? 我们已经计划升级到1.5,所以在一个目录中有成千上万的文件长期不会成为问题。 Subversion在2个版本之间存储增量(差异),所以这有助于节省大量的空间,特别是如果你只提交代码(文本),没有二进制文件(图像和文档)。 这是否意味着,为了检查文件foo.baz的修订版本10,svn将采取修订1,然后应用增量2-10?

隐藏在Scala中的性能成本?

我遇到了这个老问题 ,并用scala 2.10.3做了下面的实验。 我重写了Scala版本以使用明确的尾recursion: import scala.annotation.tailrec object ScalaMain { private val t = 20 private def run() { var i = 10 while(!isEvenlyDivisible(2, i, t)) i += 2 println(i) } @tailrec private def isEvenlyDivisible(i: Int, a: Int, b: Int): Boolean = { if (i > b) true else (a % i == 0) && isEvenlyDivisible(i+1, […]

为什么这需要很长时间才能匹配? 这是一个错误?

我需要匹配的Web应用程序中的某些url,即/123,456,789 ,并写了这个正则expression式匹配的模式: r'(\d+(,)?)+/$' 我注意到它似乎没有评估,即使在testing模式几分钟后: re.findall(r'(\d+(,)?)+/$', '12345121,223456,123123,3234,4523,523523') 预期的结果是没有匹配。 然而,这个expression式几乎立即执行(注意结尾的斜线): re.findall(r'(\d+(,)?)+/$', '12345121,223456,123123,3234,4523,523523/') 这是一个错误?

为什么std :: string操作性能不佳?

我做了一个testing,比较几种语言的string操作,为服务器端应用程序select一种语言。 结果似乎是正常的,直到我终于尝试C ++,这让我很吃惊。 所以我想知道我是否错过了任何优化,并来这里寻求帮助。 testing主要是密集的string操作,包括连接和search。 testing在Ubuntu 11.10 amd64上执行,GCC版本为4.6.1。 该机器是戴尔Optiplex 960,具有4G RAM和四核CPU。 在Python(2.7.2)中: def test(): x = "" limit = 102 * 1024 while len(x) < limit: x += "X" if x.find("ABCDEFGHIJKLMNOPQRSTUVWXYZ", 0) > 0: print("Oh my god, this is impossible!") print("x's length is : %d" % len(x)) test() 这给出了结果: x's length is : 104448 real […]

获得sqrt(n)的整数部分的最快方法是什么?

我们知道,如果n不是一个完美的正方形,那么sqrt(n)将不是一个整数。 由于我只需要整数部分,我觉得调用sqrt(n)不会那么快,因为计算小数部分也需要时间。 所以我的问题是: 如果不计算sqrt(n)的实际值,我们只能得到sqrt(n)的整数部分吗? 该algorithm应该比sqrt(n) (在<math.h>或<cmath>定义sqrt(n)更快? 如果可能的话,你也可以在asm块中写代码。

如何加速Visual Studio 2010

关于Visual Studio 2010的噪音比前作VS 2008要慢很多。 在过去的几个星期,我遇到了同样的问题,经过一个小时的search后,我发现了几个解决scheme,使我的IDE在大多数操作(包括代码编辑)上快了大约70% 。 加速30% 工具>选项 – 检查“显示所有选项” IntelliTrace – 禁用 HTMLdevise器 – 禁用 50%的启动加速 工具>选项 环境>加载项/macros安全性 – UNCHECK“允许加载加载项组件” 工具>扩展pipe理器 卸载所有你不需要的。 这些之后重新启动你的IDE,你应该观察到明显的速度增加。 你有更多的技巧吗? 随时添加他们作为答案。

如何从Android上包含的第三方库中删除未使用的资源?

我链接到我的应用程序的第三方库通常包括不被我的应用程序使用的资源文件,因此,最终会膨胀我的APK。 例如,包括Google Play服务库,但不使用loginbuttonfunction; 所有这些图像和布局资源都会在我的最终构build中结束。 由于这些资源被包含在一个编译的库中,我怎样才能从我的构build中删除它们?