অনেক সিপিইউ কোর (12 বলে) সহ ওয়ার্কস্টেশনে একটি সফ্টওয়্যার প্যাকেজ সংকলন করার জন্য, কনফিগারেশন পর্যায়ে প্রায়শই প্রকৃত সংকলন পর্যায়ের তুলনায় অনেক বেশি সময় লাগে কারণ ./configure
একের পর এক পরীক্ষা করে make -j
চালানো gcc
হয়, পাশাপাশি সমান্তরালে অন্যান্য কমান্ডও চালায় ।
আমি মনে করি যে বাকি ১১ টি কোর বেশিরভাগ সময় অলস অবস্থায় বসে থাকা ধীর ./configure
সম্পন্ন হওয়ার অপেক্ষায় থাকায় এটি সম্পদের এক বিশাল অপচয় । কেন এটি ধারাবাহিকভাবে পরীক্ষাগুলি করা দরকার? প্রতিটি পরীক্ষা কি একে অপরের উপর নির্ভর করে? আমার ভুল হতে পারে তবে এগুলির বেশিরভাগই স্বতন্ত্র বলে মনে হচ্ছে।
আরও গুরুত্বপূর্ণ, গতি বাড়ানোর কোনও উপায় আছে ./configure
কি?
সম্পাদনা করুন: পরিস্থিতিটি চিত্রিত করার জন্য, এখানে জিএনইউ করিউটিলসের সাথে একটি উদাহরণ রয়েছে
cd /dev/shm
rm -rf coreutils-8.9
tar -xzf coreutils-8.9.tar.gz
cd coreutils-8.9
time ./configure
time make -j24
ফলাফল:
# For `time ./configure`
real 4m39.662s
user 0m26.670s
sys 4m30.495s
# For `time make -j24`
real 0m42.085s
user 2m35.113s
sys 6m15.050s
কোর্টিলস -৮.৯ সহ , এর ./configure
চেয়ে times গুণ বেশি সময় লাগে make
। যদিও ./configure
কম সিপিইউ সময় ব্যবহার করে ("ব্যবহারকারী" এবং "সিজ" বার দেখুন) এটি অনেক বেশি সময় নেয় ("বাস্তব") কারণ এটি সমান্তরাল নয়। আমি কয়েকবার পরীক্ষার পুনরাবৃত্তি করেছি (প্রাসঙ্গিক ফাইলগুলি সম্ভবত মেমরির ক্যাশে থাকে) এবং সময়গুলি 10% এর মধ্যে থাকে।