QT 5.6에서 C++을 사용하고 있습니다. 다음과 같이 나는이 개 스타일의 간단한 콘솔 응용 프로그램이 있습니다변수가 성능에 영향을 줍니까?
//First style
qstring x = “Hi!”;
void func()
{
QTextStream(stdout) << x;
}
int main()
{
while (true)
{
func_one();
}
}
//Second style
void func()
{
QTextStream(stdout) << “Hi!”;
}
int main()
{
while (true)
{
func();
}
}
더 CPU를 스트레스 때문에 낮은 성능을 큰 차이가 없을 수도 있지만 것 어느 우리는 서버 곳으로 큰 규모에이를 적용 할 때 2 초마다 연결되면 위의 루프와 유사한 상황이 발생하고 여러 변수 (동일한 변수 및 데이터는 아님)를 사용하면 리소스 사용이 약간 줄어들어 리소스 사용량을 줄이면 성능이 크게 향상 될 수 있습니다. 그래서 변수를 사용하면 성능이 향상되지만, 함수가 반복적으로 호출 되더라도 변수를 한 번만 사용하거나 변수를 사용하면 변수가 "x"값을 반복적으로 검사해야하므로 프로그램이 느려집니다. "저장하고 데이터를 검색 할 수 있습니까?
편집 1 :
내가 내 코드에서 다시 변수를 사용하지 않는 우리는 더 컴파일러 최적화가 없음을 고려할 수 있습니다. @DrDonDut 당신이 준 링크의 대답도 대답 $array === (array) $array
보다 빠르다. 즉, 마이크로 최적화이고 마이크로 최적화라고 부르는 두 번째 스타일이거나 성능에 해를 끼치 지 않을까하는 질문입니다.
1) 컴파일러는 당신이 생각하는 것보다 똑똑하다 읽기 - 당신은 const를 x'를 qstring'사용 특히, 경우에 위의 동일한 코드가 잘 생성 될 수있다. 2) 지금 성능에 대해 걱정하지 마십시오. 3) 반드시해야 할 일이 무엇인지 추측하기 전에 성과를 측정하십시오. –
그건 중요하지 않습니다. –
실생활에서는 문자열을 하드 코딩하지 않아도되므로 항상 데이터를 변경하기 위해 변수를 사용해야합니다. 그러나,'QTextStream (stdout)'에 대한 변수를 생성하여 매번 생성되지 않도록 저장할 수 있습니다. –