简单测试lambda和linq查找的性能
2012-07-31 11:54
113 查看
在List泛型中查找一个值(唯一),究竟用哪种方法快点呢。for循环、foreach迭代器、Lambda表达式、Linq语句。
简单的写了一个程序测试一下。思路:构造一个有26843545个int元素List泛型(从小到大)。然后复制四份,准备用于查找。随机生成一个查找内容,用Stopwatch来检查运行时间。
代码如下:
CombinePredicates实现
可见,Linq的写法是提高程序员的编程效率,而执行效率是会降低的。但是在现在的硬件环境下,一般的数据容量这些降低可以忽略。但是如果你的数据量有1亿,就另当别论。不过,就我的这个程序,消耗内存也挺大的,一个控制台程序都要600多M内存(一共有5个千万单元的list喔^_^)。
简单的写了一个程序测试一下。思路:构造一个有26843545个int元素List泛型(从小到大)。然后复制四份,准备用于查找。随机生成一个查找内容,用Stopwatch来检查运行时间。
代码如下:
CombinePredicates实现
private static Func<TSource, bool> CombinePredicates<TSource>(Func<TSource, bool> predicate1, Func<TSource, bool> predicate2) { return delegate (TSource x) { if (predicate1(x)) { return predicate2(x); } return false; }; }
可见,Linq的写法是提高程序员的编程效率,而执行效率是会降低的。但是在现在的硬件环境下,一般的数据容量这些降低可以忽略。但是如果你的数据量有1亿,就另当别论。不过,就我的这个程序,消耗内存也挺大的,一个控制台程序都要600多M内存(一共有5个千万单元的list喔^_^)。
相关文章推荐
- 简单测试linq to sql性能
- 做了一个简单的DLINQ性能测试
- IKAnalyzer结合Lucene使用和单独使用例子 简单性能测试
- JMeter基础之一 一个简单的性能测试
- 冒泡排序,选择排序,插入排序,快速排序的简单性能测试
- MySQL中MyISAM引擎与InnoDB引擎性能简单测试
- Selenium简单测试页面加载速度的性能(Page loading performance)
- JMeter基础之一 一个简单的性能测试
- 在C/C++代码中使用SSE等指令集的指令(5)SSE进行加法运算简单的性能测试
- 性能测试中用LambdaProbe监控Tomcat
- android ORM框架的性能简单测试(androrm vs ormlite)
- 在C/C++代码中使用SSE等指令集的指令(5)SSE进行加法运算简单的性能测试
- 在C/C++代码中使用SSE等指令集的指令(5)SSE进行加法运算简单的性能测试
- 性能测试中用LambdaProbe监控Tomcat
- 性能测试中用LambdaProbe监控Tomcat Tomcat和Probe的配置
- sparkstreaming性能测试简单例子--53
- MySQL中MyISAM引擎与InnoDB引擎性能简单测试
- 利用console进行简单的js性能测试
- 使用AOP,在spring中实现简单的性能测试