병렬 연산을 사용해 텍스트에서 문자의 빈도를 세어요.
병렬성이란 순차적으로도 할 수 있는 일을 병렬로 처리하는 것을 말해요. 흔한 예시가 바로 문자의 빈도를 세는 거예요. 병렬성을 활용해 여러 텍스트로 이루어진 목록에서 각 문자의 전체 빈도를 계산해요.
이 연습 문제를 로컬에서 풀고 있다면, 병렬 풀이와 순차 풀이를 비교해 주는 parallel_letter_frequency_benchmark_test.rb 파일이 함께 들어 있어요.
ruby parallel_letter_frequency_benchmark_test.rb로 실행할 수 있어요.
출력은 텍스트 개수가 많은 여러 경우에 대해 각 구현의 실행 시간을 표 형식으로 보여줘요.
테스트 케이스는 자유롭게 바꿔도 돼요.
텍스트의 길이와 텍스트의 개수가 각 구현의 실행 시간에 어떤 성능 영향을 주는지 알아보고 싶을 수도 있어요.
참고: 텍스트 집합이 작을 때는 처리 오버헤드 때문에 순차 풀이가 더 빠를 수도 있어요.
Exercism에 가입하고 Ruby 트랙을 개념 21개연습 문제 121개, 그리고 실제 사람의 멘토링과 함께 배우고 익혀 보세요. 모두 무료예요.
동시성과 병렬성의 차이를 살펴보고, JavaScript, Go, Elixir, Rust 같은 언어들이 택한 여러 접근법을 함께 봐요.