ইংরেজিফরাসিস্প্যানিশ

Ad


অনওয়ার্কস ফেভিকন

ccache - ক্লাউডে অনলাইন

উবুন্টু অনলাইন, ফেডোরা অনলাইন, উইন্ডোজ অনলাইন এমুলেটর বা MAC OS অনলাইন এমুলেটরের মাধ্যমে OnWorks ফ্রি হোস্টিং প্রদানকারীতে ccache চালান

এটি হল ccache কমান্ড যা আমাদের একাধিক বিনামূল্যের অনলাইন ওয়ার্কস্টেশন যেমন উবুন্টু অনলাইন, ফেডোরা অনলাইন, উইন্ডোজ অনলাইন এমুলেটর বা MAC OS অনলাইন এমুলেটর ব্যবহার করে OnWorks ফ্রি হোস্টিং প্রদানকারীতে চালানো যেতে পারে।

কার্যক্রম:

NAME এর


ccache - একটি দ্রুত C/C++ কম্পাইলার ক্যাশে

সাইনোপিসিস


ccache [অপশন]
ccache সংকলনকারী [সংকলনকারী অপশন]
সংকলনকারী [সংকলনকারী অপশন] (সিম্বলিক লিঙ্কের মাধ্যমে)

বর্ণনাঃ


ccache একটি কম্পাইলার ক্যাশে। এটি পূর্ববর্তী ফলাফল ক্যাশে পুনঃসংকলনের গতি বাড়ায়
সংকলন এবং সনাক্ত করা যখন একই সংকলন আবার করা হচ্ছে। সমর্থিত
ভাষা হল C, C++, Objective-C এবং Objective-C++।

ccache সাবধানে লেখা হয়েছে সবসময় ঠিক একই কম্পাইলার আউটপুট তৈরি করার জন্য
আপনি ক্যাশে ছাড়া পেতে হবে. আপনি যে আপনি বলতে সক্ষম হওয়া উচিত একমাত্র উপায়
ccache ব্যবহার করে গতি। এই লক্ষ্যে বর্তমানে পরিচিত ব্যতিক্রমগুলি BUGS-এর অধীনে তালিকাভুক্ত করা হয়েছে৷
আপনি যদি কখনও একটি অনথিভুক্ত কেস আবিষ্কার করেন যেখানে ccache আপনার আউটপুট পরিবর্তন করে
কম্পাইলার, দয়া করে আমাদের জানান।

বৈশিষ্ট্য
· হিট/মিসের পরিসংখ্যান রাখে।

স্বয়ংক্রিয় ক্যাশে আকার ব্যবস্থাপনা.

· ক্যাশে সংকলন করতে পারে যা সতর্কতা তৈরি করে।

· সহজ স্থাপন.

· কম উপরি.

· কপি এড়াতে ঐচ্ছিকভাবে যেখানে সম্ভব হার্ড লিঙ্ক ব্যবহার করুন।

· ঐচ্ছিকভাবে ডিস্কের স্থান কমাতে ক্যাশে ফাইল কম্প্রেস করে।

সীমাবদ্ধতা
· শুধুমাত্র একটি একক C/C++/Objective-C/Objective-C++ এর সংকলন ক্যাশে কিভাবে করতে হয় তা জানে
ফাইল অন্যান্য ধরনের সংকলন (মাল্টি-ফাইল সংকলন, লিঙ্কিং, ইত্যাদি) নিঃশব্দে হবে
বাস্তব কম্পাইলার চালানোর জন্য ফিরে পড়া.

· শুধুমাত্র GCC এবং কম্পাইলারদের সাথে কাজ করে যা যথেষ্ট অনুরূপ আচরণ করে।

· কিছু কম্পাইলার ফ্ল্যাগ সমর্থিত নয়। এই ধরনের একটি পতাকা সনাক্ত করা হলে, ccache হবে
নীরবে বাস্তব কম্পাইলার চালানোর জন্য ফিরে পড়া.

চালান মোড


ccache ব্যবহার করার দুটি উপায় আছে। আপনি হয় আপনার সংকলন কমান্ডের সাথে উপসর্গ করতে পারেন
ccache অথবা আপনি একটি প্রতীকী লিঙ্ক তৈরি করে কম্পাইলার হিসাবে ccache মাস্করাড করতে দিতে পারেন (নামযুক্ত
কম্পাইলার হিসাবে) ccache করতে। আপনি যদি চেষ্টা করতে চান তবে প্রথম পদ্ধতিটি সবচেয়ে সুবিধাজনক
ccache আউট বা কিছু নির্দিষ্ট প্রকল্পের জন্য এটি ব্যবহার করতে চান. দ্বিতীয় পদ্ধতি সবচেয়ে দরকারী
যখন আপনি আপনার সমস্ত সংকলনের জন্য ccache ব্যবহার করতে চান।

একটি ডেবিয়ান সিস্টেমে দ্বিতীয় পদ্ধতিটি ব্যবহার করার জন্য, এটি শুধু প্রিপেন্ড করা সবচেয়ে সহজ /usr/lib/ccache
তোমার পাথ. /usr/lib/ccache বর্তমানে ইনস্টল করা সমস্ত কম্পাইলারের জন্য সিমলিংক রয়েছে
ডেবিয়ান প্যাকেজ।

বিকল্পভাবে, আপনি নিজের মতো করে যেকোনো সিমলিঙ্ক তৈরি করতে পারেন:

ln -s /usr/bin/ccache /usr/local/bin/gcc
ln -s /usr/bin/ccache /usr/local/bin/g++
ln -s/usr/bin/ccache/usr/local/bin/cc
ln -s /usr/bin/ccache /usr/local/bin/c++

এবং তাই ঘোষণা. সিমলিঙ্ক সহ ডিরেক্টরিটি পাথের আগে আসা পর্যন্ত এটি কাজ করবে
কম্পাইলারের কাছে (যা সাধারণত থাকে , / Usr / বিন) ইন্সটল করার পর আপনি রান করতে চাইতে পারেন
সঠিক লিঙ্ক ব্যবহার করা হচ্ছে কিনা তা নিশ্চিত করতে "কোন জিসিসি"।

সতর্কতা
কম্পাইলার হিসাবে ccache মাস্কেরেড করার কৌশলটি ভাল কাজ করে, কিন্তু বর্তমানে
একই কাজ করে এমন অন্যান্য সরঞ্জামগুলির সাথে ভালভাবে ইন্টারঅ্যাক্ট করে না। CCACHE এর সাথে ব্যবহার করা দেখুন
অন্যান্য কম্পাইলার মোড়ক.

সতর্কতা
একটি হার্ড লিঙ্ক ব্যবহার করবেন না, একটি প্রতীকী লিঙ্ক ব্যবহার করুন. একটি হার্ড লিঙ্ক "আকর্ষণীয়" কারণ হবে
সমস্যা।

বিকল্প


এই বিকল্পগুলি শুধুমাত্র তখনই প্রযোজ্য হয় যখন আপনি ccache কে "ccache" হিসাবে ব্যবহার করেন৷ যখন একটি কম্পাইলার হিসাবে আহ্বান করা হয়
(পূর্ববর্তী বিভাগে বর্ণিত একটি সিমলিংকের মাধ্যমে), সাধারণ কম্পাইলার বিকল্পগুলি প্রযোজ্য
এবং আপনার কম্পাইলারের ডকুমেন্টেশন উল্লেখ করা উচিত।

-গ, --পরিষ্কার কর
নির্দিষ্ট ফাইল নম্বর পর্যন্ত পুরানো ক্যাশে করা ফাইলগুলি সরিয়ে ক্যাশে পরিষ্কার করুন এবং
ক্যাশে আকার সীমা অতিক্রম করা হয় না. এটি ক্যাশে ফাইল গণনা এবং পুনরায় গণনা করে
মোট আকার সাধারনত, ক্যাশে রাখার কারণে ম্যানুয়ালি পরিষ্কার করার কোন প্রয়োজন নেই
রানটাইমে নির্দিষ্ট সীমার নিচে ক্যাশে এবং পরিসংখ্যান আপ টু ডেট রাখে
প্রতিটি সংকলন। যদি আপনি ম্যানুয়ালি ক্যাশে পরিবর্তন করেন তবে জোর করে পরিষ্কার করা বেশিরভাগই কার্যকর
বিষয়বস্তু বা বিশ্বাস করুন যে ক্যাশে আকারের পরিসংখ্যান ভুল হতে পারে।

-সি, --পরিষ্কার
সম্পূর্ণ ক্যাশে সাফ করুন, সমস্ত ক্যাশে করা ফাইল মুছে ফেলুন, কিন্তু কনফিগারেশন ফাইল রাখুন।

-এফ, --max-ফাইল=N
ক্যাশে অনুমোদিত ফাইলের সর্বাধিক সংখ্যা সেট করুন। কোন সীমা ছাড়াই 0 ব্যবহার করুন। মান হল
ক্যাশে ডিরেক্টরিতে একটি কনফিগারেশন ফাইলে সংরক্ষিত এবং সমস্ত ভবিষ্যতের জন্য প্রযোজ্য
সংকলন

-হ, --help
একটি বিকল্প সারাংশ পৃষ্ঠা মুদ্রণ করুন.

-এম, --সর্বোচ্চ আকার=আকার
ক্যাশে সংরক্ষিত ফাইলগুলির সর্বাধিক আকার সেট করুন। আকার একটি সংখ্যা হওয়া উচিত
একটি ঐচ্ছিক প্রত্যয় দ্বারা অনুসরণ করা হয়: k, M, G, T (দশমিক), Ki, Mi, Gi বা Ti (বাইনারি)। দ্য
ডিফল্ট প্রত্যয় হল G। কোনো সীমা ছাড়াই 0 ব্যবহার করুন। মানটি একটি কনফিগারেশন ফাইলে সংরক্ষণ করা হয়
ক্যাশে ডিরেক্টরিতে এবং সমস্ত ভবিষ্যতের সংকলনে প্রযোজ্য।

-ও, --set-config=KEY=মান
কনফিগারেশন সেট করুন চাবি থেকে VALUE না. আরও তথ্যের জন্য কনফিগারেশন দেখুন।

-পি, --প্রিন্ট-কনফিগ
বর্তমান কনফিগারেশন বিকল্পগুলি মুদ্রণ করুন এবং যেখান থেকে তারা উদ্ভূত হয় (পরিবেশ
পরিবর্তনশীল, কনফিগারেশন ফাইল বা কম্পাইল-টাইম ডিফল্ট)।

-স, --পরিসংখ্যান দেখান
ক্যাশের জন্য বর্তমান পরিসংখ্যান সারাংশ মুদ্রণ করুন।

-ভি, --সংস্করণ
প্রিন্ট সংস্করণ এবং কপিরাইট তথ্য.

-জেড, --শূন্য-পরিসংখ্যান
ক্যাশে পরিসংখ্যান শূন্য করুন (কিন্তু কনফিগারেশন বিকল্প নয়)।

অতিরিক্ত বিকল্প


একটি কম্পাইলার হিসাবে চালানো হলে, ccache সাধারণত একই কমান্ড লাইন বিকল্পগুলি গ্রহণ করে
আপনি ব্যবহার করছেন কম্পাইলার। এর একমাত্র ব্যতিক্রম বিকল্প -- ccache- এড়িয়ে যান। যে
বিকল্পটি ccache বলার জন্য ব্যবহার করা যেতে পারে যাতে পরবর্তী বিকল্পটিকে যেকোনো উপায়ে ব্যাখ্যা করা না হয়
কম্পাইলার বরাবর এটি পাস-যেমন আছে. বিঃদ্রঃ: -- ccache- এড়িয়ে যান বর্তমানে শুধুমাত্র ccache না বলে
পরবর্তী বিকল্পটিকে একটি বিশেষ কম্পাইলার বিকল্প হিসাবে ব্যাখ্যা করতে - বিকল্পটি এখনও থাকবে
সরাসরি মোড হ্যাশ অন্তর্ভুক্ত.

কারণ এটি গুরুত্বপূর্ণ হতে পারে যে ccache কমান্ড লাইন পার্স করতে হবে এবং
একটি ইনপুট ফাইলের নাম কি এবং একটি কম্পাইলার বিকল্প কি তা নির্ধারণ করুন, কারণ এটির ইনপুট প্রয়োজন
ফাইলের নাম ফলস্বরূপ অবজেক্ট ফাইলের নাম নির্ধারণ করতে (অন্যান্য জিনিসগুলির মধ্যে)। দ্য
কমান্ড লাইন পার্স করার সময় হিউরিস্টিক ccache ব্যবহার করে যে কোনো আর্গুমেন্ট যা a হিসাবে বিদ্যমান
ফাইলটিকে একটি ইনপুট ফাইলের নাম হিসাবে বিবেচনা করা হয়। ব্যবহার করে -- ccache- এড়িয়ে যান আপনি একটি বিকল্প জোর করতে পারেন
একটি ইনপুট ফাইলের নাম হিসাবে গণ্য করা হবে না এবং পরিবর্তে একটি হিসাবে কম্পাইলার বরাবর পাস করা হবে
কমান্ড লাইন অপশন।

আরেকটি মামলা যেখানে -- ccache- এড়িয়ে যান ccache একটি বিকল্পকে বিশেষভাবে ব্যাখ্যা করলে এটি কার্যকর হতে পারে
কিন্তু করা উচিত নয়, যেহেতু বিকল্পটির আপনার কম্পাইলারের জন্য ccache এর চেয়ে অন্য অর্থ রয়েছে
মনে করে

কনফিগারেশন


ccache এর ডিফল্ট আচরণ কনফিগারেশন ফাইল সেটিংস দ্বারা ওভাররাইড করা যেতে পারে, যার ফলে
এনভায়রনমেন্ট ভেরিয়েবল দ্বারা শুরু করা নাম দিয়ে ওভাররাইড করা যেতে পারে CCACHE_. ccache
সাধারণত দুটি ফাইল থেকে কনফিগারেশন পড়ে: প্রথমে একটি সিস্টেম-স্তরের কনফিগারেশন ফাইল এবং
দ্বিতীয়ত একটি ক্যাশে-নির্দিষ্ট কনফিগারেশন ফাইল। কনফিগারেশন সেটিংসের অগ্রাধিকার যেমন
অনুসরণ করে (যেখানে 1 সর্বোচ্চ):

1. পরিবেশ ভেরিয়েবল।

2. ক্যাশে-নির্দিষ্ট কনফিগারেশন ফাইল /ccache.conf (সাধারণত
$HOME/.ccache/ccache.conf).

3. সিস্টেম-ব্যাপী কনফিগারেশন ফাইল /ccache.conf (সাধারণত
/etc/ccache.conf or /usr/local/etc/ccache.conf).

4. কম্পাইল-টাইম ডিফল্ট।

একটি বিশেষ ক্ষেত্রে, যদি পরিবেশ পরিবর্তনশীল CCACHE_CONFIGPATH সেট করা হয়, ccache পড়ে
ডিফল্ট পাথের পরিবর্তে নির্দিষ্ট পাথ থেকে কনফিগারেশন।

কনফিগারেশন ফাইল বাক্য গঠন
কনফিগারেশন ফাইলগুলি একটি সাধারণ "কী = মান" বিন্যাসে, প্রতি লাইনে একটি সেটিং। লাইন
একটি হ্যাশ চিহ্ন দিয়ে শুরু হয় মন্তব্য. ফাঁকা লাইন উপেক্ষা করা হয়, যেমন সাদা স্থান
পার্শ্ববর্তী কী এবং মান। উদাহরণ:

# সর্বোচ্চ ক্যাশে সাইজ 10 জিবিতে সেট করুন:
max_size = 10G

বুলিয়ান মূল্যবোধ
কিছু সেটিংস হল বুলিয়ান মান (যেমন সত্য মান)। একটি কনফিগারেশন ফাইলে, যেমন মান
স্ট্রিং সেট করা আবশ্যক সত্য or মিথ্যা. সংশ্লিষ্ট পরিবেশ ভেরিয়েবলের জন্য,
শব্দার্থবিদ্যা একটু ভিন্ন: একটি সেট পরিবেশ পরিবর্তনশীল মানে "সত্য" নির্বিশেষে
মান (এমনকি যদি খালি স্ট্রিং সেট করা হয়), এবং একটি আনসেট এনভায়রনমেন্ট ভেরিয়েবল মানে "মিথ্যা"।
প্রতিটি বুলিয়ান এনভায়রনমেন্ট ভেরিয়েবলের শুরুতে একটি নেগেটেড ফর্ম রয়েছে CCACHE_NO। জন্য
উদাহরণ, CCACHE_COMPRESS জোর কম্প্রেশন সেট করা যেতে পারে এবং CCACHE_NOCOMPRESS সেট করা যেতে পারে
কোন কম্প্রেশন জোর করতে.

কনফিগারেশন সেটিংস
নীচে উপলব্ধ কনফিগারেশন সেটিংসের একটি তালিকা রয়েছে৷ সংশ্লিষ্ট পরিবেশ
পরিবর্তনশীল নাম প্রতিটি কনফিগারেশন সেটিং কী-এর পরে বন্ধনীতে নির্দেশিত হয়। বুলিয়ান
বিকল্পগুলি "[বুলিয়ান]" দিয়ে নির্দেশিত হয়

base_dir (CCACHE_BASEDIR)
এই সেটিংটি একটি ডিরেক্টরির জন্য একটি পরম পথ হওয়া উচিত। ccache তারপর absolute পুনর্লিখন করে
হ্যাশ কম্পিউট করার আগে আপেক্ষিক পাথগুলিতে পাথ যা সংকলন সনাক্ত করে,
কিন্তু শুধুমাত্র নির্দিষ্ট ডিরেক্টরির অধীনে পাথের জন্য। যদি খালি স্ট্রিং সেট করা হয় (যা হয়
ডিফল্ট), কোন পুনর্লিখন করা হয় না। এছাড়াও কম্পাইলিং ইন এর অধীনে আলোচনা দেখুন
বিভিন্ন নির্দেশিকা।

cache_dir (CCACHE_DIR)
এই সেটিংটি নির্দিষ্ট করে যেখানে ccache তার ক্যাশে করা কম্পাইলার আউটপুটগুলিকে রাখবে। এটা হবে
সিস্টেম-ওয়াইড কনফিগারেশন ফাইলে বা পরিবেশ হিসাবে সেট করা হলেই কার্যকর হবে
পরিবর্তনশীল ডিফল্ট হয় $HOME/.ccache.

ক্যাশে_ডির_লেভেল (CCACHE_NLEVELS)
এই সেটিং আপনাকে ক্যাশে ডিরেক্টরির স্তরের সংখ্যা নির্বাচন করতে দেয়
ডিরেক্টরি ডিফল্ট হল 2৷ সর্বনিম্ন হল 1 এবং সর্বোচ্চ হল 8৷

সংকলনকারী (CCACHE_CC)
এই সেটিংটি কম্পাইলারের নাম ব্যবহার করতে বাধ্য করতে ব্যবহার করা যেতে পারে। খালি সেট করা হলে
স্ট্রিং (যা ডিফল্ট), ccache কমান্ড লাইন থেকে এটি কাজ করে।

compiler_check (CCACHE_COMPILERCHECK)
ডিফল্টরূপে, ccache পরিবর্তনের সময় ("mtime") এবং কম্পাইলারের আকার অন্তর্ভুক্ত করে
ক্যাশে থেকে পুনরুদ্ধার করা ফলাফল সঠিক কিনা তা নিশ্চিত করার জন্য হ্যাশে। এই সেটিং
অন্য কৌশল নির্বাচন করতে ব্যবহার করা যেতে পারে. সম্ভাব্য মান হল:

বিষয়বস্তু
কম্পাইলার বাইনারি বিষয়বস্তু হ্যাশ. এটি ccache খুব সামান্য ধীর করে তোলে
তুলনায় এমটাইম সেটিং, কিন্তু এটি কম্পাইলার আপগ্রেডের সাথে আরও ভালভাবে মোকাবেলা করে
একটি বিল্ড বুটস্ট্র্যাপিং প্রক্রিয়া চলাকালীন।

এমটাইম
কম্পাইলারের এমটাইম এবং আকার হ্যাশ করুন, যা দ্রুত। এটি ডিফল্ট।

না
কিছু হ্যাশ করবেন না। এটি এমন পরিস্থিতিতে ভাল হতে পারে যেখানে আপনি নিরাপদে ব্যবহার করতে পারেন
কম্পাইলারের এমটাইম বা আকার পরিবর্তিত হওয়া সত্ত্বেও ক্যাশে ফলাফলগুলি (যেমন যদি
কম্পাইলার আপনার বিল্ড সিস্টেমের অংশ হিসাবে তৈরি করা হয়েছে এবং কম্পাইলারের উত্স নেই
পরিবর্তিত, অথবা যদি কম্পাইলারের শুধুমাত্র পরিবর্তন থাকে যা কোড জেনারেশনকে প্রভাবিত করে না)।
আপনি শুধুমাত্র ব্যবহার করা উচিত না যদি আপনি জানেন যে আপনি কি করছেন সেটিং।

তারের উপকারিতা
ব্যবহার মূল্য যে স্ট্রিং থেকে হ্যাশ গণনা করা যায়। এটি কম্পাইলার রিভিশন হতে পারে
নম্বরটি আপনি আগে পুনরুদ্ধার করেছেন এবং পরিবেশ পরিবর্তনশীলের মাধ্যমে এখানে সেট করেছেন।

a হুকুম স্ট্রিং
নির্দিষ্ট কমান্ডের স্ট্যান্ডার্ড আউটপুট এবং স্ট্যান্ডার্ড ত্রুটি আউটপুট হ্যাশ করুন। দ্য
কমান্ড এবং আর্গুমেন্টগুলি চালানোর জন্য স্ট্রিংটি হোয়াইটস্পেসে বিভক্ত করা হবে।
কমান্ড স্ট্রিং এর অন্য কোন ব্যাখ্যা করা হবে না, তা ছাড়া
বিশেষ শব্দ % কম্পাইলার% কম্পাইলারের পাথ দিয়ে প্রতিস্থাপিত হবে। বেশ কিছু
কমান্ড সেমিকোলন দিয়ে বিভাজক হিসাবে নির্দিষ্ট করা যেতে পারে। উদাহরণ:

· % কম্পাইলার% -v

· % কম্পাইলার% -ডাম্প মেশিন; % কম্পাইলার% -ডাম্প সংস্করণ

আপনার নিশ্চিত হওয়া উচিত যে নির্দিষ্ট কমান্ডটি যতটা সম্ভব দ্রুত
প্রতিটি ccache আহ্বানের জন্য একবার চালানো হবে।

একটি কমান্ড ব্যবহার করে কম্পাইলার সনাক্ত করা দরকারী যদি আপনি ক্যাশে এড়াতে চান
মিস হয় যখন কম্পাইলার পুনর্নির্মাণ করা হয়েছে কিন্তু পরিবর্তন করা হয়নি।

আরেকটি কেস হল যখন কম্পাইলার (যেমন ccache দ্বারা দেখা যায়) আসলে বাস্তব নয়
কম্পাইলার কিন্তু অন্য কম্পাইলার র‍্যাপার - সেই ক্ষেত্রে, ডিফল্ট এমটাইম পদ্ধতি
অন্য কম্পাইলার র‍্যাপারের mtime এবং সাইজ হ্যাশ করবে, যার মানে হল
ccache একটি কম্পাইলার আপগ্রেড সনাক্ত করতে সক্ষম হবে না। একটি উপযুক্ত কমান্ড ব্যবহার করে
কম্পাইলার সনাক্ত করুন এইভাবে নিরাপদ, কিন্তু এটি ধীর, তাই আপনার বিবেচনা করা উচিত
ব্যবহার চালিয়ে যান এমটাইম সঙ্গে সমন্বয় পদ্ধতি prefix_command সেটিং যদি
সম্ভব. অন্যান্য কম্পাইলার র‍্যাপারের সাথে CCACHE ব্যবহার করা দেখুন।

সঙ্কোচন (CCACHE_COMPRESS) [বুলিয়ান]
সত্য হলে, ccache অবজেক্ট ফাইল এবং অন্যান্য কম্পাইলার আউটপুটকে কম্প্রেস করবে
ক্যাশে যাইহোক, ক্যাশে থেকে ফাইলগুলি কীভাবে পুনরুদ্ধার করা হয় তার উপর এই সেটিংটির কোন প্রভাব নেই;
এই সেটিং নির্বিশেষে সংকুচিত এবং সংকুচিত ফলাফল এখনও ব্যবহারযোগ্য হবে।
ডিফল্ট মিথ্যা.

কম্প্রেশন_লেভেল (CCACHE_COMPRESSLEVEL)
এই সেটিংটি নির্ধারণ করে যে স্তরে ccache অবজেক্ট ফাইলগুলিকে সংকুচিত করবে। এটা শুধুমাত্র
প্রভাব আছে যদি সঙ্কোচন সক্রিয় করা হয়. মানটি ডিফল্ট 6, এবং অবশ্যই কম হবে না
1 এর চেয়ে (দ্রুততম, সবচেয়ে খারাপ কম্প্রেশন) এবং 9 এর বেশি নয় (ধীরগতির, সেরা কম্প্রেশন)।

cpp_এক্সটেনশন (CCACHE_EXTENSION)
এই সেটিং মধ্যবর্তী জন্য একটি নির্দিষ্ট এক্সটেনশন জোর করতে ব্যবহার করা যেতে পারে
প্রিপ্রসেসড ফাইল। ডিফল্ট হল স্বয়ংক্রিয়ভাবে এক্সটেনশনটি ব্যবহার করার জন্য নির্ধারণ করা
অন্তর্বর্তী প্রিপ্রসেসর ফাইল কম্পাইল করা হচ্ছে ফাইল ধরনের উপর ভিত্তি করে, কিন্তু যে
কখনও কখনও কাজ করে না। উদাহরণস্বরূপ, HP-UX-এ “aCC” কম্পাইলার ব্যবহার করার সময়, সেট করুন
cpp এক্সটেনশন i.

সরাসরি_মোড (CCACHE_DIRECT) [বুলিয়ান]
সত্য হলে, সরাসরি মোড ব্যবহার করা হবে। ডিফল্ট সত্য। সরাসরি মোড দেখুন।

অক্ষম (CCACHE_DISABLE) [বুলিয়ান]
সত্য হলে, ক্যাশে সম্পূর্ণরূপে ক্যাশে বাইপাস করে প্রকৃত কম্পাইলারকে কল করবে।
ডিফল্ট মিথ্যা.

অতিরিক্ত_ফাইল_থেকে_হ্যাশ (CCACHE_EXTRAFILES)
এই সেটিংটি ফাইলগুলির পাথগুলির একটি তালিকা যা ccache হ্যাশ সমষ্টিতে অন্তর্ভুক্ত করবে
যে বিল্ড চিহ্নিত করে. তালিকা বিভাজক হল উইন্ডোজ সিস্টেম এবং কোলনের সেমিকোলন
অন্যান্য সিস্টেমে।

hard_link (CCACHE_HARDLINK) [বুলিয়ান]
সত্য হলে, তৈরি করার সময় ccache ক্যাশে ডিরেক্টরি থেকে হার্ড লিঙ্ক ব্যবহার করার চেষ্টা করবে
একটি ফাইল কপি ব্যবহার করার পরিবর্তে কম্পাইলার আউটপুট। হার্ড লিঙ্ক ব্যবহার সামান্য হতে পারে
কিছু পরিস্থিতিতে দ্রুত, কিন্তু "মেক" এর মতো প্রোগ্রামগুলিকে বিভ্রান্ত করতে পারে যা নির্ভর করে
পরিবর্তনের সময়। আরেকটি বিষয় মনে রাখতে হবে যে যদি ফলাফল অবজেক্ট ফাইল
যেকোন উপায়ে পরিবর্তন করা হয়, এটি ক্যাশে করা অবজেক্ট ফাইলটিকেও দূষিত করে। হার্ড লিঙ্ক আছে
সংকুচিত ক্যাশে ফাইলের জন্য তৈরি করা হয় না. এর মানে হল যে আপনি সক্ষম করবেন না
আপনি হার্ড লিঙ্ক ব্যবহার করতে চান তাহলে কম্প্রেশন. ডিফল্ট মিথ্যা.

hash_dir (CCACHE_HASHDIR) [বুলিয়ান]
সত্য হলে, ccache ব্যবহার করা হ্যাশের বর্তমান কার্যকারী ডিরেক্টরি অন্তর্ভুক্ত করবে
দুটি সংকলনের পার্থক্য করুন। এটি বর্তমানের সঞ্চয়স্থানের সাথে একটি সমস্যা প্রতিরোধ করে
একটি অবজেক্ট ফাইলের ডিবাগ ইনফোতে ওয়ার্কিং ডিরেক্টরী, যা ccache দিতে পারে
ক্যাশে করা অবজেক্ট ফাইল যাতে ডিবাগ তথ্যে কাজ করার ডিরেক্টরিটি ভুলভাবে সেট করা আছে।
এই ডিবাগ তথ্যের ভুল সেটিং খুব কমই হওয়ায় এই বিকল্পটি ডিফল্টরূপে বন্ধ থাকে
সমস্যার সৃষ্টি করে। আপনি যদি সঠিক ডিরেক্টরি ব্যবহার না করে GDB নিয়ে সমস্যায় পড়েন
এই বিকল্পটি সক্রিয় করুন।

লগ ফাইল (CCACHE_LOGFILE)
যদি একটি ফাইল পাথে সেট করা হয়, ccache এটিতে কি করছে তার তথ্য লিখবে
নির্দিষ্ট ফাইল। এটি ট্র্যাক ডাউন সমস্যা জন্য দরকারী.

max_files (CCACHE_MAXFILES)
এই বিকল্পটি ক্যাশে রাখার জন্য সর্বাধিক সংখ্যক ফাইল নির্দিষ্ট করে। না এর জন্য 0 ব্যবহার করুন
সীমা (যা ডিফল্ট)

max_size (CCACHE_MAXSIZE)
এই বিকল্পটি ক্যাশের সর্বোচ্চ আকার নির্দিষ্ট করে। কোন সীমা ছাড়াই 0 ব্যবহার করুন। ডিফল্ট
মান 5G। উপলব্ধ প্রত্যয়: k, M, G, T (দশমিক) এবং Ki, Mi, Gi, Ti (বাইনারি)। দ্য
ডিফল্ট প্রত্যয় হল "G"।

পথ (CCACHE_PATH)
সেট করা হলে, ccache এই তালিকার মধ্যে ডিরেক্টরি অনুসন্ধান করবে যখন বাস্তব খুঁজবে
কম্পাইলার তালিকা বিভাজক হল উইন্ডোজ সিস্টেমে সেমিকোলন এবং অন্যের কোলন
সিস্টেম সেট করা না থাকলে, ccache কম্পাইলারের সাথে মিলে যাওয়া প্রথম এক্সিকিউটেবলের সন্ধান করবে
স্বাভাবিক নাম পাথ এটি নিজেই ccache করার একটি প্রতীকী লিঙ্ক নয়।

prefix_command (CCACHE_PREFIX)
এই বিকল্পটি কমান্ড লাইনে উপসর্গের একটি তালিকা (স্পেস দ্বারা পৃথক) যোগ করে
কম্পাইলার আহ্বান করার সময় ccache ব্যবহার করে। অন্য কম্পাইলারের সাথে CCACHE ব্যবহার করাও দেখুন
মোড়ক

শুধুমাত্র পাঠযোগ্য (CCACHE_READONLY) [বুলিয়ান]
সত্য হলে, ccache বিদ্যমান ক্যাশে করা অবজেক্ট ফাইলগুলি ব্যবহার করার চেষ্টা করবে, কিন্তু তা করবে না
ক্যাশে নতুন কিছু যোগ করার চেষ্টা করুন. আপনি যদি এটি ব্যবহার করছেন কারণ আপনার ccache
ডিরেক্টরি শুধুমাত্র পঠনযোগ্য, তারপর আপনাকে সেট করতে হবে temporary_dir অন্যথায় ccache হবে
অস্থায়ী ফাইল তৈরি করতে ব্যর্থ।

