Tag: 性能

WHERE子句中的字段顺序是否影响MySQL的性能?

我在表中有两个索引字段 – type和userid (单个索引,而不是组合)。 type的字段值非常有限(假设它只有0或1),所以50%的表logging具有相同的type 。 另一方面, userid值来自一个更大的集合,所以具有相同userid的logging数量很小。 这些查询中的任何一个都会比另一个运行得更快: select * from table where type=1 and userid=5 select * from table where userid=5 and type=1 如果两个字段都没有索引,它会改变行为吗?

Erlang的并行性在什么时候克服了它在数值计算方面的弱点?

随着最近在并行计算方面的所有炒作,我一直在考虑很多关于并行性,数字运算,集群等等。 我开始阅读学习你一些Erlang 。 随着越来越多的人学习(包括我自己),Erlang以非常令人印象深刻的优雅方式处理并发。 然后,作者声称,Erlang 并不适合数字运算 。 我可以理解像Erlang这样的语言会比C语言慢,但是并发模型似乎非常适合像image processing或matrix乘法这样的事情,尽pipe作者特别说明了这一点。 这真的很糟吗? Erlang的实力是否克服了当地速度的不足? 正在采取什么措施来处理速度? 要清楚:我不是想开始辩论, 我只是想知道。

在列表中find第n个项目的索引

