Tag: 性能

为什么不能(或不)编译器将一个可预测的加法循环优化成一个乘法?

在读到Mysticial关于如下问题的精彩答案时, 想到了这个问题: 为什么处理sorting后的数组比处理未sorting的数组更快 ? 涉及types的上下文: const unsigned arraySize = 32768; int data[arraySize]; long long sum = 0; 在他的回答中,他解释说,英特尔编译器(ICC)优化了这一点: for (int i = 0; i < 100000; ++i) for (int c = 0; c < arraySize; ++c) if (data[c] >= 128) sum += data[c]; …相当于这样的东西: for (int c = 0; c < arraySize; ++c) if (data[c] […]

集群与非集群

我对SQL(Server 2008)的底层知识有限,现在正在被我们的数据库pipe理员挑战。 让我解释一下(我提到了明显的陈述,希望我是对的,但如果你看错了,请告诉我)情景: 我们有一个表格,为人们提供“法庭命令”。 当我创build表(名称:CourtOrder)时,我创build了这样的表: CREATE TABLE dbo.CourtOrder ( CourtOrderID INT NOT NULL IDENTITY(1,1), (Primary Key) PersonId INT NOT NULL, + around 20 other fields of different types. ) 然后我将一个非聚集索引应用到主键(为了效率)。 我的原因是,它是一个独特的领域(主键),应该索引,主要用于select的目的,因为我们经常Select from table where primary key = … 然后,我在PersonId上应用了一个CLUSTERED索引。 原因是为了一个特定的人物理上的订单,因为绝大多数工作是获得一个人的订单。 所以, select from mytable where personId = … 我现在已经被拉上了。 我被告知我们应该把聚集索引放在主键上,并把personId上的正常索引。 这对我来说似乎很奇怪。 首先,为什么要在一个独特的列上放置一个聚集索引? 它是什么聚类? 当然,这是浪费聚集索引? 我相信一个正常的索引将被用在一个独特的列上。 […]

为什么我的基本Heroku应用程序需要两秒钟才能加载?

我创build了两个非常简单的Heroku应用程序来testing这个服务,但是当我第一次访问它的时候,通常需要几秒钟来加载页面: Cropify – 基本Sinatra应用程序( 在github上 ) Textile2HTML – 更基本的Sinatra应用程序( 在github上 ) 我所做的只是创build一个简单的Sinatra应用程序并部署它。 我没有做任何捣乱或testingHeroku服务器。 我能做些什么来提高响应时间? 现在速度很慢,我不确定从哪里开始。 如果有帮助的话,项目的代码在github上。

在C ++中实现长方程时,如何通过高级方法提高性能?

我正在开发一些工程模拟。 这涉及到实施一些长方程,如这个方程来计算橡胶材料的应力: T = ( mu * ( pow(l1 * pow(l1 * l2 * l3, -0.1e1 / 0.3e1), a) * a * ( pow(l1 * l2 * l3, -0.1e1 / 0.3e1) – l1 * l2 * l3 * pow(l1 * l2 * l3, -0.4e1 / 0.3e1) / 0.3e1 ) * pow(l1 * l2 * l3, […]

我怎样才能分析我的Android应用程序?

我需要find我的Android应用程序的瓶颈。 我可以使用哪些分析工具或技术?

为什么Go很慢(与Java相比)?

正如我们从计算机语言基准游戏中可以看到的那样 : Go平均比C慢10倍 Go比Java慢三倍? 这怎么可能,记住Go编译器生成本地代码执行? Go不成熟的编译器? 或者Go语言有一些固有的问题? 编辑: 大多数答案都否定了Go语言的内在缓慢,声称这个问题存在于不成熟的编译器中。 因此,我已经做了一些自己的testing来计算斐波纳契数字 :迭代algorithm在Go(freebsd,6g)中以与C中same速度运行(使用O3选项)。 慢的recursion运行在Go中,比在C中慢2 times (使用-O3选项;使用-O0 – 相同)。 但是我还没有看到在基准游戏中的10倍跌幅。

gcc的快速math实际上做了什么?

我明白–ffast-math标志可以大大提高浮动操作的速度,并超出IEEE标准,但我似乎无法find真正发生的事情的信息。 任何人都可以请解释一些细节,也许给一个明确的例子,如果国旗是打开或closures如何将改变? 我也尝试过类似的问题,但是找不到任何解释ffastmath运作的东西。

测量执行t-sql查询所花费的时间

我有两个使用SqlServer 2005的t-sql查询。我怎样测量每个运行需要多长时间? 使用我的秒表不会削减它。

奇怪的performance增加了简单的基准

昨天,我find了Christoph Nahr的一篇名为“.NET结构性能”的文章,该文章以几种语言(C ++,C#,Java,JavaScript)为基础,添加了两个点结构( double元组)。 事实certificate,C ++版本需要大约1000ms才能执行(1e9次迭代),而C#在同一台机器上不能低于〜3000ms(在x64中performance更差)。 为了自己testing,我使用了C#代码(稍微简化为只调用传入参数的方法),然后在i7-3610QM机器上运行(3.1Ghz单核加速),8GB RAM,Win8。 1,使用.NET 4.5.2,RELEASE构build32位(x86 WoW64,因为我的操作系统是64位)。 这是简化的版本: public static class CSharpTest { private const int ITERATIONS = 1000000000; [MethodImpl(MethodImplOptions.AggressiveInlining)] private static Point AddByVal(Point a, Point b) { return new Point(aX + bY, aY + bX); } public static void Main() { Point a = new Point(1, 1), b = new […]

Python多处理 – Pipe vs Queue

Python的多处理包中的队列和pipe道有什么根本区别? 在什么情况下应该select一个吗? 什么时候使用Pipe()有利? 什么时候使用Queue()是有利的?