मैं अपने संपूर्ण c ++ प्रोजेक्ट को संकलित करने में लगने वाले समय को बेहतर बनाने के लिए विभिन्न तरीकों का परीक्षण कर रहा हूं। वर्तमान में इसमें ~ 5 मिनट का समय लगता है। मैंने डिस्टेक, ccache, और अन्य के साथ प्रयोग किया। हाल ही में, मुझे पता चला कि अगर मैं रैम-ड्राइव पर अपनी पूरी परियोजना की प्रतिलिपि बनाता हूं, और फिर वहां से संकलन करता हूं, तो यह संकलन समय को इसके मूल के 30% तक घटा देता है - सिर्फ 1.5 मिनट।
जाहिर है, रैम ड्राइव से काम करना व्यावहारिक नहीं है। तो, क्या किसी को इस तरह से पता है कि मैं ओएस को हमेशा एक निश्चित निर्देशिका को कैश रखने के लिए मजबूर कर सकता हूं ? मैं अब भी चाहता हूं कि निर्देशिका सामान्य की तरह डिस्क पर वापस सिंक हो जाए, लेकिन मैं हमेशा मेमोरी में डेटा की एक प्रति भी चाहता हूं। क्या यह संभव है?
EDIT:
एक संभावित समाधान के रूप में, हमने बस एक डेमॉन लॉन्च करने के बारे में सोचा जो rsync
हर 10 सेकंड में चलता है या रैम ड्राइव के साथ डिस्क ड्राइव को सिंक करने के लिए। फिर हम रैम ड्राइव से संकलन चलाते हैं। rsync
तेज़ है, लेकिन यह वास्तव में काम करेगा? निश्चित रूप से ओएस बेहतर कर सकता है ...।
time
अपना संकलन और परिणाम हमारे साथ साझा कर सकते हैं ? यह कुछ विवाद खड़ा करेगा। make clean && /usr/bin/time -v make
( time
कमांड में निर्मित बैश का उपयोग न करें )
time
बिल्ट इन ( help time
) में बहुत कम विवरण (कोई क्रिया विकल्प नहीं है) GNU समय की तुलना में ( man time
) I / O से संबंधित है, संदर्भ स्विच, ...