我想查找列表中第n个项目的索引。 例如, x=[False,True,True,False,True,False,True,False,False,False,True,False,True] 什么是真正的指标? 如果我想要第五次出现(如果是零索引,则为第四次),答案是10。 我已经想出了: indargs = [ i for i,a in enumerate(x) if a ] indargs[n] 请注意, x.index返回第一次出现或某个点后的第一次出现,因此,据我所知,不是一个解决scheme。 也有类似于上面的情况numpy的解决scheme,例如使用cumsum和where ,但我想知道是否有一个numpy自由的方式来解决这个问题。 自从我第一次遇到这个问题以来,我担心的是性能问题,同时为EH 项目实施了Eratosthenes筛选,但这是我在其他情况下遇到的一个更普遍的问题。 编辑:我得到了很多很好的答案,所以我决定做一些性能testing。 以下列出了len元素search第4000个/ 1000个True的列表的时间执行时间(秒)。 该列表是随机的真/假。 下面链接的源代码; 这是一个混乱。 我使用海报名称的短/修改版本来描述listcomp之外的function,这是上面简单的列表理解。 True Test (100'th True in a list containing True/False) nelements eyquem_occur eyquem_occurrence graddy taymon listcomp hettinger26 hettinger 3000: 0.007824 0.031117 0.002144 0.007694 0.026908 0.003563 […]

我该如何提高Angular2应用程序的负载性能?

Angular2的应用程序加载速度慢,我怎样才能提高性能的负载? 我使用Angular2,使用html5打字。 目前我的应用程序需要4秒加载。 我使用Firebase托pipe并使用cloudflare。 我正在做的事情/信息: 我压缩了图像。 我缩小CSS 我把js缩小了。 我在脚本上使用asynchronous。 我的脚本在我的。 脚本大约700kb 我用谷歌速度testing,并得到65% 我使用的库的缩小版本,例如bootstrap等 使用systemjs。 这是使用的种子应用程序: https : //github.com/mgechev/angular-seed stream: 当应用程序加载它显示一个蓝色的屏幕(这是引导的CSS),然后4秒后,应用程序加载和工作非常快。 但需要4秒加载。 这似乎是systemjs最小化的app.js文件正在减慢整个应用程序,而不是足够快地显示视图。 这是我的网站速度testing: https : //www.webpagetest.org/result/161206_F5_N87/ 这是我的网站: https://thepoolcover.co.uk/ 让我知道,如果你需要更多的信息关于我的应用程序和我可以做的任何其他事情。

dynamic_cast的性能?

在阅读这个问题之前: 这个问题不是关于如何使用dynamic_cast有用的。 它只是关于它的performance。 我最近开发了一个dynamic_cast被广泛使用的devise。 当与同事讨论时,几乎每个人都说dynamic_cast不应该被使用,因为它的performance不好(这些都是不同背景的同事,在某些情况下彼此不认识,我在一家大公司工作) 我决定testing这种方法的性能,而不是仅仅相信它们。 以下代码被使用: ptime firstValue( microsec_clock::local_time() ); ChildObject* castedObject = dynamic_cast<ChildObject*>(parentObject); ptime secondValue( microsec_clock::local_time() ); time_duration diff = secondValue – firstValue; std::cout << "Cast1 lasts:\t" << diff.fractional_seconds() << " microsec" << std::endl; 上面的代码使用来自Linux上boost::date_time方法来获取可用的值。 我在一次执行中完成了3个dynamic_cast ,测量它们的代码是相同的。 1次执行的结果如下: Cast1持续:74微秒 Cast2持续:2微秒 Cast3持续:1微秒 第一个演员总是拿着74-111微秒,下面的演员在同样的执行下拿了1-3微秒。 所以最后我的问题是: dynamic_cast真的performance不好吗? 根据testing结果它不是。 我的testing代码是否正确? 为什么这么多的开发人员认为,如果不是这样,速度会变慢呢?

为什么在.NET中存在空?

为什么.NET中的值可以为null? 这是优于有一个保证,一切都会有一个价值,没有什么呼叫是空的? 任何人都知道这些方法被称为什么? 无论哪种方式,我对此都不是很了解,但是对于所有事情来说,没有任何价值可以让事情变得更简单,就简单性而言,也就是消除空检查,并且能够编写更多简化的algorithm,而无需分支检查。 在performance,简单,平行,面向未来等方面,每种风格有哪些优缺点?

如何优化编译时间和RAM使用的gradle编译性能?

我目前正在从ant切换到Gradle for我的多模块Web应用程序,目前看来,当前版本的Gradle(M9)可能会跑到它的极限。 但也许(希望)这只是一个问题,我没有理解Gradle的概念够好或不知道“魔术表演升压开关”。 我很乐意提供有关如何优化构build性能的提示。 问题是:在显示第一个compileJava之前几分钟,即使源代码中没有任何更改,该进程至less运行7分钟,直到中途崩溃:testClasses (在不同的子项目中),带有以下消息: * What went wrong: Could not resolve all dependencies for configuration ':mysubproject_X:testRuntime'. > Java heap space 该项目由大约30个(部分相互依赖的)子项目组成,它们的构build梯度大致相同,并且用于从每个子项目构build一个jar文件,例如 sourceSets { main { java { srcDirs 'src' } } } dependencies { compile project(':mysubproject_A') compile project(':mysubproject_B') compile project(':mysubproject_E') compile group: 'commons-lang', name: 'commons-lang', version: '2.2' } // copy all non-java files […]

Python的“in”有多快/多快? (时间复杂性明智)

在Python中, in关键字的效率如何: a = [1, 2, 3] if 4 in a: …

什么时候应该比传统循环更优先selectstream? stream是利用分支预测吗?

我刚刚阅读了关于分支预测的内容 ,想试试Java 8 Streams如何工作。 然而Streams的performance总是比传统的循环更糟糕。 int totalSize = 32768; int filterValue = 1280; int[] array = new int[totalSize]; Random rnd = new Random(0); int loopCount = 10000; for (int i = 0; i < totalSize; i++) { // array[i] = rnd.nextInt() % 2560; // Unsorted Data array[i] = i; // Sorted Data } long start […]

Java中StringTokenizer类与String.split方法的性能

在我的软件中,我需要将string拆分成单词。 目前我有超过1900万个文件,每个文件超过30个字。 以下两种方式中的哪一种是最好的方法(就性能而言)? StringTokenizer sTokenize = new StringTokenizer(s," "); while (sTokenize.hasMoreTokens()) { 要么 String[] splitS = s.split(" "); for(int i =0; i < splitS.length; i++)