new string[] 성능 질문 드립니다.

안녕하세요.

.net 초보개발자 입니다.

if (new string[] { "A", "B" }.Contains(value))
{
    ....
}

해당 코드처럼 하면 성능에 문제가 있을까요?

해당 코드가 만약 for 문 안에서 계속 루프 돈다고 했을 때 성능 저하가 발생할까요?

2개의 좋아요

배열은 힙 할당을 하니 아무래도 성능에 영향은 줄 수 있겠지만… 워낙 .NET (.NET Framework)이 빠르니 신경 안 쓰셔도 될 수준입니다.

이것 보다는 로직 구조를 O(n^2)의 구조에서 O(n)쪽으로 최적화 하는게… 속도 개션의 효과가 큽니다.

그리고 반복되어 사용하는 값은 미리 생성해 캐시 하는것도 전통적이고 좋은 전략이죠.

가령, 위의 new string[] { "A", "B"}인스턴스가 반복할 때마다 바뀌는게 아니라면 반복문 밖에서 생성한 후 사용할 수 있습니다.

6개의 좋아요