मुझे पता है कि यह इतना प्रोग्रामिंग सवाल नहीं है, लेकिन यह प्रासंगिक है।
मैं काफी बड़े क्रॉस प्लेटफॉर्म प्रोजेक्ट पर काम करता हूं । Windows पर मैं VC ++ 2008 का उपयोग करता हूं। लिनक्स पर मैं gcc का उपयोग करता हूं। परियोजना में लगभग 40k फाइलें हैं। एक ही प्रोजेक्ट को संकलित और लिंक करने में लिनक्स की तुलना में विंडोज 10x से 40x धीमा है। मैं कैसे इसे ठीक कर सकता हूं?
एक एकल परिवर्तन वृद्धिशील लिनक्स पर 20 सेकंड और विंडोज पर 3 मिनट का निर्माण करता है। क्यों? मैं लिनक्स में 'गोल्ड' लिंकर भी स्थापित कर सकता हूं और उस समय को 7 सेकंड तक प्राप्त कर सकता हूं।
इसी तरह git विंडोज की तुलना में लिनक्स पर 10x से 40x तेज है।
Git के मामले में यह संभव है कि git इष्टतम तरीके से Windows का उपयोग नहीं कर रहा है लेकिन VC ++? आपको लगता है कि Microsoft अपने स्वयं के डेवलपर्स को यथासंभव उत्पादक बनाना चाहेगा और तेजी से संकलन उस ओर एक लंबा रास्ता तय करेगा। शायद वे डेवलपर्स को सी # में प्रोत्साहित करने की कोशिश कर रहे हैं?
सरल परीक्षण के रूप में, बहुत सारे सबफ़ोल्डर के साथ एक फ़ोल्डर ढूंढें और एक सरल करें
dir /s > c:\list.txt
विंडोज पर। इसे दो बार करें और दूसरा रन करें इसलिए यह कैश से चलता है। फ़ाइलों को लिनक्स पर कॉपी करें और दूसरे रन के बराबर 2 रन और समय करें।
ls -R > /tmp/list.txt
मेरे पास ठीक उसी स्पेक्स के साथ 2 वर्कस्टेशन हैं। HP Z600s 12gig के साथ RAM, 8 कोर 3.0ghz पर। ~ 400k फ़ाइलों के साथ एक फ़ोल्डर पर विंडोज 40 सेकंड लेता है, लिनक्स <1 सेकंड लेता है।
क्या एक रजिस्ट्री सेटिंग है जो मैं विंडोज को गति देने के लिए सेट कर सकता हूं? क्या देता है?
कुछ छोटे प्रासंगिक लिंक, संकलन समय के लिए प्रासंगिक, जरूरी नहीं कि मैं / ओ।
जाहिरा तौर पर विंडोज 10 (विंडोज 7 में नहीं) में एक समस्या है कि एक प्रक्रिया को बंद करने से एक वैश्विक लॉक होता है । जब कई कोर के साथ संकलित किया जाता है और इसलिए कई प्रक्रियाएं इस मुद्दे को हिट करती हैं।
/analyse
विकल्प पर प्रतिकूल पर्फ़ प्रभावित कर सकते हैं, क्योंकि यह एक वेब ब्राउज़र को लोड करता है । (यहां प्रासंगिक नहीं है, लेकिन यह जानना अच्छा है)