C# if 문과 swith 문의 대한 성능 비교

필자는 가끔 if문과 swith 문에 대해서 성능이 어떻것이 나을지 궁금했다.

마이크로소프트가 직접 만들어준 내부 알고리즘으로 swith 문이 더 좋을 것 같기도 하고, CPU 연산에서는 무조건 비교이기 때문에 if문이 빠를 것 같다는 생각도 들어 이번에 만드는 프로그램이 있어 이참에 비교를 해보았다..

패킷 개수를 측정하는 프로그램인데 그 안에서 swith문과 if문을 이용해서 패킷을 구분하는 함수를 통해 확인해 본 결과 다음과 같은 성능치가 나왔다.

그림의 결과는 단시간에 동일한 네트워크 패킷 전송 프로그램을 실행한 결과로써, 1초에 10개 이상의 패킷을 전송했을 때의 상황이다.

필자의 생각은 많은 데이터를 처리해야 한다면, swith문이 안정적으로 동작할 수 있다는 것이다.

if문은 처리량에 따라 사용률이 크게 변동이 있어, 만약 많은 데이터가 몰린다면 보다 처리가 어려울 것이 예상된다.

물론 전체 CPU 사용률로 따진다면 1.0%도 사용하지 않는다.

만약 처리량이 많지 않을 때에는 if문이 CPU 사용률이 더 적고 안정적이라는 점에서 적은 처리 구문에서는 단연 if문을 사용해야 할 것으로 판단된다.

Facebook Comments

Leave A Reply

이메일은 공개되지 않습니다. 필수 입력창은 * 로 표시되어 있습니다

This site uses Akismet to reduce spam. Learn how your comment data is processed.