यद्यपि वे आपके लिए दस्तावेज़ के रूप में उपयोगी हो सकते हैं, हेडर फ़ाइलों के आसपास की प्रणाली असाधारण रूप से अक्षम है।
सी को डिज़ाइन किया गया था ताकि प्रत्येक संकलन पास एक एकल मॉड्यूल का निर्माण करे; प्रत्येक स्रोत फ़ाइल संकलक के एक अलग रन में संकलित की जाती है। दूसरी ओर हैडर फाइलें, प्रत्येक संकलित फ़ाइल के लिए उस संकलन चरण में इंजेक्ट की जाती हैं जो उन्हें संदर्भित करता है।
इसका मतलब है कि यदि आपकी हेडर फ़ाइल 300 स्रोत फ़ाइलों में शामिल है, तो यह आपके प्रोग्राम के निर्माण के दौरान 300 से अधिक बार पार्स और संकलित हो जाती है। ठीक उसी परिणाम के साथ एक ही बात, बार-बार। यह समय की एक बड़ी बर्बादी है, और C और C ++ प्रोग्राम बनाने में प्राथमिक कारणों में से एक है।
सभी आधुनिक भाषाएँ जानबूझकर इस बेतुकी छोटी अक्षमता से बचती हैं। इसके बजाय, आमतौर पर संकलित भाषाओं में आवश्यक मेटाडेटा बिल्ड आउटपुट के भीतर संग्रहीत किया जाता है, संकलित फाइल को त्वरित-लुकअप संदर्भ के रूप में कार्य करने की अनुमति देता है जो यह बताता है कि संकलित फ़ाइल में क्या है। हेडर फ़ाइल के सभी लाभ, स्वचालित रूप से आपके हिस्से पर कोई अतिरिक्त काम नहीं करते हैं।
वैकल्पिक रूप से व्याख्या की गई भाषाओं में, हर मॉड्यूल जो लोड हो जाता है स्मृति में रहता है। कुछ लाइब्रेरी को संदर्भित करना या शामिल करना या आवश्यक करना संबंधित स्रोत कोड को पढ़ना और संकलित करना होगा, जो कार्यक्रम समाप्त होने तक निवासी रहता है। यदि आपको इसकी आवश्यकता कहीं और पड़ती है, तो कोई अतिरिक्त काम नहीं करना चाहिए क्योंकि यह पहले ही लोड हो चुका है।
किसी भी स्थिति में, आप भाषा के टूल का उपयोग करके इस चरण द्वारा बनाए गए डेटा को "ब्राउज़" कर सकते हैं। आमतौर पर IDE में किसी प्रकार का एक क्लास ब्राउज़र होगा। और अगर भाषा की REPL है, तो इसका उपयोग अक्सर किसी भी भरी हुई वस्तुओं के प्रलेखन सारांश को उत्पन्न करने के लिए भी किया जा सकता है।