당황스러운 병렬 작업 및 Go 성능
배경:
제공된 코드는 최적화를 해결합니다. 목표를 달성하기 위해 데이터 창의 이동 평균을 포함하는 계산 성능을 향상시키는 작업입니다. 고루틴을 사용하면 속도가 크게 향상됩니다.
질문:
제공된 고루틴 기반 구현(moving_avg_concurrent2 및 Moving_avg_concurrent3)이 예상 성능을 보여주지 않는 이유는 무엇입니까? 개선이 필요합니까?
답변:
사실 #1: 이 작업은 당황스러울 정도로 평행하지 않습니다
이동 평균 계산은 본질적으로 순차적인 프로세스. 여러 데이터 포인트에서 작동하지만 계산은 창의 이전 값에 따라 달라지므로 작업을 완전히 병렬화하는 것이 불가능합니다.
사실 #2: Go의 분산 처리 제한
Go의 분산 처리 기능은 대부분의 처리가 병렬로 수행될 때만 효과적입니다. 이 경우 이동 평균 계산은 주로 순차적이므로 배포의 이점이 제한됩니다.
추가 고려 사항:
결론:
고루틴과 병렬 처리는 특정 유형의 계산에 효과적일 수 있지만 만능은 아닙니다. 성능 개선. 이 경우 이동 평균 계산의 고유한 순차 특성으로 인해 병렬 처리의 이점이 제한됩니다.
위 내용은 고루틴이 이 이동 평균 계산에서 성능을 향상시키지 못하는 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!