यह लिनक्स पर जीसीसी 4.4.6 है।जीसीसी संकलन समय और स्रोत कोड में सरणी आकार के रूप में बदल रहे स्मृति उपयोग
gcc bizarre.c
फिर संकलक स्मृति की 4 जी का उपयोग करता है, और एक लंबा समय लगता:
यहाँ व्यवहार
bizarre.c
double a[500000000];
main() {
}
अगर मैं संकलन इस का उपयोग कर रहा है।
यदि मैं सरणी आकार 50000000 बना देता हूं, तो संकलन में काफी कम स्मृति और समय लगता है।
ऐसा लगता है कि संकलक उस कोड को निष्पादित कर रहा है जो संकलन कर रहा है।
मुझे एहसास है कि इस तरह एक भारी सरणी बनाना सर्वोत्तम अभ्यास नहीं हो सकता है, लेकिन कोई स्पष्टीकरण?
आप 32 या 64 बिट निष्पादन योग्य के रूप में संकलित करते हैं? –
कोई अनुकूलन झंडे? आप संभावना से अधिक एक स्टैक ओवरफ़्लो में भागने जा रहे हैं ... ऑप्टिमाइज़ेशन चालू होने के साथ, यह चर संभवतया समाप्त हो गया है यदि ऑप्टिमाइज़ेशन का उपयोग -0 –
@ 0A0D से अधिक है: यह सरणी वैसे भी '.bss' अनुभाग में भर रही है, कोई ढेर शामिल नहीं है ... – sarnold