> 백엔드 개발 > C++ > Parallel.ForEach는 .NET의 기존 Foreach 루프와 비교하여 어떻게 성능을 향상합니까?

Parallel.ForEach는 .NET의 기존 Foreach 루프와 비교하여 어떻게 성능을 향상합니까?

Susan Sarandon
풀어 주다: 2025-01-06 00:36:38
원래의
702명이 탐색했습니다.

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

Parallel.ForEach를 사용한 병렬 처리

병렬 프로그래밍은 여러 프로세서 코어를 활용하여 애플리케이션 성능을 향상시킵니다. Parallel.ForEach는 .NET 애플리케이션에서 병렬 처리를 단순화하는 강력한 구조입니다.

Foreach 루프와 Parallel.ForEach

기존 foreach 루프는 애플리케이션에서 순차적으로 반복을 수행합니다. 단일 스레드. 반면 Parallel.ForEach는 여러 스레드에 워크로드를 분산하여 반복의 동시 실행을 가능하게 합니다.

Foreach 루프의 특성:

  • 순차 실행 반복
  • 단일 스레드 활용
  • 스레딩 오버헤드가 크지 않은 빠른 작업에 적합

Parallel.ForEach의 특성:

  • 병렬 실행 반복
  • 다중 스레드 활용
  • 병렬화가 성능을 향상시키는 느린 작업에 유용합니다

Parallel.ForEach로 변환

주어진 코드 조각을 다음으로 변환하려면 Parallel.ForEach:

Parallel.ForEach(list_lines, line =>
{
    // My Stuff
});
로그인 후 복사

다음 예는 foreach 루프와 루프 간의 차이점을 보여줍니다. 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");
        }
    }
}
로그인 후 복사

출력

출력은 Parallel.ForEach가 반복을 병렬로 실행하여 기존 foreach에 비해 전체 처리 시간을 줄이는 것을 보여줍니다. 루프.

위 내용은 Parallel.ForEach는 .NET의 기존 Foreach 루프와 비교하여 어떻게 성능을 향상합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