Questions tagged «performance»

对于与代码的度量或改进以及应用程序效率有关的问题。


5
集群与非集群
我对SQL(Server 2008)的较低层次的了解是有限的,现在我们的DBA对此提出了挑战。让我解释一下这种情况:(我已经提到一些明显的陈述,希望我是对的,但是如果您发现有问题,请告诉我)。 我们有一张桌子,上面放着人们的“法院命令”。创建表(名称:CourtOrder)时,我的创建方式如下: 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 from table where primary key = ... 然后,我在PersonId上应用了CLUSTERED索引。原因是按物理方式将特定人员的订单分组,因为绝大多数工作都在为一个人获取订单。所以,select from mytable where personId = ... 我现在已经对此感到困惑。有人告诉我,应该将聚簇索引放在主键上,而普通索引放在personId上。我觉得这很奇怪。首先,为什么要在唯一列上放置聚集索引?什么是集群?当然这是对聚集索引的浪费吗?我相信普通索引将用于唯一列。同样,对索引进行聚类将意味着我们无法对不同的列进行聚类(每个表一个,对吗?)。 被告知我犯了一个错误的原因是,他们认为在PersonId上放置聚簇索引会使插入速度变慢。对于选择速度提高5%的情况,插入和更新速度将降低95%。那是正确和有效的吗? 他们说,因为我们对personId进行了群集,所以在我们插入或更改PersonId时,SQL Server必须重新排列数据。 所以然后我问,为什么SQL这么慢,为什么会有CLUSTERED INDEX的概念呢?像他们说的那样慢吗?我应该如何设置索引以获得最佳性能?我本以为SELECT的使用比INSERT还要多...但是他们说我们在INSERTS上存在锁定问题... 希望可以有人帮帮我。

12
检查空数组:计数与空
这个关于“ 如何判断PHP数组是否为空 ”的问题让我想到了这个问题 确定数组是否为空时,count是否应该使用代替理由empty? 我个人认为如果在使用空数组的情况下2是否相等,empty因为它为布尔问题提供了布尔答案。从上面链接的问题来看,这似乎count($var) == 0是流行的方法。对我来说,尽管在技术上是正确的,但没有任何意义。例如:$ var,您是空的吗?答:7。嗯... 是我应该count == 0改用还是仅出于个人喜好? 正如其他人在注释中指出的那样,现在删除的答案count将对大型数组产生性能影响,因为它将必须计算所有元素,而empty一旦知道它不为空就可以停止。因此,如果在这种情况下它们给出相同的结果,但count效率可能很低,那么为什么还要使用count($var) == 0?

