الإنجليزيةالفرنسيةالإسبانية

OnWorks فافيكون

ccache-swig2.0 - عبر الإنترنت في السحابة

قم بتشغيل ccache-swig2.0 في موفر الاستضافة المجاني OnWorks عبر Ubuntu Online أو Fedora Online أو محاكي Windows عبر الإنترنت أو محاكي MAC OS عبر الإنترنت

هذا هو الأمر ccache-swig2.0 الذي يمكن تشغيله في موفر الاستضافة المجاني OnWorks باستخدام إحدى محطات العمل المجانية المتعددة عبر الإنترنت مثل Ubuntu Online أو Fedora Online أو محاكي Windows عبر الإنترنت أو محاكي MAC OS عبر الإنترنت

برنامج:

اسم


ccache-swig - ذاكرة تخزين مؤقت سريعة للمترجم

موجز


ccache-swig [خيار]

ccache-swig [خيارات المترجم]

[خيارات المترجم]

الوصف


ccache-swig عبارة عن ذاكرة تخزين مؤقت للمترجم. يعمل على تسريع عملية إعادة تجميع كود C/C++/SWIG عن طريق التخزين المؤقت
التجميعات السابقة واكتشاف متى يتم إجراء نفس التجميع مرة أخرى. ccache-swig هو
ccache بالإضافة إلى دعم SWIG. يتم استخدام ccache و ccache-swig بالتبادل في هذا
وثيقة.

OPTIONS ملخص


فيما يلي ملخص لخيارات ccache-swig.

-s عرض ملخص الإحصائيات
-z صفر الإحصائيات
-ج قم بإجراء تنظيف ذاكرة التخزين المؤقت
-C مسح ذاكرة التخزين المؤقت بالكامل
-F تعيين الحد الأقصى للملفات في ذاكرة التخزين المؤقت
-م تعيين الحد الأقصى لحجم ذاكرة التخزين المؤقت (استخدم G أو M أو K)
-h صفحة المساعدة هذه
- رقم نسخة الطباعة

OPTIONS


تنطبق هذه الخيارات فقط عند استدعاء ccache كـ "ccache-swig". عندما يتم استدعاؤه كـ a
لا ينطبق أي من هذه الخيارات على المترجم. في هذه الحالة تنطبق خيارات المترجم العادية الخاصة بك و
يجب عليك الرجوع إلى وثائق المجمعين الخاص بك.

-h طباعة صفحة ملخص الخيارات

-s طباعة ملخص الإحصائيات الحالية لذاكرة التخزين المؤقت. يتم تخزين الإحصائيات
تنتشر عبر الدلائل الفرعية لذاكرة التخزين المؤقت. يؤدي استخدام "ccache-swig -s" إلى إضافة ملف
الإحصائيات عبر كافة الدلائل الفرعية وطباعة المجاميع.

-z صفر إحصائيات ذاكرة التخزين المؤقت.

-V اطبع رقم إصدار ccache

-c قم بتنظيف ذاكرة التخزين المؤقت وأعد حساب عدد ملفات ذاكرة التخزين المؤقت وإجمالي حجمها. عادة
لا ينبغي أن يكون الخيار -c ضروريًا لأن ccache يبقي ذاكرة التخزين المؤقت أقل من المحدد
حدود في وقت التشغيل ويحافظ على الإحصائيات محدثة في كل عملية تجميع. هذا الخيار هو
يكون هذا مفيدًا في الغالب إذا قمت بتعديل محتويات ذاكرة التخزين المؤقت يدويًا أو كنت تعتقد أن ذاكرة التخزين المؤقت
قد تكون إحصائيات الحجم غير دقيقة.

-C مسح ذاكرة التخزين المؤقت بالكامل، وإزالة كافة الملفات المخزنة مؤقتًا.

-F
يؤدي هذا إلى تعيين الحد الأقصى لعدد الملفات المسموح بها في ذاكرة التخزين المؤقت. يتم تخزين القيمة
داخل دليل ذاكرة التخزين المؤقت وينطبق على جميع التجميعات المستقبلية. نظرا للطريقة
يتم تخزين القيمة، ويتم دائمًا تقريب القيمة الفعلية المستخدمة إلى الأقرب
مضاعفات العدد 16.

-M
يؤدي هذا إلى تعيين الحد الأقصى لحجم ذاكرة التخزين المؤقت. يمكنك تحديد قيمة بالجيجابايت أو الميجابايت
أو كيلو بايت عن طريق إلحاق G أو M أو K بالقيمة. الافتراضي هو غيغابايت. ال
يتم تقريب القيمة الفعلية المخزنة إلى أقرب مضاعف وهو 16 كيلو بايت.

تركيب


هناك طريقتان لاستخدام ccache. يمكنك إما بادئة أوامر الترجمة الخاصة بك باستخدام
"ccache-swig" أو يمكنك إنشاء رابط رمزي بين ccache-swig وأسماء ملفاتك
المترجمين. الطريقة الأولى هي الأكثر ملاءمة إذا كنت ترغب فقط في تجربة ccache أو رغبتك
لاستخدامها في بعض المشاريع المحددة. الطريقة الثانية هي الأكثر فائدة عندما ترغب في ذلك
لاستخدام ccache لجميع التجميعات الخاصة بك.

للتثبيت للاستخدام بالطريقة الأولى، ما عليك سوى نسخ ccache-swig إلى مكان ما في المسار الخاص بك.

لتثبيت الطريقة الثانية قم بشيء مثل هذا:

cp ccache-swig / البيرة / المحلية / بن /
ln -s /usr/local/bin/ccache-swig /usr/local/bin/gcc
ln -s /usr/local/bin/ccache-swig /usr/local/bin/g++
ln -s /usr/local/bin/ccache-swig /usr/local/bin/cc
ln -s /usr/local/bin/ccache-swig /usr/local/bin/swig

وهذا سوف يعمل طالما / البيرة / المحلية / بن يأتي قبل المسار إلى دول مجلس التعاون الخليجي (والذي عادة ما يكون في
/ البيرة / بن). بعد التثبيت، قد ترغب في تشغيل "what gcc" للتأكد من صحة الملف
يتم استخدام الرابط.

ملحوظة! لا تستخدم رابطًا ثابتًا، استخدم رابطًا رمزيًا. الارتباط الثابت سوف يسبب "مثيرًا للاهتمام"
مشاكل.

EXTRA OPTIONS


عند تشغيله كواجهة أمامية للمترجم، عادةً ما يأخذ ccache نفس خيارات سطر الأوامر
كمترجم الذي تستخدمه. الاستثناء الوحيد لهذا هو الخيار "--ccache-skip".
يمكن استخدام هذا الخيار لإخبار ccache أن الخيار التالي ليس إدخالاً بالتأكيد
اسم الملف، ويجب تمريره إلى المترجم كما هو.

السبب وراء أهمية ذلك هو أن ccache يحتاج إلى تحليل سطر الأوامر و
تحديد ما هو اسم ملف الإدخال وما هو خيار المترجم، لأنه يحتاج إلى الإدخال
filename لتحديد اسم ملف الكائن الناتج (من بين أشياء أخرى). ال
يستخدم ccache الإرشادي في هذا التحليل أن أي سلسلة في سطر الأوامر موجودة كـ
يتم التعامل مع الملف كاسم ملف إدخال (عادةً ملف C). باستخدام --ccache-skip يمكنك ذلك
فرض خيار على عدم معاملته كاسم ملف إدخال وبدلاً من ذلك يتم تمريره إلى ملف
المترجم كخيار سطر الأوامر.

البيئة المتغيرات


يستخدم ccache عددًا من متغيرات البيئة للتحكم في العملية. في معظم الحالات أنت
لن تحتاج إلى أي من هذه لأن الإعدادات الافتراضية ستكون جيدة.

CCACHE_DIR
يحدد متغير البيئة CCACHE_DIR المكان الذي ستحتفظ فيه ccache بتخزينه المؤقت
إخراج المترجم. الافتراضي هو "$HOME/.ccache".

CCACHE_TEMPDIR
يحدد متغير البيئة CCACHE_TEMPDIR المكان الذي سيتم وضع ccache فيه بشكل مؤقت
ملفات. الافتراضي هو نفس CCACHE_DIR. لاحظ أن المسار CCACHE_TEMPDIR
يجب أن يكون على نفس نظام الملفات مثل مسار CCACHE_DIR، بحيث تتم إعادة تسمية الملفات
بين الدليلين يمكن أن تعمل.

