Rumah > pembangunan bahagian belakang > C++ > Bagaimanakah Parallel.ForEach Meningkatkan Prestasi Berbanding dengan Gelung Foreach Tradisional dalam .NET?

Bagaimanakah Parallel.ForEach Meningkatkan Prestasi Berbanding dengan Gelung Foreach Tradisional dalam .NET?

Susan Sarandon
Lepaskan: 2025-01-06 00:36:38
asal
654 orang telah melayarinya

How Does Parallel.ForEach Improve Performance Compared to a Traditional Foreach Loop in .NET?

Pemprosesan Selari dengan Parallel.ForEach

Pengaturcaraan selari meningkatkan prestasi aplikasi dengan memanfaatkan berbilang teras pemproses. Parallel.ForEach ialah binaan berkuasa yang memudahkan pemprosesan selari dalam aplikasi .NET.

Foreach Loop vs. Parallel.ForEach

Gelung foreach tradisional melakukan lelaran secara berurutan pada benang tunggal. Parallel.ForEach, sebaliknya, mengagihkan beban kerja merentas berbilang urutan, membolehkan pelaksanaan serentak lelaran.

Ciri-ciri Gelung Foreach:

  • Pelaksanaan berurutan daripada lelaran
  • Urut tunggal penggunaan
  • Sesuai untuk operasi pantas di mana overhed benang tidak penting

Ciri-ciri Parallel.ForEach:

  • Pelaksanaan selari bagi lelaran
  • Berbilang utas penggunaan
  • Bermanfaat untuk operasi perlahan di mana penyejajaran meningkatkan prestasi

Menukar kepada Parallel.ForEach

Untuk menukar coretan kod yang diberikan kepada Parallel.ForEach:

Parallel.ForEach(list_lines, line =>
{
    // My Stuff
});
Salin selepas log masuk

Contoh

Contoh berikut menunjukkan perbezaan antara gelung foreach dan Parallel.ForEach:

using System;
using System.Diagnostics;
using System.Collections.Generic;
using System.Threading.Tasks;

namespace ParallelForEachExample
{
    class Program
    {
        static void Main()
        {
            var lines = File.ReadAllLines("proxylist.txt");
            var list_lines = new List<string>(lines);

            Console.WriteLine("Traditional foreach loop");
            var watch = Stopwatch.StartNew();
            foreach (var line in list_lines)
            {
                Console.WriteLine(line);
                Thread.Sleep(10);
            }
            watch.Stop();
            Console.WriteLine($"foreach loop execution time: {watch.ElapsedMilliseconds} ms");

            Console.WriteLine("Using Parallel.ForEach");
            watch = Stopwatch.StartNew();
            Parallel.ForEach(list_lines, line =>
            {
                Console.WriteLine(line);
                Thread.Sleep(10);
            });
            watch.Stop();
            Console.WriteLine($"Parallel.ForEach() execution time: {watch.ElapsedMilliseconds} ms");
        }
    }
}
Salin selepas log masuk

Output

Output akan menunjukkan bahawa Parallel.ForEach melaksanakan lelaran secara selari, mengurangkan masa pemprosesan keseluruhan berbanding gelung foreach tradisional.

Atas ialah kandungan terperinci Bagaimanakah Parallel.ForEach Meningkatkan Prestasi Berbanding dengan Gelung Foreach Tradisional dalam .NET?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan