Questions tagged «performance»

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

9
Android Recyclerview与带有Viewholder的ListView
我最近遇到了RecyclerView与Android 5.0一起发布的android 系统,它似乎RecyclerView只是一个封装的传统,ListView并结合了ViewHolder模式,该模式促进了视图的重用,而不是每次都创建它。 使用的其他好处是RecyclerView什么?如果两者在性能方面具有相同的效果,为什么还要选择RecyclerView`? 编辑 我发现人们也提出了类似的问题,并且答案不是确定性的,因此将其添加到此处以进行记录。 Recyclerview与Listview 我们应该使用RecyclerView替换ListView吗? 为什么RecyclerView没有onItemClickListener()?RecyclerView与Listview有何不同?

5
为什么arr = []比arr = new Array要快?
我运行了这段代码,并得到以下结果。我很好奇为什么[]会更快? console.time('using[]') for(var i=0; i<200000; i++){var arr = []}; console.timeEnd('using[]') console.time('using new') for(var i=0; i<200000; i++){var arr = new Array}; console.timeEnd('using new') 使用[]:299毫秒 使用new:363ms 感谢Raynos,这里是此代码的基准,以及定义变量的更多可能方式。

30
您看到的最荒谬的悲观是什么?[关闭]
按照目前的情况,这个问题不适合我们的问答形式。我们希望答案会得到事实,参考或专业知识的支持,但是这个问题可能会引起辩论,争论,民意调查或扩展讨论。如果您认为此问题可以解决并且可以重新提出,请访问帮助中心以获取指导。 8年前关闭。 我们都知道,过早的优化是万恶之源,因为它会导致代码无法读取/无法维护。更悲观的是悲观主义,因为有人实施“优化”是因为他们认为这样做会更快,但最终会变得更慢,而且有漏洞,无法维护等。您所看到的最荒谬的例子是?

2
gcc的快速数学实际上是做什么的?
我知道gcc的--ffast-math标志可以大大提高浮动操作的速度,并且超出了IEEE标准,但是我似乎无法找到有关启动时实际发生的情况的信息。谁能解释一些细节,或者给出一个清晰的例子,说明如果打开或关闭该标志会发生什么变化? 我确实尝试通过SO寻找类似问题,但找不到任何能解释快速数学原理的东西。

3
foreach,带有lambda的array_map和带有静态函数的array_map的性能
这三种方法(都用于将一个数组转换为另一个数组)之间的性能差异(如果有)是什么? 使用 foreach 使用array_map和λ/关闭功能 使用array_map带有“静态”函数/方法 还有其他方法吗? 为了使自己清楚,让我们看一下这些示例,它们都做同样的事情-将数字数组乘以10: $numbers = range(0, 1000); Foreach $result = array(); foreach ($numbers as $number) { $result[] = $number * 10; } return $result; 带有lambda的地图 return array_map(function($number) { return $number * 10; }, $numbers); 具有“静态”功能的地图,作为字符串引用传递 function tenTimes($number) { return $number * 10; } return array_map('tenTimes', $numbers); …

4
ByteBuffer.allocate()与ByteBuffer.allocateDirect()
到allocate()或到allocateDirect(),这就是问题。 几年以来,我一直坚持认为,由于DirectByteBuffers是操作系统级别的直接内存映射,因此与get相比,它在执行get / put调用时将执行得更快HeapByteBuffer。到目前为止,我从来没有真正想知道有关该情况的确切细节。我想知道这两种类型中ByteBuffer的哪种更快,以及在什么条件下。

8
JavaScript中的数组效率与对象效率
我有一个可能包含数千个对象的模型。我想知道什么是最有效的方式来存储它们并在获得ID后检索单个对象。ID是长数字。 这些是我正在考虑的两个选项。在选项一中,它是一个带有递增索引的简单数组。在选项2中,如果有区别,它是一个关联数组,也可能是一个对象。我的问题是,当我主要需要检索单个对象时,有时又遍历它们并进行排序时,哪一个效率更高。 具有非关联数组的选项一: var a = [{id: 29938, name: 'name1'}, {id: 32994, name: 'name1'}]; function getObject(id) { for (var i=0; i < a.length; i++) { if (a[i].id == id) return a[i]; } } 选项2与关联数组: var a = []; // maybe {} makes a difference? a[29938] = {id: 29938, name: 'name1'}; …

14
为什么require_once不好用?
我所读到的有关更好的PHP编码实践的所有内容一直在说不要require_once因为速度而使用。 为什么是这样? 做相同的事情的正确/更好的方法是什么require_once?如果有关系,我正在使用PHP 5。

13
.NET异常有多慢?
我不想讨论何时以及不引发异常。我希望解决一个简单的问题。99%的情况下,不引发异常的论点围绕它们的缓慢进行,而另一方声称(通过基准测试)速度不是问题。我已经阅读了许多有关某一方面的博客,文章和帖子。那是什么呢? 答案中的一些链接:Skeet,Mariani,Brumme。

11
确定记录是否存在的最快方法
就像标题所暗示的那样……我正在尝试以最少的开销找出最快的方法来确定表中是否存在记录。 查询样例: SELECT COUNT(*) FROM products WHERE products.id = ?; vs SELECT COUNT(products.id) FROM products WHERE products.id = ?; vs SELECT products.id FROM products WHERE products.id = ?; 假设?交换为'TB100'...,第一个查询和第二个查询都将返回完全相同的结果(例如1,此对话...)。最后一个查询将按'TB100'预期返回;如果id表中不存在,则不。 目的是弄清楚是否id在表中。如果不是,则程序将接下来插入记录,如果是,则程序将跳过该记录或基于此问题范围之外的其他程序逻辑执行UPDATE查询。 哪个更快,开销更少?(这将在每个程序运行中重复数万次,并且一天将运行多次)。 (通过提供的M $ JDBC驱动程序从Java对M $ SQL Server运行此查询)

13
如何使Windows能够与Linux一样快地进行C ++编译?
我知道这不是编程问题,而是相关的。 我从事一个相当大的跨平台项目。在Windows上,我使用VC ++2008。在Linux上,我使用gcc。该项目中大约有40k个文件。Windows在编译和链接相同项目时比Linux慢10到40倍。我该如何解决? 在Linux上一次更改增量构建20秒,在Windows上一次增量构建3分钟。为什么?我什至可以在Linux中安装“ gold”链接器,并将时间缩短到7秒。 同样,在Linux上,git比Windows快10到40倍。 在git的情况下,git可能不是以最佳方式使用Windows,而是VC ++?您可能会认为Microsoft希望使自己的开发人员尽可能高效,而更快的编译将大大有助于实现这一目标。也许他们正在尝试鼓励开发人员使用C#? 作为一个简单的测试,找到一个包含很多子文件夹的文件夹,然后做一个简单的 dir /s > c:\list.txt 在Windows上。进行两次,并为第二次运行计时,以便它从缓存中运行。将文件复制到Linux并进行等效的2次运行,并安排第二次运行的时间。 ls -R > /tmp/list.txt 我有2个具有完全相同规格的工作站。配备12千兆RAM,8核3.0 GHz的HP Z600s。在包含约40万个文件的文件夹中,Windows需要40秒,而Linux需要不到1秒。 我可以设置注册表设置来加快Windows速度吗?是什么赋予了? 一些与编译时间相关的稍微相关的链接,不一定是I / O。 显然,在Windows 10(不是Windows 7)中存在一个问题,即关闭进程持有全局锁。当使用多个内核进行编译时,因此会使用多个进程,因此会遇到此问题。 该/analyse选项可能会影响性能,因为它会加载Web浏览器。(此处不相关,但很高兴知道)



12
密封课程真的可以带来绩效收益吗?
我遇到了很多优化技巧,这些技巧说您应该将类​​标记为已密封,以获得更多的性能优势。 我进行了一些测试以检查性能差异,但没有发现。难道我做错了什么?我是否错过了密封类会带来更好结果的情况? 有没有人进行测试并发现差异? 帮我学习:)

4
Java 8:Streams与Collections的性能
我是Java 8的新手。我仍然不了解API的详细信息,但是我做了一个小型的非正式基准测试,以比较新Streams API与旧版Collections的性能。 该测试包括过滤的列表Integer,并针对每个偶数计算平方根并将其存储在结果List中Double。 这是代码: public static void main(String[] args) { //Calculating square root of even numbers from 1 to N int min = 1; int max = 1000000; List<Integer> sourceList = new ArrayList<>(); for (int i = min; i < max; i++) { sourceList.add(i); } List<Double> result = new …

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.