CCACHE_LOGFILE
إذا قمت بتعيين متغير البيئة CCACHE_LOGFILE، فسوف يقوم ccache بكتابة بعض السجلات
معلومات عن عدد الزيارات والأخطاء في ذاكرة التخزين المؤقت في هذا الملف. وهذا مفيد للتعقب
مشاكل.

CCACHE_VERBOSE
إذا قمت بتعيين متغير البيئة CCACHE_VERBOSE، فسيتم عرض ccache
stdout جميع دعوات المترجم التي يقوم بها. يمكن أن يكون هذا مفيدًا لتصحيح الأخطاء
مشاكل غير متوقعة.

CCACHE_PATH
يمكنك اختياريًا تعيين CCACHE_PATH على مسار مفصول بنقطتين حيث سيظهر ccache
للمجمعين الحقيقيين. إذا لم تقم بذلك، فسوف يبحث ccache عن الأول
قابل للتنفيذ يطابق اسم المترجم في PATH العادي الذي لا يمثل رابطًا رمزيًا
إلى ذاكرة التخزين المؤقتة نفسها.

CCACHE_CC
يمكنك اختياريًا تعيين CCACHE_CC لفرض استخدام اسم المترجم. اذا أنت
لا تفعل هذا، ثم يعمل ccache على حل المشكلة من سطر الأوامر.

CCACHE_PREFIX
يضيف هذا الخيار بادئة إلى سطر الأوامر الذي يتم تشغيله بواسطة ccache عند استدعاء الملف
مترجم. راجع أيضًا القسم أدناه حول استخدام ccache مع distcc.

CCACHE_DISABLE
إذا قمت بتعيين متغير البيئة CCACHE_DISABLE، فسوف يقوم ccache فقط باستدعاء
مترجم حقيقي، وتجاوز ذاكرة التخزين المؤقت تماما.

CCACHE_READONLY
يخبر متغير البيئة CCACHE_READONLY ccache بمحاولة استخدام الموجود
ملفات الكائنات المخزنة مؤقتًا، ولكن ليس لمحاولة إضافة أي شيء جديد إلى ذاكرة التخزين المؤقت. إذا كنت كذلك
باستخدام هذا لأن CCACHE_DIR الخاص بك للقراءة فقط، فقد تجد أنك أيضًا
تحتاج إلى تعيين CCACHE_TEMPDIR وإلا فسوف تفشل ccache في إنشاء الملف المؤقت
الملفات.

CCACHE_CPP2
إذا قمت بتعيين متغير البيئة CCACHE_CPP2 فلن يستخدم ccache
تحسين تجنب الاستدعاء الثاني للمعالج المسبق من خلال تجميع ملف
المخرجات التي تمت معالجتها مسبقًا والتي تم استخدامها للعثور على التجزئة في حالة ذاكرة التخزين المؤقت
يفتقد. يعد هذا في المقام الأول خيارًا لتصحيح الأخطاء، على الرغم من أنه من الممكن أن يقوم البعض بذلك
ستواجه المترجمات غير المعتادة مشاكل مع امتدادات أسماء الملفات الوسيطة المستخدمة
في هذا التحسين، وفي هذه الحالة قد يسمح هذا الخيار باستخدام ccache.

CCACHE_NOCOMPRESS
إذا قمت بتعيين متغير البيئة CCACHE_NOCOMPRESS فلن يكون هناك ضغط
تستخدم على الملفات التي تذهب إلى ذاكرة التخزين المؤقت. ومع ذلك، هذا الإعداد ليس له أي تأثير على كيفية القيام بذلك
يتم استرداد الملفات من ذاكرة التخزين المؤقت، وستظل النتائج المضغوطة قابلة للاستخدام.

CCACHE_NOSTATS
إذا قمت بتعيين متغير البيئة CCACHE_NOSTATS، فلن يقوم ccache بتحديث الملف
ملفات الإحصاءات على كل ترجمة.

CCACHE_NLEVELS
يتيح لك متغير البيئة CCACHE_NLEVELS اختيار عدد المستويات
من التجزئة في دليل ذاكرة التخزين المؤقت. الافتراضي هو 2. الحد الأدنى هو 1 والحد الأقصى
هو 8.

