Questions tagged «performance»

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

6
MySQL“ IN”运算符在(大)数量值上的性能
我最近一直在使用Redis和MongoDB进行实验,似乎经常会在MongoDB或Redis中存储ID数组。因为我要询问MySQL IN运算符,所以我会坚持使用Redis 。 我想知道在IN运算符中列出大量(300-3000)id的性能如何,看起来像这样: SELECT id, name, price FROM products WHERE id IN (1, 2, 3, 4, ...... 3000) 想象一下简单的产品和类别表,您通常可以将它们结合在一起以从某个类别中获得产品。在上面的示例中,您可以看到在Redis()中的给定类别下,我返回了ID为4的类别中的所有产品ID,并将其放置在运算符内的上述查询中。category:4:product_idsSELECTIN 这表现如何? 这是“取决于情况”的情况吗?还是有一个具体的“不可接受”,“快速”或“缓慢”,或者我应该添加LIMIT 25,还是没有帮助? SELECT id, name, price FROM products WHERE id IN (1, 2, 3, 4, ...... 3000) LIMIT 25 还是应该修剪Redis返回的产品ID的数组以将其限制为25,并且仅将25个ID添加到查询中而不是添加3000,并LIMIT从查询内部将其添加到25? SELECT id, name, price FROM products WHERE id IN …


