멀티스레드를 이용하였을 때의 성능 개선 효과를 보이는 코드를 구현하고 실행시켜보았다. 하지만 결과를 잘 살펴보면 스레드가 1개에서 2개로 늘어났을 때는 개선된 성능을 보이지만, 4개에서 6개로 늘어났을 때는 오히려 시간이 늘어난 것을 볼 수 있다. 이는 스레드를 많이 생성할 경우, 각각의 스레드를 스케쥴링해야 하므로 context switching이 일어나 overhead가 발생하기 때문이다.
싱글 스레드 프로그램을 멀티 스레딩 프로그램으로 코드를 바꿔보았는데, 앞서 나타난 그림에서는 싱글 스레드와 멀티 스레드의 성능 차이를 구분하기 애매하였다. (멀티 스레드를 사용하였을 때, 싱글 스레드 프로그램보다 더 많은 시간이 걸리는 경우도 발생하여 나의 코드에 에러가 있는 것인지, 시스템 환경 문제인지 고민하였다. 시스템 환경이 이상한가 싶어서 로컬, 우분투, 구글 플랫폼에서 돌려봤다 ㅎㅎㅎㅎ)
이럴땐 싱글 스레드와 멀티 스레드를 각각 실행시켜 걸린 시간을 비교해보면 된다. (사실 이 생각을 뒤늦게 했다 바보하영 깔깔)
결과를 보면 싱글 스레드를 이용하였을 때보다 멀티 스레드를 이용하였을 때, 계산을 빠르게 수행하는 것을 직관적으로 확인할 수 있다.
이것은 나의 중간고사 고옹부 👩🏻💻🍒 체리먹고싶당 얌냠