CCACHE_HARDLINK
إذا قمت بتعيين متغير البيئة CCACHE_HARDLINK، فسوف يحاول ccache استخدامه
الروابط الصلبة من دليل ذاكرة التخزين المؤقت عند إنشاء مخرجات المترجم بدلاً من
باستخدام نسخة ملف. يعد استخدام الروابط الثابتة أسرع، ولكنه قد يؤدي إلى إرباك برامج مثل "إنشاء"
التي تعتمد على أوقات التعديل. لا يتم أبدًا إنشاء الروابط الثابتة لذاكرة التخزين المؤقت المضغوطة
الملفات.

CCACHE_RECACHE
يؤدي هذا إلى إجبار ccache على عدم استخدام أي نتائج مخزنة مؤقتًا، حتى لو عثر عليها. جديد
لا تزال النتائج مخزنة مؤقتًا، ولكن يتم تجاهل إدخالات ذاكرة التخزين المؤقت الموجودة.

CCACHE_UMASK
يؤدي هذا إلى تعيين umask لـ ccache وجميع العمليات الفرعية (مثل المترجم). هذا
يكون مفيدًا في الغالب عندما ترغب في مشاركة ذاكرة التخزين المؤقت الخاصة بك مع مستخدمين آخرين. لاحظ أن هذا
يؤثر أيضًا على أذونات الملفات المعينة على ملفات الكائنات التي تم إنشاؤها من ملفك
مصنفات.

CCACHE_HASHDIR
هذا يخبر ccache بتجزئة دليل العمل الحالي عند حساب التجزئة
الذي يستخدم للتمييز بين مجموعتين. وهذا يمنع حدوث مشكلة في التخزين
من دليل العمل الحالي في معلومات التصحيح لملف الكائن، والتي يمكن أن تؤدي
ccache لإعطاء ملف كائن مخبأ يحتوي على دليل العمل في التصحيح
تم تعيين المعلومات بشكل غير صحيح. يتم إيقاف تشغيل هذا الخيار افتراضيًا باعتباره الإعداد غير الصحيح لـ
نادرًا ما تسبب معلومات التصحيح هذه مشكلات. إذا واجهت مشاكل مع عدم استخدام gdb
الدليل الصحيح ثم قم بتمكين هذا الخيار.

CCACHE_UNIFY
إذا قمت بتعيين متغير البيئة CCACHE_UNIFY، فسوف يستخدم ccache C/C++
الموحد عند تجزئة مخرجات المعالج المسبق إذا لم يتم استخدام -g في الترجمة. ال
الموحد أبطأ من التجزئة العادية، لذا فإن تعيين متغير البيئة هذا يفقد ملف
قليل من السرعة، ولكن هذا يعني أن ccache يمكنه الاستفادة من عدم إعادة الترجمة
عندما تتكون التغييرات في الكود المصدري من إعادة التنسيق فقط. لاحظ أن استخدام
يغير CCACHE_UNIFY التجزئة، لذلك لا يمكن أن تكون التجميعات المخزنة مؤقتًا مع مجموعة CCACHE_UNIFY
يُستخدم عندما لا يتم تعيين CCACHE_UNIFY والعكس صحيح. سبب إيقاف تشغيل الموحد
الافتراضي هو أنه يمكن أن يعطي معلومات رقم السطر غير صحيحة في تحذير المترجم
الرسائل.

CCACHE_EXTENSION
عادةً ما يحاول ccache تحديد الامتداد المطلوب استخدامه تلقائيًا
ملفات ما قبل المعالج C المتوسطة بناءً على نوع الملف الذي يتم تجميعه.
لسوء الحظ، لا يعمل هذا في بعض الأحيان، على سبيل المثال عند استخدام مترجم ACC
على HP-UX. في أنظمة مثل هذه، يمكنك استخدام خيار CCACHE_EXTENSION للتجاوز
الافتراضي. في HP-UX، قم بتعيين متغير البيئة هذا على "i" إذا كنت تستخدم aCC
مترجم.

CCACHE_STRIPC
إذا قمت بتعيين متغير البيئة CCACHE_STRIPC، فسوف يقوم ccache بإزالة -c
الخيار عند استدعاء المعالج المسبق. هذا الخيار مخصص في المقام الأول للشمس
مترجم Workshop C++ لأنه بدون هذا الخيار يتم عرض تحذير غير مبرر:
CC: تحذير: يعيد "-E" تعريف المنتج من "كائن" إلى "مصدر (stdout)" عندما يكون -E و
-c يستخدم معا.

