"&as"의 성능 문제; 및 Nullable 유형
"&as;"를 활용할 때 간결한 구문을 통한 성능 향상이 종종 떠오릅니다. 연산자. 그러나 최근 벤치마크에서 입증된 것처럼 이 연산자는 null 허용 유형에 대해 의도한 최적화를 항상 제공하지 않을 수도 있습니다.
벤치마크에서는 "&as;", "&is;" 사이의 예상치 못한 성능 차이가 드러났습니다. 캐스팅, 심지어 LINQ 솔루션까지 이어집니다. 많은 사람들이 놀랍게도 "&is;"라는 유산이 남아 있습니다. 접근 방식은 20배의 차이로 "&as;"보다 성능이 뛰어납니다. 이는 "&as;"로 인해 속도가 느려지는 이유에 대한 질문을 제기합니다.
근본적인 이유는 JIT 컴파일러에서 생성된 코드에 있습니다. "&is;"의 경우 빠른 유형 확인 및 언박싱만으로 충분합니다. 반면에 "&as;"는 상자형 정수와 Nullable
LINQ 솔루션은 반복자로 인해 뒤처질 것으로 예상되지만 "&as;"에 비해 느립니다. 수수께끼다. 가능한 원인은 ngen.exe 최적화일 수 있습니다.
결론적으로 "&as;" 구문상의 편리함을 제공하므로 성능에 민감한 시나리오에서는 null 허용 유형과의 성능 균형을 신중하게 고려해야 합니다.
위 내용은 `&as;`는 Nullable 유형을 사용하여 항상 성능 향상을 제공합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!