8
使用PHP服务文件的最快方法
我试图将一个函数接收一个文件路径,确定它是什么,设置适当的标头,并像Apache一样提供服务。 我这样做的原因是因为在提供文件之前,我需要使用PHP处理有关请求的某些信息。 速度至关重要 virtual()不是一个选择 必须在用户无法控制Web服务器(Apache / nginx等)的共享托管环境中工作 到目前为止,这是我得到的: File::output($path); <?php class File { static function output($path) { // Check if the file exists if(!File::exists($path)) { header('HTTP/1.0 404 Not Found'); exit(); } // Set the content-type header header('Content-Type: '.File::mimeType($path)); // Handle caching $fileModificationTime = gmdate('D, d M Y H:i:s', File::modificationTime($path)).' GMT'; …

12
将HTML标签作为HTML实体转义的最快方法?
我正在写一个Chrome扩展程序,包括做了很多以后的工作中:消毒的字符串可能包含HTML标签,通过转换<,>并&以<,>和&分别。 (换句话说,与PHP相同htmlspecialchars(str, ENT_NOQUOTES)-我认为并不需要转换双引号字符。) 这是到目前为止我发现的最快的功能: function safe_tags(str) { return str.replace(/&/g,'&').replace(/</g,'<').replace(/>/g,'>') ; } 但是,当我不得不一次性运行数千个字符串时,仍然存在很大的滞后。 任何人都可以对此进行改进吗?如果有所不同,则通常用于10到150个字符之间的字符串。 (我曾经想到的一个想法是不必费心编码大于号-这样会不会有真正的危险?)

3
Python中异常处理程序的成本
在另一个问题中,可接受的答案建议用try / except块替换Python代码中的(非常便宜)if语句,以提高性能。 除了编码样式问题外,并假设永远不会触发异常,拥有一个异常处理程序与没有一个异常处理程序,与拥有与零比较的if语句相比,在性能方面有何不同?

11
使String的第一个字符小写的最有效方法?
使String小写的第一个字符最有效的方法是什么? 我可以想到许多方法来做到这一点: 使用charAt()与substring() String input = "SomeInputString"; String output = Character.toLowerCase(input.charAt(0)) + (input.length() > 1 ? input.substring(1) : ""); 或使用char数组 String input = "SomeInputString"; char c[] = input.toCharArray(); c[0] = Character.toLowerCase(c[0]); String output = new String(c); 我相信还有许多其他好的方法可以实现这一目标。您有什么推荐的吗?

4
简单基准测试中怪异的性能提升
昨天,我找到了Christoph Nahr撰写的名为“ .NET Struct Performance”的文章,该文章 对几种语言(C ++,C#,Java,JavaScript)的基准测试了一种添加两个点结构(double元组)的方法。 事实证明,C ++版本执行大约需要1000毫秒(1e9迭代),而C#在同一台机器上的时间不能低于3000毫秒(并且在x64中的表现甚至更差)。 为了自己进行测试,我使用了C#代码(并略微简化以仅调用按值传递参数的方法),并在i7-3610QM机器(单核3.1Ghz Boost),8GB RAM,Win8上运行了它。 1,使用.NET 4.5.2,RELEASE构建32位(由于我的OS是64位,因此x86 WoW64)。这是简化版本: public static class CSharpTest { private const int ITERATIONS = 1000000000; [MethodImpl(MethodImplOptions.AggressiveInlining)] private static Point AddByVal(Point a, Point b) { return new Point(a.X + b.Y, a.Y + b.X); } public static void Main() { Point …

5
在R中合并/联接data.frames最快的方法是什么?
例如(不确定最有代表性的例子): N <- 1e6 d1 <- data.frame(x=sample(N,N), y1=rnorm(N)) d2 <- data.frame(x=sample(N,N), y2=rnorm(N)) 到目前为止,这是我得到的: d <- merge(d1,d2) # 7.6 sec library(plyr) d <- join(d1,d2) # 2.9 sec library(data.table) dt1 <- data.table(d1, key="x") dt2 <- data.table(d2, key="x") d <- data.frame( dt1[dt2,list(x,y1,y2=dt2$y2)] ) # 4.9 sec library(sqldf) sqldf() sqldf("create index ix1 on d1(x)") …


10
为什么要上课?
我想听听.Net框架中大量密封类背后的动机是什么。补习班有什么好处?我无法理解不允许继承如何有用,而且很可能不是唯一与这些阶级作斗争的人。 那么,为什么以这种方式设计框架,而将所有东西都密封起来,这将是不懈的改变吗?一定还有别的原因,只是邪恶?
96 .net  performance 

4
什么更快:in_array或isset?[关闭]
按照目前的情况,这个问题不适合我们的问答形式。我们希望答案会得到事实,参考或专业知识的支持,但是这个问题可能会引起辩论,争论,民意调查或扩展讨论。如果您认为此问题可以解决并且可以重新提出,请访问帮助中心以获取指导。 7年前关闭。 这个问题仅对我而言,因为我一直喜欢编写优化的代码,这些代码也可以在廉价的慢速服务器(或流量很大的服务器)上运行 我环顾四周,却找不到答案。我想知道在这两个示例之间有什么更快的方法,请记住在我的情况下数组的键并不重要(自然是伪代码): <?php $a = array(); while($new_val = 'get over 100k email addresses already lowercased'){ if(!in_array($new_val, $a){ $a[] = $new_val; //do other stuff } } ?> <?php $a = array(); while($new_val = 'get over 100k email addresses already lowercased'){ if(!isset($a[$new_val]){ $a[$new_val] = true; //do other stuff } } …

5
相对于translateZ(0)的CSS性能
许多博客都表示,通过“ transform: translateZ(0)加速” GPU来提高动画和过渡的速度,可以认为元素是3D的,从而提高了性能。我想知道以下列方式使用此转换是否有意义: * { -webkit-transform: translateZ(0); -moz-transform: translateZ(0); -ms-transform: translateZ(0); -o-transform: translateZ(0); transform: translateZ(0); }


7
检查字符串是否与ruby中的正则表达式匹配的最快方法?
检查字符串是否与Ruby中的正则表达式匹配的最快方法是什么? 我的问题是,我必须通过大量的字符串“ egrep”来查找与运行时给出的regexp匹配的字符串。我只在乎字符串是否与正则表达式匹配,不在乎匹配的位置,也不在乎匹配组的内容。我希望这个假设可以减少我的代码用于匹配正则表达式的时间。 我加载正则表达式 pattern = Regexp.new(ptx).freeze 我发现它string =~ pattern的速度比稍快string.match(pattern)。 还有其他技巧或捷径可以使测试更快吗?

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.