CCACHE_SWIG
عند استخدام SWIG كمترجم ولا يحتوي على "swig" في الاسم القابل للتنفيذ،
ثم يجب تعيين متغير البيئة CCACHE_SWIG حتى يتم تشغيل ccache
العمل بشكل صحيح مع SWIG. يوصى أيضًا باستخدام CCACHE_CPP2 لـ SWIG المستحق
ومع ذلك، بالنسبة لبعض مراوغات المعالج المسبق، يمكن غالبًا تخطي استخدام CCACHE_CPP2 --
تحقق من التعليمات البرمجية التي تم إنشاؤها مع مجموعة الخيارات هذه وبدونها. المشاكل المعروفة هي
استخدام توجيهات المعالج المسبق ضمن الكتل المضمنة % واستخدام '#pragma SWIG'.

مخبأ SIZE إدارة


بشكل افتراضي، يحتوي ccache على حد غيغابايت واحد لحجم ذاكرة التخزين المؤقت ولا يوجد حد أقصى لعدد الملفات
ملفات. يمكنك تعيين حد مختلف باستخدام خياري "ccache -M" و"ccache -F".
ضبط حجم وعدد حدود الملفات.

عند الوصول إلى هذه الحدود، ستعمل ccache على تقليل ذاكرة التخزين المؤقت إلى 20% أقل من الأرقام التي لديك
تم تحديده لتجنب إجراء عملية تنظيف ذاكرة التخزين المؤقت بشكل متكرر.

مخبأ COMPRESSION


افتراضيًا، في معظم الأنظمة الأساسية، يقوم ccache بضغط كافة الملفات التي يضعها في ذاكرة التخزين المؤقت باستخدامها
ضغط زليب. في حين أن هذا ينطوي على تباطؤ لا يذكر في الأداء، فإنه
يزيد بشكل كبير من عدد الملفات التي تناسب ذاكرة التخزين المؤقت. يمكنك إيقاف
الضغط على متغير البيئة CCACHE_NOCOMPRESS.

HOW IT WORKS


الفكرة الأساسية هي اكتشاف متى تقوم بتجميع نفس الكود تمامًا للمرة الثانية و
استخدم الإخراج المترجم مسبقًا. تكتشف أنه نفس الرمز من خلال تكوين علامة التجزئة
من:

o مخرجات المعالج المسبق من تشغيل المترجم باستخدام -E

o خيارات سطر الأوامر

o الحجم الحقيقي للمترجمين وزمن التعديل

o أي مخرجات stderr يتم إنشاؤها بواسطة المترجم

يتم تجزئتها باستخدام md4 (تجزئة قوية) ويتم إنشاء ملف ذاكرة تخزين مؤقت بناءً على تلك التجزئة
نتيجة. عند إجراء نفس التجميع للمرة الثانية، يكون ccache قادرًا على توفير ملف
إخراج المترجم الصحيح (بما في ذلك جميع التحذيرات وما إلى ذلك) من ذاكرة التخزين المؤقت.

تمت كتابة ccache بعناية لإنتاج نفس مخرجات المترجم دائمًا
سوف تحصل دون ذاكرة التخزين المؤقت. إذا اكتشفت في أي وقت مضى حالة يقوم فيها ccache بتغيير ملف
إخراج المترجم الخاص بك ثم اسمحوا لي أن أعرف.

باستخدام كاش مع ديستك


يعد distcc برنامجًا مفيدًا جدًا لتوزيع الترجمة عبر مجموعة من برامج التحويل البرمجي
الخوادم. غالبًا ما يكون من المفيد دمج distcc مع ccache، بحيث تتم عمليات التحويل البرمجي
يتم تسريعها بواسطة distcc، لكن ccache يتجنب عملية التحويل البرمجي تمامًا حيثما أمكن ذلك.

لاستخدام distcc مع ccache أوصي باستخدام خيار CCACHE_PREFIX. تحتاج فقط إلى تعيين
سيبدأ متغير البيئة CCACHE_PREFIX إلى 'distcc' وccache سطر الأوامر
تستخدم مع المترجم مع الأمر "distcc".