12
加速IntelliJ-Idea
我正在使用intelliJ进行Scala开发,上周获得了8 GB的新RAM,所以我想:该使用它了。我检查了任务管理器,发现使用约250mb的intelliJ。从eclipse中,我知道调整JVM选项对提高速度有很大帮助,所以我用谷歌搜索... 并在OS X上找到了这个, 我无法立即找到JVM选项,因此我开始调整Xmx。在1 GB时,我意识到它不再启动。我检查了intelliJ Java版本,发现它已经过时且为32位。 因此,为了使用当前的JDK和64位,您必须将链接更改为: IntelliJ IDEA Community Edition 10.0.2\bin\idea.exe 至 IntelliJ IDEA Community Edition 10.0.2\bin\idea.BAT 并调整“开始于” 蝙蝠JDK_HOME现在正在寻找并使用64位。 我当前的VM选项,位于 ...\IntelliJ IDEA Community Edition 10.0.2\bin\idea.exe.vmoptions 是 -Xms512m -Xmx1024m -XX:MaxPermSize=512m -ea -server -XX:+DoEscapeAnalysis -XX:+UseCompressedOops -XX:+UnlockExperimentalVMOptions -XX:+UseParallelGC 相反的-XX:+UseParallelGC,你可以使用-XX:+UseConcMarkSweepGC,这是 桌面应用程序的公认选择,但最近我已更改为吞吐量收集器。因为使用一台快速的计算机和足够小的堆,您将获得快速的暂停,更多的吞吐量,并且不会出现碎片问题(ijuma。#scala) 变化: -XX:+UseConcMarkSweepGC //removed // removed, because not needed with the lastest …

6
在Python中复制字典的快速方法
我有一个Python程序,可与字典配合使用。我必须复制字典数千次。我需要密钥和关联内容的副本。该副本将被编辑,并且不得链接到原始副本(例如,副本中的更改不得影响原始副本。) 键是字符串,值是整数(0/1)。 我目前使用一种简单的方法: newDict = oldDict.copy() 对我的代码进行性能分析表明,复制操作花费了大部分时间。 有没有更快的替代dict.copy()方法?什么是最快的?

7
如何在不使用第三方库的情况下登录C#?[关闭]
已关闭。这个问题需要更加集中。它当前不接受答案。 想改善这个问题吗?更新问题,使其仅通过编辑此帖子来关注一个问题。 去年关闭。 改善这个问题 我想在我的应用程序中实现日志记录,但不希望使用任何外部框架,例如log4net。 因此,我想做类似DOS 对文件的回显。最有效的方法是什么? 有没有办法在不使用外部框架的情况下记录未处理的异常?

1
HashSet <T> .removeAll方法出奇的慢
乔恩·斯凯特(Jon Skeet)最近在他的博客上提出了一个有趣的编程主题:“我的抽象中有一个漏洞,亲爱的Liza,亲爱的Liza”(强调): 我有一套- HashSet实际上。我想从中删除一些项目……许多项目可能不存在。实际上,在我们的测试案例中,“删除”集合中的所有项目都不在原始集中。这听起来(确实是)非常容易编码。毕竟,我们Set&lt;T&gt;.removeAll需要帮助我们,对吧? 我们在命令行上指定“源”集的大小和“删除”集合的大小,然后构建它们两者。源集仅包含非负整数;清除集仅包含负整数。我们将使用来测量删除所有元素所需的时间System.currentTimeMillis(),这并不是世界上最精确的秒表,但是在这种情况下,这已经足够了。这是代码: import java.util.*; public class Test { public static void main(String[] args) { int sourceSize = Integer.parseInt(args[0]); int removalsSize = Integer.parseInt(args[1]); Set&lt;Integer&gt; source = new HashSet&lt;Integer&gt;(); Collection&lt;Integer&gt; removals = new ArrayList&lt;Integer&gt;(); for (int i = 0; i &lt; sourceSize; i++) { source.add(i); } for (int i …

6
大熊猫的行程是否有性能问题?
我注意到使用大熊猫的散列时的效果非常差。 这是别人的经历吗?它特定于迭代吗?对于一定大小的数据(我要处理2-3百万行),应该避免使用此功能吗? 在GitHub上进行的讨论使我相信,这是在数据帧中混合dtypes时引起的,但是下面的简单示例显示,即使使用一个dtype(float64)也存在该问题。这在我的机器上需要36秒: import pandas as pd import numpy as np import time s1 = np.random.randn(2000000) s2 = np.random.randn(2000000) dfa = pd.DataFrame({'s1': s1, 's2': s2}) start = time.time() i=0 for rowindex, row in dfa.iterrows(): i+=1 end = time.time() print end - start 为什么矢量化运算之类的应用这么快?我想象那里也必须进行逐行迭代。 我无法弄清楚如何在我的情况下不使用迭代(这将在以后的问题中进行介绍)。因此,如果您一直能够避免这种迭代,不胜感激。我正在基于单独数据框中的数据进行计算。谢谢! ---编辑:下面添加了我要运行的简化版本--- import pandas as pd import …

4
常量正确性可以提高性能吗?
我已经读过很多遍了,在C或C ++代码中强制执行const正确性不仅是关于可维护性的好习惯,而且还可以使您的编译器执行优化。但是,我也读过完全相反的内容,它完全不影响性能。 因此,您是否有一些示例说明const正确性可以帮助您的编译器改善程序性能?

5
在Django QuerySet上计算vs len
在Django中,假设我QuerySet要遍历并打印结果,那么计算对象的最佳选择是什么?len(qs)还是qs.count()? (此外,考虑到在相同的迭代中对对象进行计数也是不可行的。)

5
Android SQLite数据库:插入缓慢
我需要解析一个相当大的XML文件(大约在100 KB到几百KB之间)Xml#parse(String, ContentHandler)。我目前正在使用152KB文件进行测试。 在解析期间,我还使用类似于以下内容的调用将数据插入SQLite数据库中getWritableDatabase().insert(TABLE_NAME, "_id", values)。对于152KB的测试文件,所有这些总共花费了80秒左右的时间(大约可插入200行)。 当我注释掉所有插入语句(但保留所有其他内容,如创建ContentValues等)时,同一文件仅需23秒。 数据库操作有这么大的开销是否正常?我能做些什么吗?

4
浮动vs双重表现
我做了一些计时测试,还读了一些类似这样的文章(最后评论),在Release build中,float和double值看起来花费了相同的处理时间。 这怎么可能?当float比double值精度低且较小时,CLR如何在相同的处理时间内将double值加倍?
91 c#  .net  clr  performance 

4
编译的C#Lambda表达式性能
考虑对集合进行以下简单操作: static List&lt;int&gt; x = new List&lt;int&gt;() { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 }; var result = x.Where(i =&gt; i % 2 == 0).Where(i =&gt; i &gt; 5); 现在让我们使用表达式。以下代码大致等效: static void UsingLambda() { Func&lt;IEnumerable&lt;int&gt;, IEnumerable&lt;int&gt;&gt; lambda = l =&gt; l.Where(i =&gt; i % 2 == …

5
打开/关闭标签和性能?
这可能是一个愚蠢的问题,但是作为PHP的新手,我想知道在HTML模板代码中频繁打开和关闭PHP标签是否存在任何与性能相关的问题,如果是的话,最佳实践是什么?使用PHP标签? 我的问题不是关闭标签的重要性/正确性,或者不是哪种类型的代码比另一种更具可读性,而是关于文档的解析/执行方式及其对性能的影响。 为了说明,请考虑以下两个极端: 混合使用PHP和HTML标签: &lt;?php echo '&lt;tr&gt; &lt;td&gt;'.$variable1.'&lt;/td&gt; &lt;td&gt;'.$variable2.'&lt;/td&gt; &lt;td&gt;'.$variable3.'&lt;/td&gt; &lt;td&gt;'.$variable4.'&lt;/td&gt; &lt;td&gt;'.$variable5.'&lt;/td&gt; &lt;/tr&gt;' ?&gt; // PHP tag opened once 分离PHP和HTML标签: &lt;tr&gt; &lt;td&gt;&lt;?php echo $variable1 ?&gt;&lt;/td&gt; &lt;td&gt;&lt;?php echo $variable2 ?&gt;&lt;/td&gt; &lt;td&gt;&lt;?php echo $variable3 ?&gt;&lt;/td&gt; &lt;td&gt;&lt;?php echo $variable4 ?&gt;&lt;/td&gt; &lt;td&gt;&lt;?php echo $variable5 ?&gt;&lt;/td&gt; &lt;/tr&gt; // PHP tag opened five times 即使只是听说它没有区别,也有兴趣听取一些对此的看法。 谢谢。

6
在Java中,使用byte或short代替int和float代替double效率更高吗?
我注意到我总是使用int并加倍,无论数字的大小是多少。因此,在Java中,使用byte或short代替int和float代替会更有效double吗? 因此,假设我有一个包含很多整数和双精度数的程序。如果我知道这个数字合适,将我的整数更改为字节或短裤是否值得? 我知道Java没有无符号类型,但是如果我知道数字只会是正数,我还能做些额外的事情吗? 高效,我主要是指处理。我认为,如果所有变量的大小都减半,那么垃圾收集器的速度将大大提高,并且计算速度也可能会更快。(我想因为我在android上工作,所以我也需要担心ram) (我假设垃圾收集器仅处理对象,而不处理原始对象,但仍然删除废弃对象中的所有原始对象,对吗?) 我用一个小型的Android应用程序进行了尝试,但实际上并没有发现任何区别。(尽管我没有“科学地”测量任何东西。) 我以为它应该更快,更有效吗?我不希望在大型程序中进行更改,以发现自己浪费了时间。 当我开始一个新项目时,从一开始就值得做吗?(我的意思是,我认为一点点都会有所帮助,但是如果有的话,那又是一次,为什么似乎没有人这样做呢?)


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.