পঠন_শুধু_প্রত্যক্ষ (CCACHE_READONLY_DIRECT) [বুলিয়ান]
ঠিক যেমন শুধুমাত্র পাঠযোগ্য ccache ছাড়া শুধুমাত্র থেকে ফলাফল পুনরুদ্ধার করার চেষ্টা করবে
সরাসরি মোড ব্যবহার করে ক্যাশে, প্রিপ্রসেসর মোড নয়। এর জন্য ডকুমেন্টেশন দেখুন
শুধুমাত্র পাঠযোগ্য শুধুমাত্র পঠনযোগ্য ccache ডিরেক্টরি ব্যবহার করার বিষয়ে।

recache (CCACHE_RECACHE) [বুলিয়ান]
সত্য হলে, ccache পূর্বে সংরক্ষিত কোনো ফলাফল ব্যবহার করবে না। নতুন ফলাফল এখনও হবে
ক্যাশে করা, সম্ভবত কোনো পূর্ব-বিদ্যমান ফলাফল ওভাররাইট করা হচ্ছে।

রান_সেকেন্ড_সিপিপি (CCACHE_CPP2) [বুলিয়ান]
সত্য হলে, ccache-তে দ্বিতীয় কল এড়ানোর অপ্টিমাইজেশন ব্যবহার করবে না
প্রিপ্রসেসর প্রিপ্রসেসড আউটপুট কম্পাইল করে যা হ্যাশ খুঁজে বের করার জন্য ব্যবহার করা হয়েছিল
একটি ক্যাশে মিস ক্ষেত্রে. এটি প্রাথমিকভাবে একটি ডিবাগিং বিকল্প, যদিও এটি
কিছু অস্বাভাবিক কম্পাইলারকে কম্পাইল করতে সমস্যা হতে পারে
প্রি-প্রসেসড আউটপুট, যে ক্ষেত্রে এই বিকল্পটি যেভাবেই হোক ccache ব্যবহার করার অনুমতি দিতে পারে।

অলসতা (CCACHE_SLOPPINESS)
ডিফল্টরূপে, ccache যতটা সম্ভব কম মিথ্যা ক্যাশে হিট দেওয়ার চেষ্টা করে। যাইহোক, মধ্যে
কিছু পরিস্থিতিতে এটি সম্ভব যে আপনি এমন জিনিসগুলি জানেন যা ক্যাশে গ্রহণ করতে পারে না
মঞ্জুর এই সেটিং কিছু চেক ক্রম শিথিল করার জন্য ccache বলা সম্ভব করে তোলে
আঘাতের হার বাড়ানোর জন্য। মানটি বিকল্প সহ একটি কমা দ্বারা পৃথক স্ট্রিং হওয়া উচিত।
উপলব্ধ বিকল্পগুলি হল:

ফাইল_ম্যাক্রো
উপেক্ষা করা __ফাইল__ উৎসে উপস্থিত।

file_stat_maches
এটির সাথে মেলে কিনা তা নির্ধারণ করতে ccache সাধারণত একটি ফাইলের বিষয়বস্তু পরীক্ষা করে
ক্যাশে সংস্করণ। এই বিকল্প সেটের সাথে, ccache একটি ফাইলকে এর সাথে মিলে যাওয়া হিসাবে বিবেচনা করবে
আকার, mtime এবং ctime মিলে গেলে ক্যাশে সংস্করণ।

অন্তর্ভুক্ত_ফাইল_সিটাইম
ডিফল্টরূপে, ccache একটি ফাইলকে ক্যাশে করবে না যদি এটিতে একটি হেডার থাকে যার ctime থাকে
খুব নতুন এই বিকল্পটি সেই চেকটিকে নিষ্ক্রিয় করে।

অন্তর্ভুক্ত_ফাইল_এমটাইম
ডিফল্টরূপে, ccache একটি ফাইল ক্যাশে করবে না যদি এটিতে একটি হেডার থাকে যার mtime হয়
খুব নতুন এই বিকল্পটি সেই চেকটিকে নিষ্ক্রিয় করে।

pch_সংজ্ঞায়িত করে
একটি হেডার ফাইল প্রি-কম্পাইল করার সময় #defines সম্পর্কে অপ্রস্তুত হন। প্রি-কম্পাইলড হেডার দেখুন
আরও তথ্যের জন্য.

time_macros
উপেক্ষা করা __তারিখ__ এবং __TIME__ সোর্স কোডে উপস্থিত হচ্ছে।

আরও তথ্যের জন্য ট্রাবলস্যুটিং-এর অধীনে আলোচনাটি দেখুন।

পরিসংখ্যান (CCACHE_STATS) [বুলিয়ান]
সত্য হলে, ccache প্রতিটি সংকলনের পরিসংখ্যান কাউন্টার আপডেট করবে। ডিফল্ট
সত্য.

temporary_dir (CCACHE_TEMPDIR)
এই সেটিংটি নির্দিষ্ট করে যেখানে ccache অস্থায়ী ফাইল রাখবে। ডিফল্ট হয়
/ tmp -র পরিবর্তে.

বিঃদ্রঃ
ccache এর পূর্ববর্তী সংস্করণে, CCACHE_TEMPDIR একই ফাইল সিস্টেমে থাকতে হবে
দ্য CCACHE_DIR পথ, কিন্তু এই প্রয়োজনীয়তা শিথিল করা হয়েছে।)

উমস্ক (CCACHE_UMASK)
এই সেটিংটি ccache এবং সমস্ত চাইল্ড প্রক্রিয়ার জন্য umask নির্দিষ্ট করে (যেমন
কম্পাইলার)। আপনি যখন অন্যান্য ব্যবহারকারীদের সাথে আপনার ক্যাশে ভাগ করতে চান তখন এটি বেশিরভাগই কার্যকর।
মনে রাখবেন যে এটি থেকে তৈরি করা অবজেক্ট ফাইলগুলিতে সেট করা ফাইল অনুমতিগুলিকেও প্রভাবিত করে
আপনার সংকলন।

ঐক্যসাধন করা (CCACHE_UNIFY) [বুলিয়ান]
সত্য হলে, প্রিপ্রসেসর আউটপুট হ্যাশ করার সময় ccache একটি C/C++ ইউনিফায়ার ব্যবহার করবে যদি
-g বিকল্প ব্যবহার করা হয় না। ইউনিফায়ার একটি সাধারণ হ্যাশের চেয়ে ধীর, তাই এটি সেট করুন
এনভায়রনমেন্ট ভেরিয়েবল একটু গতি হারায়, কিন্তু এর মানে হল ccache নিতে পারে
যখন সোর্স কোডের পরিবর্তনগুলি থাকে তখন পুনরায় কম্পাইল না করার সুবিধা
শুধুমাত্র পুনর্বিন্যাস করা। নোট করুন যে ইউনিফায়ার সক্রিয় করা হ্যাশ পরিবর্তন করে, তাই ক্যাশে
ইউনিফায়ার সক্রিয় থাকাকালীন উত্পাদিত সংকলনগুলি যখন ইউনিফায়ার হয় তখন পুনরায় ব্যবহার করা যাবে না
অক্ষম, এবং তদ্বিপরীত। ইউনিফায়ার সক্রিয় করার ফলে ভুল লাইন নম্বর হতে পারে
কম্পাইলার সতর্কতা বার্তা এবং সম্প্রসারণ তথ্য __LINE__ ম্যাক্রো এছাড়াও
মনে রাখবেন যে ইউনিফায়ার সক্রিয় করার অর্থ সরাসরি মোড বন্ধ করা।

CACHE আকার ম্যানেজমেন্ট


ডিফল্টরূপে, ক্যাশেতে ক্যাশে ফাইলের মোট আকারের পাঁচ গিগাবাইটের সীমা থাকে এবং
সর্বোচ্চ সংখ্যক ফাইল নেই। আপনি ব্যবহার করে বিভিন্ন সীমা সেট করতে পারেন -M/--সর্বোচ্চ আকার এবং
-F/--max-ফাইল বিকল্প ব্যবহার করুন ccache -s/--পরিসংখ্যান দেখান ক্যাশে আকার এবং বর্তমান দেখতে
কনফিগার করা সীমা (অন্যান্য বিভিন্ন পরিসংখ্যান ছাড়াও)।

