Questions tagged «performance»

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


7
C#Sort和OrderBy比较
我可以使用Sort或OrderBy对列表进行排序。哪一个更快?两者都在使用相同的算法吗? List<Person> persons = new List<Person>(); persons.Add(new Person("P005", "Janson")); persons.Add(new Person("P002", "Aravind")); persons.Add(new Person("P007", "Kazhal")); 1。 persons.Sort((p1,p2)=>string.Compare(p1.Name,p2.Name,true)); 2。 var query = persons.OrderBy(n => n.Name, new NameComparer()); class NameComparer : IComparer<string> { public int Compare(string x,string y) { return string.Compare(x, y, true); } }

4
JavaScript中对象/数组的性能如何?(专门针对Google V8)
与JavaScript(特别是Google V8)中的数组和对象相关的性能非常有趣。我在Internet上的任何地方都找不到有关此主题的详尽文章。 我了解某些对象使用类作为其基础数据结构。如果有很多属性,有时将其视为哈希表? 我也了解有时将数组像C ++数组一样对待(即快速随机索引,缓慢删除和调整大小)。而且,有时将它们更像对象(快速索引,快速插入/删除,更多内存)。而且,也许有时它们以链接列表的形式存储(即慢速随机索引,开始/结尾处的快速删除/插入) JavaScript中数组/对象检索和操作的精确性能是什么?(专门针对Google V8) 更具体地说,它对性能的影响: 向对象添加属性 从对象删除属性 索引对象中的属性 将项目添加到数组 从阵列中删除项目 索引数组中的项目 调用Array.pop() 调用Array.push() 调用Array.shift() 调用Array.unshift() 调用Array.slice() 任何文章或更多细节的链接也将不胜感激。:) 编辑:我真的很想知道JavaScript数组和对象如何在后台工作。另外,在什么情况下 V8引擎“知道”要“切换”到另一个数据结构? 例如,假设我用...创建一个数组 var arr = []; arr[10000000] = 20; arr.push(21); 这到底是怎么回事? 还是...这呢... ??? var arr = []; //Add lots of items for(var i = 0; i < 1000000; i++) …



