Tag: performance

为什么人们说Ruby比较慢?

我喜欢Ruby on Rails,并将其用于我的所有Web开发项目。 几年前,有很多人谈论Rails是一个内存pipe理者,关于它如何不能很好地扩展,但是这些build议被Gregg Pollack 放在这里 。 最近我听到有人说Ruby本身很慢。 为什么Ruby认为慢? 我不觉得Ruby很慢,但是我只是用它来制作简单的CRUD应用程序和公司博客。 在我发现Ruby变慢之前,我需要做什么types的项目? 或者,这种缓慢只是影响所有编程语言的东西? 如果你想处理这种“缓慢”,你有什么select作为Ruby程序员? 哪个版本的Ruby最适合像Stack Overflow那样的速度至关重要且stream量很大的应用? 这些问题是主观的,我意识到架构设置(EC2 vs独立服务器等)会产生很大的差异,但是我想听听人们对Ruby缓慢的看法。 最后,在Ruby 2.0上我找不到太多的消息 – 我认为我们距离那么好几年了?

为什么C如此之快,为什么不是其他语言更快或更快呢?

在听StackOverflow播客时,Jab不停地提到“真正的程序员”用C编写,而C更快,因为它“接近机器”。 把前面的断言留给另一篇文章,C的特别之处在于它比其他语言更快呢? 或者换一种说法:阻止其他语言能够编译成与C一样快速运行的二进制文件?

我如何提高ASP.NET MVC应用程序的性能?

你如何提高你的ASP.NET MVC应用程序性能?

为什么gcc生成15-20%更快的代码,如果我优化大小,而不是速度?

我首先注意到2009年gcc(至less在我的项目和我的机器上)有倾向于生成明显更快的代码,如果我优化大小 ( -Os ),而不是速度( -O2或-O3 ),我一直想知道为什么。 我已经设法创build(相当愚蠢的)代码,显示这个令人惊讶的行为,并足够小,在这里张贴。 const int LOOP_BOUND = 200000000; __attribute__((noinline)) static int add(const int& x, const int& y) { return x + y; } __attribute__((noinline)) static int work(int xval, int yval) { int sum(0); for (int i=0; i<LOOP_BOUND; ++i) { int x(xval+sum); int y(yval+sum); int z = add(x, y); sum += z; […]

哪个更快:while(1)while while(2)?

这是一位高级经理提出的面试问题。 哪个更快? while(1) { // Some code } 要么 while(2) { //Some code } 我说过,两者执行速度一样,里面的expression式最终应该是true还是false 。 在这种情况下,两者评估为true并且在while条件内没有额外的条件指令。 所以,两者都会有相同的执行速度,我更喜欢while(1)。 但面试官自信地说:“ while(1)比while(2)快。” (他没有testing我的信心) 这是真的? 另请参见: “for(;;)”比“while(TRUE)”更快? 如果没有,为什么人们使用它?

检查一个string是否包含列表中的元素(string)

对于以下代码块: For I = 0 To listOfStrings.Count – 1 If myString.Contains(lstOfStrings.Item(I)) Then Return True End If Next Return False 输出是: 情况1: myString: C:\Files\myfile.doc listOfString: C:\Files\, C:\Files2\ Result: True 案例2: myString: C:\Files3\myfile.doc listOfString: C:\Files\, C:\Files2\ Result: False 列表(listOfStrings)可能包含几个项目(最less20),它必须检查数千个string(如myString)。 有没有更好(更有效)的方式来编写这段代码?

有效的mathalgorithm来计算交叉点

对于我正在开发的游戏,我需要一个可以计算交叉点的algorithm。 我已经解决了这个问题,但是我这样做的方式真的很糟糕,我希望这里有人可能有一个更优雅的解决scheme。 一对点代表它们之间画出的一条线的终点。 给定两对点,划线是否相交,如果是,在哪一点? 例如,将线(Ax,Ay) – (Bx,By)和(Cx,Cy) – (Dx,Dy) 任何人都可以想出解决scheme吗? 任何语言的解决scheme都可以。 编辑:我应该更清楚一点,如果交点超出了线段的长度,algorithm必须返回false。

使用AVX CPU指令:没有“/ arch:AVX”

我的C ++代码使用SSE,现在我想改进它以支持AVX。 所以我检测AVX何时可用,并调用一个使用AVX命令的函数。 我使用Win7 SP1 + VS2010 SP1和一个带有AVX的CPU。 要使用AVX,有必要包含这一点: #include "immintrin.h" 然后你可以使用像_mm256_mul_ps函数,如_mm256_mul_ps , _mm256_add_ps等。问题是,默认情况下,VS2010产生的代码工作非常缓慢,并显示警告: 警告C4752:find英特尔(R)高级vector扩展; 考虑使用/ arch:AVX 看来VS2010实际上并不使用AVX指令,而是模拟它们。 我添加/arch:AVX的编译器选项,并取得了良好的效果。 但是这个选项告诉编译器在可能的地方使用AVX命令。 所以我的代码可能会在不支持AVX的CPU上崩溃! 所以问题是如何使VS2010编译器生成AVX代码,但只有当我直接指定AVX内部函数。 对于SSE它可以工作,我只是使用SSE内在函数,它产生的SSE代码没有像/arch:SSE这样的编译器选项。 但是对于AVX来说,由于某种原因它不起作用。

为什么numpy.array这么慢?

我对此感到困惑 def main(): for i in xrange(2560000): a = [0.0, 0.0, 0.0] main() $ time python test.py real 0m0.793s 现在让我们看看numpy: import numpy def main(): for i in xrange(2560000): a = numpy.array([0.0, 0.0, 0.0]) main() $ time python test.py real 0m39.338s 神圣的CPU周期蝙蝠侠! 使用numpy.zeros(3)改进,但仍然不够IMHO $ time python test.py real 0m5.610s user 0m5.449s sys 0m0.070s numpy.version.version ='1.5.1' 如果您想知道在第一个示例中是否跳过了列表创build优化,那么不是: […]

如何在运行时更改iPhone应用程序语言?

有没有办法在运行时更改应用程序的语言? 所以,更改后NSLocalizedString立即返回新语言的string。 我现在正在做的是使用下面的代码来改变语言: – (void)onChangeLanguage: (id)sender { NSArray *lang = [NSArray arrayWithObjects:((InfoWhatever *)sender).language, nil]; [[NSUserDefaults standardUserDefaults] setObject:lang forKey:@"AppleLanguages"]; NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults]; NSArray *languages = [defaults objectForKey:@"AppleLanguages"]; NSString *currentLanguage = [languages objectAtIndex:0]; NSLog(@"Current language: %@", currentLanguage); } 语言将改变,但只有重新启动应用程序后。