CACHE সঙ্কোচন


ccache ঐচ্ছিকভাবে কম্প্রেশন ব্যবহার করে ক্যাশে রাখা সমস্ত ফাইলকে সংকুচিত করতে পারে
লাইব্রেরি zlib. যদিও এটি একটি ক্ষুদ্র কর্মক্ষমতা মন্থর জড়িত হতে পারে, এটি সংখ্যা বৃদ্ধি করে
ক্যাশে ফিট করা ফাইলগুলির। আপনি দিয়ে কম্প্রেশন চালু করতে পারেন সঙ্কোচন
কনফিগারেশন সেটিং এবং আপনি এর সাথে কম্প্রেশন লেভেল পরিবর্তন করতে পারেন কম্প্রেশন_লেভেল.

কেমন CCACHE WORKS


মূল ধারণা হল সনাক্ত করা যখন আপনি ঠিক একই কোড দ্বিতীয়বার কম্পাইল করছেন এবং
পূর্বে উত্পাদিত আউটপুট পুনরায় ব্যবহার করুন। বিভিন্ন ধরণের হ্যাশিং দ্বারা সনাক্তকরণ করা হয়
তথ্য যা সংকলনের জন্য অনন্য হওয়া উচিত এবং তারপরে হ্যাশ যোগ ব্যবহার করে
ক্যাশ করা আউটপুট সনাক্ত করুন। ccache MD4 ব্যবহার করে, একটি খুব দ্রুত ক্রিপ্টোগ্রাফিক হ্যাশ অ্যালগরিদম, এর জন্য
হ্যাশিং (MD4 আজকাল ক্রিপ্টোগ্রাফিক প্রসঙ্গে দরকারী হতে খুব দুর্বল, কিন্তু এটি
পুনঃসংকলন শনাক্ত করার জন্য যথেষ্ট নিরাপদ হওয়া উচিত।) একটি ক্যাশে হিটে, ccache হয়
সমস্ত সঠিক কম্পাইলার আউটপুট সরবরাহ করতে সক্ষম (সমস্ত সতর্কতা, নির্ভরতা সহ
ফাইল, ইত্যাদি) ক্যাশে থেকে।

ccache সনাক্তকরণের দুটি উপায় রয়েছে:

· দ্য সরাসরি মোড, যেখানে ccache সোর্স কোড হ্যাশ করে এবং সরাসরি ফাইল অন্তর্ভুক্ত করে

· দ্য প্রিপ্রসেসর মোড, যেখানে ccache সোর্স কোডে প্রিপ্রসেসর চালায় এবং
ফলাফল হ্যাশ

প্রিপ্রসেসর চালানোর কিছু ওভারহেড থাকার কারণে সরাসরি মোড সাধারণত দ্রুত হয়।

সাধারণ হ্যাশ তথ্য
উভয় মোডের জন্য, নিম্নলিখিত তথ্য হ্যাশে অন্তর্ভুক্ত করা হয়েছে:

প্রিপ্রসেসর আউটপুট সহ একটি ফাইলের জন্য কম্পাইলার দ্বারা ব্যবহৃত এক্সটেনশন (সাধারণত .i
সি কোডের জন্য এবং .ii C++ কোডের জন্য)

কম্পাইলারের আকার এবং পরিবর্তনের সময় (বা অন্যান্য কম্পাইলার-নির্দিষ্ট তথ্য
দ্বারা নির্দিষ্ট compiler_check বিন্যাস)

কম্পাইলারের নাম

· বর্তমান ডিরেক্টরি (যদি hash_dir সেটিং চালু আছে)

· দ্বারা নির্দিষ্ট ফাইল বিষয়বস্তু অতিরিক্ত_ফাইল_থেকে_হ্যাশ সেটিং (যদি থাকে)

সার্জারির সরাসরি মোড
ডাইরেক্ট মোডে, হ্যাশ সাধারণ তথ্য দিয়ে গঠিত হয় এবং:

· ইনপুট সোর্স ফাইল

কমান্ড লাইন অপশন

হ্যাশের উপর ভিত্তি করে, ক্যাশে "মেনিফেস্ট" নামে একটি ডেটা স্ট্রাকচার দেখা যায়। দ্য
ম্যানিফেস্টে রয়েছে:

· ক্যাশে করা সংকলন ফলাফলের উল্লেখ (অবজেক্ট ফাইল, নির্ভরতা ফাইল, ইত্যাদি) যা ছিল
হ্যাশের সাথে মিলে যাওয়া পূর্ববর্তী সংকলন দ্বারা উত্পাদিত

সংকলনের ফলাফলের সময়ে পড়া ফাইলগুলি অন্তর্ভুক্ত করার পাথ
ক্যাশে সংরক্ষিত

সংকলনের ফলাফলগুলি সংরক্ষিত হওয়ার সময়ে অন্তর্ভুক্ত ফাইলগুলির হ্যাশ সমষ্টি
ক্যাশে

অন্তর্ভুক্ত ফাইলগুলির বর্তমান বিষয়বস্তু তারপর হ্যাশ করা হয় এবং তথ্যের সাথে তুলনা করা হয়
ম্যানিফেস্টে যদি একটি মিল থাকে, ccache সংকলনের ফলাফল জানে। যদি সেখানে
কোন মিল নেই, ccache প্রিপ্রসেসর চালানোর জন্য ফিরে আসে। থেকে আউটপুট
প্রিপ্রসেসরকে পার্স করা হয় যাতে পড়া ফাইলগুলি অন্তর্ভুক্ত করা হয়। পাথ এবং হ্যাশ সমষ্টি
এর মধ্যে অন্তর্ভুক্ত ফাইলগুলি তারপর ম্যানিফেস্টে তথ্য সহ সংরক্ষণ করা হয়
উত্পাদিত সংকলন ফলাফল.

সরাসরি মোডের সাথে একটি ধরা আছে: হেডার ফাইলগুলি কম্পাইলার দ্বারা ব্যবহৃত হয়
রেকর্ড করা, কিন্তু হেডার ফাইল যে ছিল না ব্যবহার করা হয়েছে, কিন্তু ব্যবহার করা হত যদি তারা বিদ্যমান থাকে,
না. সুতরাং, যখন ccache চেক করে যে ক্যাশে থেকে একটি ফলাফল নেওয়া যেতে পারে, এটি বর্তমানে
একটি নতুন শিরোনাম ফাইলের অস্তিত্ব ফলাফল অবৈধ করা উচিত কিনা তা পরীক্ষা করতে পারে না। ভিতরে
অনুশীলন, সরাসরি মোড অধিকাংশ ক্ষেত্রেই ব্যবহার করা নিরাপদ।

নিচের যে কোনো একটি ধারণ করলে সরাসরি মোড অক্ষম করা হবে:

· কনফিগারেশন সেটিং সরাসরি_মোড মিথ্যা

· অন্তর্ভুক্ত ফাইলগুলির একটির পরিবর্তনের সময় খুবই নতুন (একটি দৌড় এড়াতে প্রয়োজন
শর্ত)

· ইউনিফায়ার সক্রিয় করা হয়েছে (কনফিগারেশন সেটিং ঐক্যসাধন করা সত্য)

সরাসরি মোড দ্বারা সমর্থিত নয় এমন একটি কম্পাইলার বিকল্প ব্যবহার করা হয়:

· ক -ডব্লিউপি,X ছাড়া অন্য কম্পাইলার বিকল্প -Wp, -MD,পথ এবং -Wp, -MMD,পথ

· -এক্সপ্রেপ্রসেসর

সোর্স কোডে "__TIME__" স্ট্রিংটি উপস্থিত রয়েছে

সার্জারির প্রিপ্রসেসর মোড
প্রিপ্রসেসর মোডে, হ্যাশ সাধারণ তথ্য দিয়ে গঠিত হয় এবং:

কম্পাইলার চালানো থেকে প্রিপ্রসেসর আউটপুট -E

কমান্ড লাইন বিকল্পগুলি ছাড়া যে বিকল্পগুলিকে প্রভাবিত করে ফাইলগুলি অন্তর্ভুক্ত করে (-I, -অন্তর্ভুক্ত, -D,
ইত্যাদি; তত্ত্ব হল যে এই বিকল্পগুলি প্রিপ্রসেসরের আউটপুট পরিবর্তন করবে যদি তাদের থাকে
কোন প্রভাব)

