Questions tagged «performance»

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

30
Java中的数组或列表。哪个更快?
我必须在内存中保留数千个字符串才能以Java顺序访问。我应该将它们存储在数组中还是应该使用某种List? 由于数组将所有数据保存在连续的内存块中(与列表不同),使用数组存储数千个字符串会不会引起问题?
351 java  arrays  list  performance 

30
在.NET中,“ for”或“ foreach”哪个循环运行得更快?
在C#/ VB.NET / .NET中,哪个循环运行得更快,for或者foreach? 自从我读了一个for循环工程快于foreach环路很久以前我以为这对所有集合,泛型集合,所有阵列,等真正站在 我搜寻了Google并发现了几篇文章,但其中大多数没有定论(阅读文章评论)且开放式。 理想的是列出每个方案,并为它们提供最佳解决方案。 例如(仅作为示例): 用于迭代1000个以上的字符串数组- for优于foreach 遍历IList(非通用)字符串- foreach比for 在网上找到了一些相同的参考资料: Emmanuel Schanzer撰写的原始宏大的旧文章 CodeProject FOREACH与。对于 博客- foreach是否接受foreach,这是一个问题 ASP.NET论坛-NET 1.1 C#for与foreach [编辑] 除了可读性之外,我对事实和数据真的很感兴趣。在某些应用程序中,压缩性能优化的最后一步很重要。
345 c#  .net  performance  for-loop 

4
PHP的Big-O列表
在使用PHP一段时间之后,我注意到并不是所有内置的PHP函数都能达到预期的速度。考虑函数的这两种可能的实现,该函数使用缓存的素数数组查找数字是否为素数。 //very slow for large $prime_array $prime_array = array( 2, 3, 5, 7, 11, 13, .... 104729, ... ); $result_array = array(); foreach( $prime_array => $number ) { $result_array[$number] = in_array( $number, $large_prime_array ); } //speed is much less dependent on size of $prime_array, and runs much faster. $prime_array => …

12
选择随机行PostgreSQL的最佳方法
我想要在PostgreSQL中随机选择行,我尝试了以下方法: select * from table where random() < 0.01; 但是其他一些建议: select * from table order by random() limit 1000; 我有一个很大的表,有5亿行,我希望它能很快。 哪种方法更好?有什么区别?选择随机行的最佳方法是什么?



11
在numpy数组上映射函数的最有效方法
在numpy数组上映射函数的最有效方法是什么?我在当前项目中一直采用的方式如下: import numpy as np x = np.array([1, 2, 3, 4, 5]) # Obtain array of square of each element in x squarer = lambda t: t ** 2 squares = np.array([squarer(xi) for xi in x]) 但是,这似乎效率很低,因为我正在使用列表推导将新数组构造为Python列表,然后再将其转换回numpy数组。 我们可以做得更好吗?


12
测试MySQL表中是否存在行的最佳方法
我试图找出表中是否存在行。使用MySQL,最好执行如下查询: SELECT COUNT(*) AS total FROM table1 WHERE ... 并检查总数是否非零,还是执行以下查询更好: SELECT * FROM table1 WHERE ... LIMIT 1 并检查是否返回任何行? 在两个查询中,WHERE子句均使用索引。
336 sql  mysql  performance  exists 


10
“ as”和可为空的类型带来的性能惊喜
我只是在修改C#中有关可空类型的第4章,并添加了有关使用“ as”运算符的部分,该部分允许您编写: object o = ...; int? x = o as int?; if (x.HasValue) { ... // Use x.Value in here } 我认为这确实很整洁,并且可以使用“ is”后跟强制类型转换来提高C#1等效项的性能-毕竟,这种方式我们只需要进行一次动态类型检查,然后进行简单的值检查。 但是,情况似乎并非如此。我在下面提供了一个示例测试应用程序,该应用程序基本上将对象数组中的所有整数相加-但该数组包含许多空引用和字符串引用以及装箱的整数。该基准测试可测量您在C#1中必须使用的代码,这些代码使用“ as”运算符,并且仅用于启动LINQ解决方案。令我惊讶的是,在这种情况下,C#1代码的速度提高了20倍-甚至LINQ代码(考虑到涉及的迭代器,我希望它也会更慢)击败了“ as”代码。 isinst可为空的类型的.NET实现真的很慢吗?是unbox.any导致问题的其他因素吗?对此还有其他解释吗?目前,感觉就像我将不得不警告不要在性能敏感的情况下使用此功能... 结果: 演员:10000000:121 身份:10000000:2211 LINQ:10000000:2143 码: using System; using System.Diagnostics; using System.Linq; class Test { const int Size = 30000000; static void Main() …

