我正在使用C++與QT 5.6。我有2款簡單的控制檯應用程序如下:變量是否會影響性能?
//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:
我不會在我的代碼再次使用的變量,我們可以認爲,沒有編譯器優化。 @DrDonut你給的鏈接中的答案也沒有回答是$array === (array) $array
比is_array($array)
更快,即它是一個微優化,我也問第二種方式是微優化還是會損害性能。
1)編譯器是比你想象的更聰明 - 在上述情況下,特別是如果你使用'QString的常量x',相同的代碼很可能產生。 2)現在不要擔心表現。 3)如果你必須,在測試性能之前,先試着猜測什麼會更好。 –
沒關係。 –
在現實生活中,您沒有硬編碼字符串的奢侈品,您總是需要使用變量來更改數據。但是,您可以爲'QTextStream(stdout)'創建一個變量,以避免每次都構建它。 –