تشاطر A مخبأ


يمكن لمجموعة من المطورين زيادة معدل ضربات ذاكرة التخزين المؤقت من خلال مشاركة دليل ذاكرة التخزين المؤقت. ال
ومع ذلك، فإن الروابط الصلبة تسبب آثارًا جانبية غير مرغوب فيها، حيث أن جميع الروابط إلى ملف مخبأ تشترك في نفس المجلد
الطابع الزمني لتعديل الملف. يؤدي هذا إلى تشغيل التبعيات الخاطئة
أنظمة البناء القائمة على الطابع الزمني عندما يرتبط مستخدم آخر بملف موجود. عادة،
سيرى المستخدمون أنه تم إعادة ربط مكتباتهم وثنائياتهم دون سبب. للمشاركة أ
ذاكرة تخزين مؤقت بدون آثار جانبية، يجب استيفاء الشروط التالية:

س استخدم نفس الشيء CCACHE_DIR إعداد متغير البيئة

o قم بإلغاء تعيين CCACHE_HARDLINK متغيرات البيئة

o تأكد من قيام الجميع بتعيين متغير البيئة CCACHE_UMASK على 002، وهذا يضمن ذلك
أن الملفات المخزنة مؤقتًا يمكن للجميع في المجموعة الوصول إليها.

o تأكد من أن جميع المستخدمين لديهم إذن الكتابة في دليل ذاكرة التخزين المؤقت بأكمله (و
أنك تثق بجميع مستخدمي ذاكرة التخزين المؤقت المشتركة).

o تأكد من تعيين بت setgid على كافة الدلائل الموجودة في ذاكرة التخزين المؤقت. هذا يحكي
نظام الملفات ليرث ملكية المجموعة للأدلة الجديدة. الأمر "chmod
قد يكون g+s `find $CCACHE_DIR -type d`" مفيدًا لهذا الغرض.

س تعيين CCACHE_NOCOMPRESS لجميع المستخدمين، إذا كان هناك مستخدمين لديهم إصدارات ccache
التي لا تدعم الضغط.

التاريخ


تم استلهام ccache من البرنامج النصي لـ Compilrcache Shell الذي كتبه Erik Thiele وI
أود أن أشكره على العمل الممتاز. يرى
http://www.erikyyy.de/compilercache/ لنصوص إريك. ccache-swig هو منفذ لـ
ccache الأصلي مع إضافة الدعم للاستخدام مع SWIG.

لقد كتبت ccache لأنني أردت الحصول على سرعة أكبر قليلاً من ذاكرة التخزين المؤقت للمترجم وأنا
أراد إزالة بعض القيود المفروضة على إصدار Shell-Script.

اختلافات من عند ذاكرة التخزين المؤقت المترجم


أكبر الاختلافات بين النص البرمجي لـ Erik و ccache هي:

o تتم كتابة ccache بلغة C، مما يجعلها أسرع قليلاً (استدعاء خارجي
البرامج هي في الغالب ما أبطأ البرامج النصية).

يمكن لـ ccache العثور تلقائيًا على المترجم الحقيقي

o يحتفظ ccache بإحصائيات الزيارات/الإخفاقات

يمكن لـ ccache القيام بإدارة ذاكرة التخزين المؤقت تلقائيًا

يمكن لـ ccache تخزين مخرجات المترجم التي تتضمن تحذيرات. في كثير من الحالات يعطي هذا
ccache معدل ضربات ذاكرة التخزين المؤقت أعلى بكثير.

يمكن لـ ccache التعامل مع نطاق أوسع بكثير من خيارات المترجم

o يتجنب ccache الاتصال المزدوج بـ cpp عند فقدان ذاكرة التخزين المؤقت

CREDITS


شكرًا للأشخاص التاليين لمساهماتهم في ccache

o Erik Thiele للنص الأصلي لـ Compilrcache

o لوتشيانو روشا لفكرة تجميع مخرجات المعالج المسبق لتجنب وجود cpp ثانٍ
pass

o بول راسل للعديد من الاقتراحات وحزمة دبيان

استخدم ccache-swig2.0 عبر الإنترنت باستخدام خدمات onworks.net


خوادم ومحطات عمل مجانية

قم بتنزيل تطبيقات Windows و Linux

أوامر لينكس

Ad