9
具有大型数据库文件的sqlite的性能特征是什么?[关闭]
已关闭。这个问题是基于观点的。它当前不接受答案。 想改善这个问题吗?更新问题,以便通过编辑此帖子以事实和引文回答。 6年前关闭。 改善这个问题 我知道sqlite即使支持超大数据库文件也不能很好地工作(在sqlite网站上曾经有评论说,如果您需要的文件大小超过1GB,则可能要考虑使用企业rdbms。找不到了,可能与旧版本的sqlite有关)。 但是,出于我的目的,我想在考虑其他解决方案之前先了解一下它的严重程度。 我说的是从2GB开始的数GB范围内的sqlite数据文件。有人对此有经验吗?有任何提示/想法吗?

22
获得π值的最快方法是什么?
我正在寻找获得π值的最快方法,这是个人的挑战。更具体地说,我使用的方式不涉及使用#define诸如的常数,也不用M_PI硬编码数字。 下面的程序测试了我所知道的各种方式。理论上,内联汇编版本是最快的选择,尽管显然不是便携式的。我将其作为与其他版本进行比较的基准。在我的测试中,使用内置功能,该4 * atan(1)版本在GCC 4.2上运行速度最快,因为它可以将折叠atan(1)为常数。使用-fno-builtin指定的atan2(0, -1)版本是最快的。 这是主要的测试程序(pitimes.c): #include <math.h> #include <stdio.h> #include <time.h> #define ITERS 10000000 #define TESTWITH(x) { \ diff = 0.0; \ time1 = clock(); \ for (i = 0; i < ITERS; ++i) \ diff += (x) - M_PI; \ time2 = clock(); \ printf("%s\t=> %e, time …

7
MySQL vs MongoDB 1000读取
我对MongoDb感到非常兴奋,并且最近对其进行了测试。我在MySQL中有一个名为posts的表,其中大约2000万条记录仅在名为“ id”的字段上建立索引。 我想将速度与MongoDB进行比较,然后运行了一个测试,该测试将从我们的大型数据库中随机获取并打印15条记录。我为mysql和MongoDB分别运行了约1,000次查询,但我惊讶地发现我在速度上并没有太大差异。也许MongoDB快1.1倍。真令人失望。我做错什么了吗?我知道我的测试并不完美,但是在阅读繁琐的杂物方面,MySQL与MongoDb相当。 注意: 我有双核+(2个线程)i7 cpu和4GB ram 我在MySQL上有20个分区,每个分区有1百万条记录 用于测试MongoDB的示例代码 <?php function microtime_float() { list($usec, $sec) = explode(" ", microtime()); return ((float)$usec + (float)$sec); } $time_taken = 0; $tries = 100; // connect $time_start = microtime_float(); for($i=1;$i<=$tries;$i++) { $m = new Mongo(); $db = $m->swalif; $cursor = $db->posts->find(array('id' => array('$in' => …

8
逐行读取文本文件的最快方法是什么?
我想逐行阅读文本文件。我想知道我是否在.NET C#范围内尽可能高效地执行此操作。 到目前为止,这是我正在尝试的方法: var filestream = new System.IO.FileStream(textFilePath, System.IO.FileMode.Open, System.IO.FileAccess.Read, System.IO.FileShare.ReadWrite); var file = new System.IO.StreamReader(filestream, System.Text.Encoding.UTF8, true, 128); while ((lineOfText = file.ReadLine()) != null) { //Do something with the lineOfText }

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.