প্রিপ্রসেসর দ্বারা উত্পন্ন যেকোন স্ট্যান্ডার্ড ত্রুটি আউটপুট

হ্যাশের উপর ভিত্তি করে, ক্যাশে সংকলন ফলাফল সরাসরি ক্যাশে দেখা যেতে পারে।

কম্পাইলিং IN ভিন্ন নির্দেশিকা


হ্যাশের অন্তর্ভুক্ত কিছু তথ্য যা একটি অনন্য সংকলনকে চিহ্নিত করে এতে থাকতে পারে
পরম পথ:

· প্রিপ্রসেসড সোর্স কোডে ফাইলগুলি অন্তর্ভুক্ত করার জন্য পরম পাথ থাকতে পারে যদি
কম্পাইলার বিকল্প -g ব্যবহার করা হয় বা যদি পরম পাথ দেওয়া হয় -I এবং অনুরূপ কম্পাইলার
অপশন।

· কম্পাইলার বিকল্প দ্বারা নির্দিষ্ট পথ (যেমন -I, -এমএফ, ইত্যাদি) পরম হতে পারে।

সোর্স কোড ফাইল পাথ পরম হতে পারে, এবং সেই পাথটি প্রতিস্থাপিত হতে পারে __ফাইল__
সোর্স কোডে ম্যাক্রো বা এর দ্বারা স্ট্যান্ডার্ড ত্রুটির জন্য নির্গত সতর্কতা অন্তর্ভুক্ত
প্রিপ্রসেসর

এর মানে হল যে আপনি যদি একই কোড বিভিন্ন অবস্থানে কম্পাইল করেন, আপনি শেয়ার করতে পারবেন না
আপনি ক্যাশে মিস করার পর থেকে বিভিন্ন বিল্ড ডিরেক্টরির মধ্যে সংকলন ফলাফল
কারণ পরম বিল্ড ডিরেক্টরি পাথ যে হ্যাশ অংশ. এটি প্রশমিত করার জন্য
সমস্যা, আপনি কনফিগারেশন সেটিংসে একটি "বেস ডিরেক্টরি" নির্দিষ্ট করতে পারেন base_dir একটিতে
ডিরেক্টরির পরম পথ। ccache তারপর পরম পাথগুলিকে পুনরায় লিখবে যা এর অধীনে রয়েছে
বেস ডিরেক্টরি (অর্থাৎ, যে পাথগুলিতে বেস ডিরেক্টরিটি উপসর্গ হিসাবে রয়েছে) আপেক্ষিক পাথগুলিতে
হ্যাশ নির্মাণ করার সময়। বেস ডিরেক্টরি হিসাবে ব্যবহার করার জন্য একটি সাধারণ পথ হল আপনার বাড়ি
ডিরেক্টরি বা অন্য ডিরেক্টরি যা আপনার বিল্ড ডিরেক্টরিগুলির মূল। (/ হিসেবে ব্যবহার করবেন না
বেস ডিরেক্টরি যেহেতু এটি ccache তৈরি করবে সিস্টেম হেডার ফাইলগুলির পাথগুলিও পুনর্লিখন করবে,
যা কিছু লাভ করে না।)

একটি বেস ডিরেক্টরি ব্যবহার করার অসুবিধা হল:

যদি আপনি সোর্স কোড ফাইলের জন্য একটি পরম পথ নির্দিষ্ট করেন, __ফাইল__ ম্যাক্রো হবে
পরিবর্তে একটি আপেক্ষিক পথে প্রসারিত।

· যদি আপনি সোর্স কোড ফাইলের একটি পরম পথ উল্লেখ করেন এবং এর সাথে কম্পাইল করেন -g, দ্য
অবজেক্ট ফাইলে সঞ্চিত সোর্স কোড পাথ ভুল ডিরেক্টরি নির্দেশ করতে পারে, যা হতে পারে
GDB-এর মতো ডিবাগারদের সোর্স কোড খুঁজে পেতে বাধা দেয়। কখনও কখনও, একটি কাজ কাছাকাছি হয়
GDB-তে "cd" কমান্ড দিয়ে স্পষ্টভাবে ডিরেক্টরি পরিবর্তন করতে।

প্রি-কম্পাইলড হেডার


ccache-এর GCC-এর প্রি-কম্পাইল করা হেডারগুলির জন্য সমর্থন রয়েছে। যাইহোক, আপনাকে কিছু জিনিস করতে হবে
এটি সঠিকভাবে কাজ করুন:

· আপনাকে অবশ্যই সেট করতে হবে অলসতা থেকে pch_defines,time_macros. কারণ হল ccache পারে না
কিনা বলতে __TIME__ or __তারিখ__ একটি precompiled হেডার ব্যবহার করার সময় ব্যবহার করা হয়. আরও, এটা
প্রিপ্রসেসিং কীভাবে কাজ করে তার কারণে সোর্স কোডে # সংজ্ঞায়িত পরিবর্তনগুলি সনাক্ত করতে পারে না
প্রি-কম্পাইলেড হেডারের সাথে একত্রে।

· আপনাকে অবশ্যই:

