Questions tagged «performance»

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

19
倒数比倒数快吗?
我们的计算机科学老师曾经说过,由于某种原因,倒数比倒数更有效。例如,如果您需要使用FOR循环,而循环索引未在某处使用(例如在屏幕上打印N *行),则表示这样的代码: for (i = N; i >= 0; i--) putchar('*'); 优于: for (i = 0; i < N; i++) putchar('*'); 是真的吗 如果是这样,有人知道为什么吗?
131 c  performance  loops 

8
如何在Scala中优化理解和循环?
因此,Scala应该和Java一样快。我正在重新研究最初在Java中解决的Scala Project Euler问题。尤其是问题5:“能被1到20的所有数均分的最小正数是多少?” 这是我的Java解决方案,需要0.7秒才能在我的计算机上完成: public class P005_evenly_divisible implements Runnable{ final int t = 20; public void run() { int i = 10; while(!isEvenlyDivisible(i, t)){ i += 2; } System.out.println(i); } boolean isEvenlyDivisible(int a, int b){ for (int i = 2; i <= b; i++) { if (a % i != …

9
如何基准测试PHP脚本的效率
我想知道什么是基准测试我的PHP脚本的最佳方法。cron作业,网页或Web服务无关紧要。 我知道我可以使用microtime,但这真的给了我PHP脚本的实时性吗? 我想测试和比较PHP中执行相同功能的不同函数。例如,preg_matchvs strpos或domdocumentvs preg_match或preg_replace vs str_replace` 网页示例: <?php // login.php $start_time = microtime(TRUE); session_start(); // do all my logic etc... $end_time = microtime(TRUE); echo $end_time - $start_time; 这将输出:0.0146126717(一直在变化-但这是我得到的最后一个)。这意味着执行PHP脚本大约需要0.015。 有没有更好的办法?

5
减少Haskell程序中的垃圾收集暂停时间
我们正在开发一个程序,该程序可以接收和转发“消息”,同时保留这些消息的临时历史记录,以便在需要时可以告诉您消息的历史记录。消息是通过数字标识的,通常大小约为1 KB,我们需要保留成百上千的此类消息。 我们希望针对延迟优化此程序:发送和接收消息之间的时间必须小于10毫秒。 该程序用Haskell编写,并由GHC编译。但是,我们发现,垃圾回收暂停对于我们的延迟要求来说太长了:在我们的实际程序中超过100毫秒。 以下程序是我们应用程序的简化版本。它使用a Data.Map.Strict来存储消息。消息ByteString由标识Int。1,000,000条消息以递增的数字顺序插入,并且最旧的消息不断被删除,以使历史记录最多保留200,000条消息。 module Main (main) where import qualified Control.Exception as Exception import qualified Control.Monad as Monad import qualified Data.ByteString as ByteString import qualified Data.Map.Strict as Map data Msg = Msg !Int !ByteString.ByteString type Chan = Map.Map Int ByteString.ByteString message :: Int -> Msg message n = …

18
什么时候应该使用内联与外部Javascript?
我想知道何时应该包括外部脚本或将它们与html代码内联地编写,以提高性能并简化维护。 一般做法是什么? 真实场景-我有几个需要客户端表单验证的html页面。为此,我使用了所有这些页面中都包含的jQuery插件。但是问题是,我是否: 编写代码位以内联方式配置此脚本? 在所有这些html页面之间共享的一个文件中包含所有位? 将每个位都包含在一个单独的外部文件中,每个html页面一个? 谢谢。

4
“ x <y <z”比“ x <y和y <z”快吗?
从此页面,我们知道: 链式比较比使用and运算符要快。写x &lt; y &lt; z而不是x &lt; y and y &lt; z。 但是,测试以下代码片段时,我得到了不同的结果: $ python -m timeit "x = 1.2" "y = 1.3" "z = 1.8" "x &lt; y &lt; z" 1000000 loops, best of 3: 0.322 usec per loop $ python -m timeit "x = 1.2" "y = 1.3" …

17
Xcode 4-性能下降
我对Xcode 4确实存在一个问题,它对用户交互的响应速度非常慢,例如,编辑代码,滚动区域等。这种情况尤其发生在具有许多控制器/视图文件等的大型项目中。 我完全擦干了硬盘,并在前一周重新安装了Snow Leopard和Xcode,但稳定地将其恢复为令人沮丧的响应时间(经过数天),从而极大地破坏了工作流程。 我有时还通过Organizer-&gt; Projects删除了该项目的“派生数据”,但效果不大。 我想知道是否有什么办法可以提高性能,而不是在一开始就获得更高规格的机器。 仅供参考,我正在运行配备2 GHz和4GB RAM的Intel Core 2 Duo处理器的MacBook。 万一我们需要升级,我还想知道人们是否在性能良好的机器上从Xcode 4体验到了这种较差的性能(这会使我们的硬件升级变得毫无意义,因为它是MacBook上唯一出现性能问题的Xcode)。 如果有人有任何建议或建议,甚至可以让我们知道改进的硬件如何影响Xcode在较大项目树上的性能,那么这将是非常有帮助的,对于其他处于相似位置的开发人员来说也是宝贵的资源。

1
在此示例中,为什么“严格使用”将性能提高了10倍?
我真的很感兴趣,因为扩展了String.prototype性能这个问题,因为仅添加"use strict"一种String.prototype方法就可以将性能提高10倍。该解释由BERGI是短暂的,并没有向我解释。为什么两种几乎完全相同的方法之间有如此巨大的差异,只是"use strict"顶部之间存在差异?您能否更详细地解释其背后的理论? String.prototype.count = function(char) { var n = 0; for (var i = 0; i &lt; this.length; i++) if (this[i] == char) n++; return n; }; String.prototype.count_strict = function(char) { "use strict"; var n = 0; for (var i = 0; i &lt; this.length; i++) if (this[i] == …

1
为什么这个F#代码这么慢?
C#和F#中的Levenshtein实现。对于大约1500个字符的两个字符串,C#版本的速度提高了10倍。C#:69毫秒,F#867毫秒。为什么?据我所知,他们做的完全相同吗?不管是Release版本还是Debug版本。 编辑:如果有人来这里专门寻找“编辑距离”实现,那么它就坏了。工作代码在这里。 C#: private static int min3(int a, int b, int c) { return Math.Min(Math.Min(a, b), c); } public static int EditDistance(string m, string n) { var d1 = new int[n.Length]; for (int x = 0; x &lt; d1.Length; x++) d1[x] = x; var d0 = new int[n.Length]; for(int i …
127 c#  performance  f#  inline 

5
将Java 7编译代码升级到Java 8有什么好处?
我有一个使用Java 7编写的旧应用程序。它在Java 8 JRE中运行良好。我不打算重写任何代码来利用Java 8功能。将编译后的代码升级到最新的Java 8 JDK有什么技术好处? 需要明确的是,该代码当前是使用Java 7编译的,并且已经与最新的Java 8 JRE一起运行。它应该已经从Java 8运行时改进中受益。问题是,使用版本8进行编译并使用Java 8编译的字节码运行是否会获得任何好处。 另外,我也不关心开发人员生产率之类的非技术利益。我认为这些很重要,但不是这个问题的重点。我要的是没有开发团队的生产代码。它完全处于维护模式。
127 java  performance  java-8 

3
在渲染时间和性能方面,Panel最有效的顺序是什么?
很多时候,一个以上的面板都适合我想要的布局,但是我知道不同面板类型的渲染时间有所不同。 例如,MSDN指出 相对简单的Panel(例如)Canvas比复杂的Panel(例如)具有明显更好的性能Grid。 那么就渲染时间和性能而言,WPF面板最有效的顺序是什么? WPF面板: Canvas DockPanel Grid UniformGrid StackPanel WrapPanel VirtualizingPanel / VirtualizingStackPanel 我相当确定我在网上某个地方看到了此列表,但现在找不到。 我正在寻找的理想答案是按顺序提供面板列表,以使它们以最快的速度呈现。我理解孩子的数量是在面板的效率有多高是一个很大的因素,所以对于这个问题起见,假设每个小组只有一个Label/ TextBox对。 此外,我还希望列出一些例外情况,例如,在某些条件下,某些小组的表现要优于其他小组。 更新资料 根据以下公认的答案进行总结,面板性能取决于子项的数量和布局,但是总的来说,从最快到最慢的列表是: Canvas StackPanel WrapPanel DockPanel Grid 另外,如果有很多项目不总是显示在屏幕上,则应始终使用VirtualizingPanel/ VirtualizingStackPanel。 我强烈建议您在从列表中选择一项之前,阅读以下接受的答案以获取更多详细信息。

9
在Python 3中加速数百万个正则表达式的替换
我正在使用Python 3.5.2 我有两个清单 大约750,000个“句子”(长字符串)的列表 我想从我的750,000个句子中删除的大约20,000个“单词”的列表 因此,我必须遍历750,000个句子并执行大约20,000个替换,但前提是我的单词实际上是“单词”,并且不属于较大的字符串。 我这样做是通过预编译我的单词,使它们位于\b元字符的侧面 compiled_words = [re.compile(r'\b' + word + r'\b') for word in my20000words] 然后我遍历我的“句子” import re for sentence in sentences: for word in compiled_words: sentence = re.sub(word, "", sentence) # put sentence into a growing list 这个嵌套循环每秒处理大约50个句子,这很好,但是处理我所有的句子仍需要几个小时。 有没有一种方法可以使用该str.replace方法(我认为该方法更快),但仍然要求仅在单词边界处进行替换? 或者,有没有办法加快该re.sub方法?re.sub如果单词的长度大于句子的长度,我已经略微提高了速度,但这并没有太大的改进。 感谢您的任何建议。

2
具有动态变量如何影响性能?
我对dynamicC#的性能有疑问。我读过dynamic使编译器再次运行,但是它做什么呢? 是否必须使用dynamic变量作为参数重新编译整个方法,还是仅使用动态行为/上下文重新编译整个方法? 我注意到使用dynamic变量会使简单的for循环速度降低2个数量级。 我玩过的代码: internal class Sum2 { public int intSum; } internal class Sum { public dynamic DynSum; public int intSum; } class Program { private const int ITERATIONS = 1000000; static void Main(string[] args) { var stopwatch = new Stopwatch(); dynamic param = new Object(); DynamicSum(stopwatch); SumInt(stopwatch); SumInt(stopwatch, …
127 c#  performance  dynamic 

2
PostgreSQL表太大了?
我正在为我的公司进行RoR项目的设计,而我们的开发团队已经对设计(尤其是数据库)进行了一些辩论。 我们有一个Message需要持久化的模型。这是一个非常小的模型,除了id之外只有三个db列,但是当我们投入生产时,可能会有很多这样的模型。我们每天要查询多达1,000,000次插入。只能通过可索引的两个外键来搜索模型。同样,不必删除模型,但是一旦它们使用了大约三个月,我们也不必保留它们。 因此,我们想知道的是,在Postgres中实现此表是否会带来严重的性能问题?有没有人有使用大型SQL数据库的经验来告诉我们这是否会成为问题?如果是这样,我们应该选择哪种选择?

14
在ruby中使用单引号和双引号是否会提高性能?
您是否知道在ruby中使用双引号而不是单引号会以任何有意义的方式在ruby 1.8和1.9中降低性能。 所以如果我输入 question = 'my question' 比它快吗 question = "my question" 我想像一下,ruby会尝试找出某些事物在遇到双引号时是否需要评估,并可能花费一些周期来进行评估。
126 ruby  performance  syntax 

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.