实列:
- Console.WriteLine("Hello World!");
- Console.WriteLine("当前计算机处理器数:{0}", Environment.ProcessorCount);
- ConcurrentQueue<Product> products = new ConcurrentQueue<Product>();
- /* 向集合中添加多条数据 可以修改数据量查看 Linq 和 Plinq 的性能 */
- Parallel.For(0, 60000000, (num) =>
- {
- products.Enqueue(new Product() {
- Category = "Category" + num, Name = "Name" + num, SellPrice = num
- });
- });
- /* 采用 LINQ 查询符合条件的数据 */
- Stopwatch sw = new Stopwatch();
- sw.Restart();
- var productListLinq = from product in products
- where (product.Name.Contains("1") && product.Name.Contains("2") && product.Category.Contains("1") && product.Category.Contains("2"))
- select product;
- Console.WriteLine("采用 Linq 查询得出数量为:{0}", productListLinq.Count());
- sw.Stop();
- Console.WriteLine("采用 Linq 耗时:{0}", sw.ElapsedMilliseconds);
- Console.WriteLine(DateTime.Now);
- /* 采用 PLINQ 查询符合条件的数据 */
- sw.Restart();
- var productListPLinq = from product in products.AsParallel() /*AsParallel 试图利用运行时所有可用的逻辑内核, 从而使运行的速度比串行的版本要快 但是需要注意开销所带来的性能损耗 */
- where (product.Name.Contains("1") && product.Name.Contains("2") && product.Category.Contains("1") && product.Category.Contains("2"))
- select product;
- Console.WriteLine("采用 PLinq 查询得出数量为:{0}", productListPLinq.Count());
- sw.Stop();
- Console.WriteLine(DateTime.Now);
- Console.WriteLine("采用 PLinq 耗时:{0}", sw.ElapsedMilliseconds);
- Console.ReadLine();
来源: http://www.bubuko.com/infodetail-3416044.html