3
为什么我的应用程序会花费其生命的24%进行空检查?
我有一个性能至关重要的二进制决策树,我想将这个问题集中在一行代码上。下面是二叉树迭代器的代码,其中包含针对它进行性能分析的结果。 public ScTreeNode GetNodeForState(int rootIndex, float[] inputs) { 0.2% ScTreeNode node = RootNodes[rootIndex].TreeNode; 24.6% while (node.BranchData != null) { 0.2% BranchNodeData b = node.BranchData; 0.5% node = b.Child2; 12.8% if (inputs[b.SplitInputIndex] <= b.SplitValue) 0.8% node = b.Child1; } 0.4% return node; } BranchData是一个字段,而不是属性。我这样做是为了防止不被内联的风险。 BranchNodeData类如下: public sealed class BranchNodeData { /// …

11
在C#中对小型代码样本进行基准测试,是否可以改善此实现?
经常在SO上我发现自己对一小段代码进行基准测试,以了解哪种实现速度最快。 我经常看到这样的评论,即基准测试代码未考虑到jitting或垃圾收集器。 我具有以下逐步发展的简单基准测试功能: static void Profile(string description, int iterations, Action func) { // warm up func(); // clean up GC.Collect(); var watch = new Stopwatch(); watch.Start(); for (int i = 0; i < iterations; i++) { func(); } watch.Stop(); Console.Write(description); Console.WriteLine(" Time Elapsed {0} ms", watch.ElapsedMilliseconds); } 用法: Profile("a descriptions", …

4
分析Haskell程序性能的工具
在解决一些Euler项目问题​​以学习Haskell时(目前我是一个完全的初学者),我遇到了问题12。我写了这个(幼稚的)解决方案: --Get Number of Divisors of n numDivs :: Integer -> Integer numDivs n = toInteger $ length [ x | x<-[2.. ((n `quot` 2)+1)], n `rem` x == 0] + 2 --Generate a List of Triangular Values triaList :: [Integer] triaList = [foldr (+) 0 [1..n] | n <- …

8
获取数组元素的索引比O(n)更快
给定我有一个巨大的数组,并从中得到一个值。我想获取数组中值的索引。还有其他方法,而不是致电Array#index获取吗?问题来自需要保持非常大的数组并调用Array#index大量的时间。 经过几次尝试,我发现通过存储具有字段的结构而不是值本身来缓存元素内部的索引(value, index)在性能方面迈出了一大步(获胜20倍)。 我仍然想知道是否有一种更方便的方法来查找en元素的索引而不进行缓存(或者有一种很好的缓存技术可以提高性能)。


20
使用GC.Collect()有什么问题?
尽管我确实理解使用此功能的严重意义(或者至少是我的想法),但我无法理解为什么它成为受尊敬的程序员永远不会使用的东西之一,即使那些甚至不知道的人是为了什么 假设我正在开发一个应用程序,该应用程序的内存使用量会根据用户的操作而变化很大。应用程序的生命周期可以分为两个主要阶段:编辑和实时处理。在编辑阶段,假设创建了数十亿甚至数万亿个对象。其中有些很小,有些则没有,有些可能没有终结器,而有些寿命可能从几毫秒到很长时间不等。接下来,用户决定切换到实时阶段。在这一点上,假设性能起着根本性的作用,并且程序流程中的任何细微改动都可能带来灾难性的后果。然后,通过使用对象池等将对象创建减少到最小程度,但是GC意外插入并扔掉所有对象,然后有人死亡。 问题:在这种情况下,进入第二阶段之前调用GC.Collect()是否明智? 毕竟,这两个阶段永远不会在时间上相互重叠,并且GC可以收集的所有优化和统计信息在这里几乎没有用处... 注意:正如您中某些人指出的那样,.NET可能不是适用于此类应用程序的最佳平台,但这超出了此问题的范围。目的是弄清楚GC.Collect()调用是否可以改善应用程序的整体行为/性能。我们都同意,在这种情况下您会做这种事情的情况极为罕见,但是GC再次尝试猜测并在大多数情况下都做得很好,但这仍然只是猜测。 谢谢。


5
Java转换会带来开销吗?为什么?
当我们将一种类型的对象转换为另一种类型时,是否会有开销?还是编译器可以解决所有问题,并且在运行时没有成本? 这是一般的事情,还是有不同的情况? 例如,假设我们有一个Object []数组,其中每个元素可能具有不同的类型。但是我们始终可以肯定地知道,例如,元素0是Double,元素1是String。(我知道这是一个错误的设计,但是让我们假设我必须这样做。) Java的类型信息是否仍在运行时保留?还是编译后一切都被遗忘了,如果我们执行(Double)elements [0],我们将仅遵循指针并将这8个字节解释为double,无论是什么? 我不清楚在Java中如何完成类型。如果您对书籍或文章有任何建议,那么也谢谢。

3
Timertask或Handler
假设我想每隔10秒执行一次操作,而不必更新视图。 问题是:将timer与timertask一起使用会更好(我的意思是更有效): final Handler handler = new Handler(); TimerTask timertask = new TimerTask() { @Override public void run() { handler.post(new Runnable() { public void run() { <some task> } }); } }; timer = new Timer(); timer.schedule(timertask, 0, 15000); } 或只是带有延迟的处理程序 final Handler handler = new Handler(); final Runnable r …

14
ASP.NET MVC性能
我发现一些疯狂的言论,即ASP.NET MVC比ASP.NET WebForms快30倍。有什么实际的性能差异,已对此进行了测量以及性能优势是什么? 这是为了帮助我考虑从ASP.NET WebForms迁移到ASP.NET MVC。

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.