· ব্যবহার -অন্তর্ভুক্ত precompiled হেডার অন্তর্ভুক্ত করার জন্য কম্পাইলার বিকল্প (যেমন, না
ব্যবহার # অন্তর্ভুক্ত হেডার অন্তর্ভুক্ত করার জন্য সোর্স কোডে); বা

· (ক্ল্যাং কম্পাইলারের জন্য) ব্যবহার করুন - অন্তর্ভুক্ত-pch PCH অন্তর্ভুক্ত করার জন্য কম্পাইলার বিকল্প
precompiled হেডার থেকে উত্পন্ন ফাইল; বা

· যুক্ত করুন -fpch-প্রিপ্রসেস কম্পাইল করার সময় কম্পাইলার অপশন।

আপনি যদি এটি না করেন, হয় হেডার ফাইলের অ-প্রি-কম্পাইল করা সংস্করণ হবে
ব্যবহৃত (যদি পাওয়া যায়) বা ccache বাস্তব কম্পাইলার চালানোর জন্য ফিরে আসবে এবং বৃদ্ধি পাবে
পরিসংখ্যান কাউন্টার "প্রিপ্রসেসর ত্রুটি" (যদি অ-প্রি-কম্পাইল করা হেডার ফাইল না হয়
উপলব্ধ)।

শেয়ারিং A CACHE


ডেভেলপারদের একটি গ্রুপ একটি ক্যাশে ডিরেক্টরি ভাগ করে ক্যাশ হিট রেট বাড়াতে পারে। প্রতি
অপ্রীতিকর পার্শ্ব প্রতিক্রিয়া ছাড়াই একটি ক্যাশে ভাগ করুন, নিম্নলিখিত শর্তগুলি পূরণ করা উচিত:

একই ক্যাশে ডিরেক্টরি ব্যবহার করুন।

· কনফিগারেশন সেটিং নিশ্চিত করুন hard_link মিথ্যা (যা ডিফল্ট)

· নিশ্চিত করুন যে সমস্ত ব্যবহারকারী একই গ্রুপে আছেন।

· কনফিগারেশন সেটিং সেট করুন উমস্ক 002 পর্যন্ত। এটি নিশ্চিত করে যে ক্যাশে করা ফাইলগুলি রয়েছে
গ্রুপের প্রত্যেকের কাছে অ্যাক্সেসযোগ্য।

· নিশ্চিত করুন যে সমস্ত ব্যবহারকারীর সম্পূর্ণ ক্যাশে ডিরেক্টরিতে লেখার অনুমতি রয়েছে (এবং সেটি
আপনি শেয়ার করা ক্যাশের সমস্ত ব্যবহারকারীকে বিশ্বাস করেন)।

· নিশ্চিত করুন যে সেটগিড বিট ক্যাশের সমস্ত ডিরেক্টরিতে সেট করা আছে। এই বলে
নতুন ডিরেক্টরির জন্য গ্রুপ মালিকানা উত্তরাধিকারী ফাইল সিস্টেম। কমান্ড "খোঁজ
$CCACHE_DIR -টাইপ d | xargs chmod g+s” এর জন্য উপযোগী হতে পারে।

হার্ড লিঙ্ক মোড এড়ানোর কারণ হল যে হার্ড লিঙ্কগুলি অবাঞ্ছিত পার্শ্ব প্রতিক্রিয়া সৃষ্টি করে,
যেহেতু একটি ক্যাশ করা ফাইলের সমস্ত লিঙ্ক ফাইলের পরিবর্তন টাইমস্ট্যাম্প শেয়ার করে। এর ফলে
মিথ্যা নির্ভরতা টাইমস্ট্যাম্প-ভিত্তিক বিল্ড সিস্টেম দ্বারা ট্রিগার করা হবে যখনই অন্য ব্যবহারকারী
একটি বিদ্যমান ফাইল লিঙ্ক. সাধারণত, ব্যবহারকারীরা দেখতে পাবে যে তাদের লাইব্রেরি এবং বাইনারিগুলি
কারণ ছাড়াই পুনরায় লিঙ্ক করা হয়েছে।

আপনি নিশ্চিত করতে চাইতে পারেন যে একটি বেস ডিরেক্টরি যথাযথভাবে সেট করা হয়েছে, যেমন আলোচনা করা হয়েছে
একটি পূর্ববর্তী বিভাগ।

শেয়ারিং A CACHE ON NFS- র


একটি NFS ফাইল সিস্টেমে (বা অনুরূপ ফাইল সিস্টেম) ক্যাশে ডিরেক্টরি স্থাপন করা সম্ভব,
কিন্তু মনে রাখবেন যে:

· NFS-এ ক্যাশে থাকলে সংকলন ধীর হয়ে যেতে পারে। কিছু বেঞ্চমার্কিং করতে ভুলবেন না
এটা মূল্য কিনা দেখতে.

· ccache NFS-এ খুব পুঙ্খানুপুঙ্খভাবে পরীক্ষা করা হয়নি।

একটি টিপ সেট করা হয় temporary_dir NFS ট্রাফিক এড়াতে স্থানীয় হোস্টের একটি ডিরেক্টরিতে
অস্থায়ী ফাইল.

ব্যবহার CCACHE সঙ্গে অন্যান্য কম্পাইলার মোড়ক


অন্য কম্পাইলার র‍্যাপারের সাথে ccache একত্রিত করার প্রস্তাবিত উপায় (যেমন "distcc")
ccache কম্পাইলার র্যাপার চালানোর অনুমতি দিয়ে হয়। এই সংজ্ঞায়িত দ্বারা সম্পন্ন করা হয়
কনফিগারেশন সেটিং prefix_command, উদাহরণস্বরূপ পরিবেশ পরিবর্তনশীল সেট করে
CCACHE_PREFIX মোড়কের নামে (যেমন distcc) ccache তারপর উপসর্গ হবে
কম্পাইলার চালানোর সময় নির্দিষ্ট কমান্ড সহ কমান্ড লাইন। বেশ কয়েকটি নির্দিষ্ট করতে
উপসর্গ কমান্ড, সেট prefix_command কমান্ডের একটি কোলন-বিচ্ছিন্ন তালিকাতে।

যদি না আপনি সেট করেন compiler_check একটি উপযুক্ত আদেশে (এর বিবরণ দেখুন
কনফিগারেশন বিকল্প), ফর্মটি ব্যবহার করার পরামর্শ দেওয়া হয় না ccache অন্য মোড়ক
সংকলনকারী args কম্পাইলেশন কমান্ড হিসাবে। এটি ব্যবহার করার জন্যও সুপারিশ করা হয় না
অন্যান্য কম্পাইলার মোড়কের জন্য মাস্করেডিং কৌশল। কারণ হল ডিফল্টরূপে,
ccache উভয় ক্ষেত্রেই বাস্তবের পরিবর্তে অন্য মোড়কের mtime এবং আকার হ্যাশ করবে
কম্পাইলার, যার মানে হল:

· কম্পাইলার আপগ্রেড সঠিকভাবে সনাক্ত করা হবে না।

· ক্যাশ করা ফলাফল অন্যের সাথে এবং ছাড়া সংকলনের মধ্যে ভাগ করা হবে না
মোড়কের।

আরেকটি গৌণ বিষয় হল যে যদি prefix_command ব্যবহার করা হয়, ccache অন্যকে আহ্বান করবে না
প্রিপ্রসেসর চালানোর সময় wrapper, যা কর্মক্ষমতা বাড়ায়।

onworks.net পরিষেবা ব্যবহার করে অনলাইনে ccache ব্যবহার করুন


বিনামূল্যে সার্ভার এবং ওয়ার্কস্টেশন

উইন্ডোজ এবং লিনাক্স অ্যাপ ডাউনলোড করুন

  • 1
    Eclipse Tomcat প্লাগইন
    Eclipse Tomcat প্লাগইন
    Eclipse Tomcat প্লাগইন প্রদান করে
    একটি টমক্যাট সার্লেটের সহজ ইন্টিগ্রেশন
    জাভা বিকাশের জন্য ধারক
    ওয়েব অ্যাপ্লিকেশন। আপনি জন্য আমাদের সাথে যোগ দিতে পারেন
    আলোচনা...
    Eclipse Tomcat প্লাগইন ডাউনলোড করুন
  • 2
    ওয়েব টরেন্ট ডেস্কটপ
    ওয়েব টরেন্ট ডেস্কটপ
    ওয়েবটরেন্ট ডেস্কটপ স্ট্রিমিংয়ের জন্য
    ম্যাক, উইন্ডোজ বা লিনাক্সে টরেন্ট। এটা
    BitTorrent এবং উভয়ের সাথে সংযোগ করে
    WebTorrent সহকর্মীরা। এখন নেই
    অপেক্ষা করতে হবে...
    ওয়েবটরেন্ট ডেস্কটপ ডাউনলোড করুন
  • 3
    জেনএক্স
    জেনএক্স
    GenX পরিমার্জিত করার জন্য একটি বৈজ্ঞানিক প্রোগ্রাম
    এক্স-রে রিফেলসিটিভিটি, নিউট্রন
    প্রতিফলন এবং পৃষ্ঠের এক্স-রে
    ডিফার্যাকশন ডেটা ডিফারেনশিয়াল ব্যবহার করে
    বিবর্তন অ্যালগরিদম...
    GenX ডাউনলোড করুন
  • 4
    pspp4 উইন্ডোজ
    pspp4 উইন্ডোজ
    PSPP হল পরিসংখ্যান সংক্রান্ত একটি প্রোগ্রাম
    নমুনা তথ্য বিশ্লেষণ। এটি একটি বিনামূল্যে
    মালিকানা প্রোগ্রামের জন্য প্রতিস্থাপন
    এসপিএসএস। PSPP-তে পাঠ্য-ভিত্তিক এবং উভয়ই রয়েছে
    গ্রাফিক্যাল আমাদের...
    pspp4windows ডাউনলোড করুন
  • 5
    গিট এক্সটেনশন
    গিট এক্সটেনশন
    গিট এক্সটেনশন হল একটি স্বতন্ত্র UI টুল
    গিট সংগ্রহস্থল পরিচালনার জন্য। এটাও
    উইন্ডোজ এক্সপ্লোরারের সাথে সংহত করে এবং
    মাইক্রোসফ্ট ভিসুয়াল স্টু
    (2015/2017/2019)। ম...
    গিট এক্সটেনশন ডাউনলোড করুন
  • 6
    ইস্পেক: বক্তৃতা সংশ্লেষ
    ইস্পেক: বক্তৃতা সংশ্লেষ
    ইংরেজির জন্য টেক্সট টু স্পিচ ইঞ্জিন এবং
    অন্যান্য অনেক ভাষা। সঙ্গে কম্প্যাক্ট আকার
    স্পষ্ট কিন্তু কৃত্রিম উচ্চারণ।
    এর সাথে একটি কমান্ড-লাইন প্রোগ্রাম হিসাবে উপলব্ধ
    অনেক...
    eSpeak ডাউনলোড করুন: বক্তৃতা সংশ্লেষণ
  • আরও »

লিনাক্স কমান্ডগুলি

Ad