例如,我有:將通用聲明變量聲明爲全局是否有任何好處?
char query[512];
在我的應用程序,它連接到MySQL數據庫申報約27倍。
每次大小相同,並在許多不同的功能中聲明。
此應用程序永遠不會使用線程。
在用snprintf設置查詢後,查詢總是立即執行。 在設置和執行查詢之間沒有任何功能將其搞亂。
將它聲明爲全局變量是否有任何好處或性能提升?
例如,我有:將通用聲明變量聲明爲全局是否有任何好處?
char query[512];
在我的應用程序,它連接到MySQL數據庫申報約27倍。
每次大小相同,並在許多不同的功能中聲明。
此應用程序永遠不會使用線程。
在用snprintf設置查詢後,查詢總是立即執行。 在設置和執行查詢之間沒有任何功能將其搞亂。
將它聲明爲全局變量是否有任何好處或性能提升?
當然,就內存消耗而言。每個對象都會消耗大量的字節,這意味着您可能會爲該特定變量使用少27倍的內存。另外,創建這些對象會有少量開銷。總體而言,這不會產生重大影響,但在這種情況下重用是最佳做法。
我會說在性能方面有好處,但是取決於應用程序的大小,它可能可以忽略不計,但並未優化。 推理是用一個全局變量來表示的,你一旦從蝙蝠聲明它,計算機就知道它在哪裏,你所做的就是改變它。否則,你必須不斷重新制作它,我想像的速度並不像總是存在的那樣快。
我所知全球varible工作就像一個高速緩存,因爲它分配在程序開始其訪問速度比其他變量..,如果分配每一次一個新的變量比它只是CPU週期的浪費剛剛分配存儲器給堆棧的變量...因此,作爲全局變量
訪問堆棧變量使用通常是等效於訪問的偏移到在寄存器已經是指針。訪問全局變量幾乎總是要求首先加載全局變量的地址。
所以,如果你要挑選尼特,使用堆棧變量。除非打開其他編譯器開關,否則會增加堆棧使用的額外開銷。
當然,這真的取決於你的具體背景(即CPU,編程語言等)。因此,它可以是。