나는 다음과 같이 프로그램의 실행 시간에 루프 변수 '범위 - 경계 - 선언 및 사용의 효과를 관찰하기 위해 C++을 실험 하였다C++ 문자열 대 C# 문자열, 다른 실행 시간. 왜?
for(int i=0; i<10000000 ; ++i){
string s = "HELLO THERE!";
}
및
string s;
for(int i=0; i<10000000 ; ++i){
s = "HELLO THERE!";
}
을 첫 번째 프로그램은 1 초에서 실행되는 반면 두 번째 프로그램은 250 밀리 초에서 실행됩니다. 내장 된 유형을 시도해도 상당한 차이가 발생하지 않으므로 두 언어로 문자열을 사용합니다.
나는 내 친구와이 문제를 논의 중이며 C#에서는 이런 일이 일어나지 않을 것이라고 말했다. 우리는 C#에서 이런 일이 발생하지 않았 음을 알았습니다. 범위가 한정된 문자열 선언은 프로그램 실행 시간에 영향을 미치지 않습니다.
왜 이러한 차이가 있습니까? 그것은 C++ 문자열 (나는 강력하게 tho를 의심한다) 또는 다른 것에서 나쁜 최적화입니까?
C++에서 최적화 기능을 사용하지 않고이 테스트를 수행했다는 것이 확실합니다. 대부분의 C++ 컴파일러는 관찰 가능한 부작용이 없기 때문에 전체 코드 조각을 제거합니다. –