أداء ADF
أعمل على صيانة قوات الدفاع الذاتي الجوية منذ حوالي 6 سنوات حتى الآن. اشتمل معظم عملي على مدار السنوات القليلة الماضية على إصلاح الأخطاء ، وكتابة الاختبارات الآلية لاكتشاف الانحدار ، وضمان الصحة العامة لأنظمة التشغيل المختلفة. إن الاحتفاظ بأداة مكتوبة بلغة Bash ليس بالأمر السهل. بالنسبة لمعظم الأشياء ، هناك حالات متطورة ومشكلات توافق أكثر بكثير من المسارات السعيدة. يجب حظر بعض الأوامر من قاعدة التعليمات البرمجية لضمان التوافق بين أنظمة التشغيل. يعد وضع Bash المتشدد مفيدًا أيضًا ، ولكنه يقدم مشكلات أخرى يجب معالجتها. p>
كل هذا لأقول إنه لم يكن لدي الكثير من الوقت للتراجع وتقييم الجوانب الأخرى لـ asdf. صعد مشرفو الصيانة الآخرون وساعدوا في التوثيق وتجربة المستخدم ، لكن الأداء تراجع. على مدار الشهرين الماضيين ، لاحظت أن بعض أوامر asdf التي أستخدمها غالبًا ما تبدو أبطأ. العديد من أوامر asdf بطيئة جدًا ، ولكن مع طريقة تصميم asdf ، نادرًا ما تكون هذه مشكلة. لم يكن تيار asdf سريعًا بما يكفي لاستخدامه كجزء من موجه الأوامر الذي يعرض الإصدارات الحالية ، ولكنه كان تحسينًا غير حاسم لتجربة المستخدم. لكن يبدو أن الأمور تزداد سوءًا وأردت تقييم الأداء. في هذه المقالة ، سأقارن عدة أوامر asdf وأرى كيف تغير أدائها بمرور الوقت. p>
أردت أن أرى كيف تغير أداء كل أمر بمرور الوقت منذ إصدار asdf لأول مرة. يمكن القيام بذلك عن طريق التحقق من كل علامة إصدار asdf باستخدام Git ، ومقارنة كل أمر في تلك العلامة ، ثم كتابة النتائج على القرص ، قبل الانتقال إلى العلامة التالية. بمجرد كتابة بيانات قياس الأداء على القرص ، يمكن استخدامها لإنشاء رسوم بيانية لتغييرات الأداء بمرور الوقت. لا توجد أداة تقوم بكل هذا ، لذلك اضطررت إلى كتابة نص باش. p>
لقياس الأداء ، أحب تقنية hyperfin ، وهي تصدر النتائج إلى CSV و JSON ، لذلك كانت مثالية لذلك. كل ما كان علي فعله هو كتابة برنامج نصي Bash يربط git لكل مرجع و git checkout معًا ، ثم يقوم بتشغيل فائق الدقة لكل أمر في كل إصدار. تم إرفاق نص shell الناتج. يعد جمع البيانات باستخدام هذا النص البرمجي لقياس الأداء أمرًا بسيطًا. p> أي أوامر فرعية للمقارنة
بعض الأوامر مهمة ، وغالبًا ما تُستخدم ، ويُقصد بها أن تكون سريعة. هذه الأوامر هي: p>
asdf الحالي - طباعة الإصدارات المحددة للدليل الحالي p>
asdf الذي - يعرض المسار الفعلي القابل للتنفيذ الذي يحل الرقاقة إليه p>
asdf حيث - يعرض دليل تثبيت الأداة p>
asdf exec - ينفذ الرقاقة (تقريبًا مثل التنفيذ المباشر للرقاقة) p>
قارنت كل هذه الأوامر p>
يجب أن تكون بعض الأوامر بطيئة نسبيًا وأن تستغرق ثانية أو ثانيتين على الأقل حتى تكتمل. هذه الأوامر هي: p>
تثبيت asdf - تثبيت إصدار من الأداة p>
إضافة ملحق asdf - تثبيت البرنامج المساعد p>
asdf reshim - يجدد جميع الحشوات p>
من بين هذه الأوامر الثلاثة ، تلقيت شكاوى فقط حول أداء asdf reshim. إنها إلى حد بعيد الأبطأ من بين جميع أوامر asdf ، لذا قارنتها. غالبًا ما يكون تثبيت asdf بطيئًا ، ولكن أداءه مرتبط بنص تثبيت البرنامج المساعد ولا يتحكم فيه asdf ، لذلك تخطيته. p> تحليل مقارن
اخترت تشغيل معياري على الكمبيوتر المحمول الذي يعمل بنظام التشغيل Ubuntu بالإحصائيات التالية. p> $ lshw - قصير وصف فئة الجهاز مسار H / W =================================================== = == نظام 20DF0040US (LENOVO_MT_20DF_BU_Think_FM_ThinkPad E550) / 0 حافلة 20DF0040US / 0/3 32 كيلوبايت L1 مخبأ / 0/4 معالج Intel (R) Core (TM) i7-5500U ...
أعمل على صيانة قوات الدفاع الذاتي الجوية منذ حوالي 6 سنوات حتى الآن. اشتمل معظم عملي على مدار السنوات القليلة الماضية على إصلاح الأخطاء ، وكتابة الاختبارات الآلية لاكتشاف الانحدار ، وضمان الصحة العامة لأنظمة التشغيل المختلفة. إن الاحتفاظ بأداة مكتوبة بلغة Bash ليس بالأمر السهل. بالنسبة لمعظم الأشياء ، هناك حالات متطورة ومشكلات توافق أكثر بكثير من المسارات السعيدة. يجب حظر بعض الأوامر من قاعدة التعليمات البرمجية لضمان التوافق بين أنظمة التشغيل. يعد وضع Bash المتشدد مفيدًا أيضًا ، ولكنه يقدم مشكلات أخرى يجب معالجتها. p>
كل هذا لأقول إنه لم يكن لدي الكثير من الوقت للتراجع وتقييم الجوانب الأخرى لـ asdf. صعد مشرفو الصيانة الآخرون وساعدوا في التوثيق وتجربة المستخدم ، لكن الأداء تراجع. على مدار الشهرين الماضيين ، لاحظت أن بعض أوامر asdf التي أستخدمها غالبًا ما تبدو أبطأ. العديد من أوامر asdf بطيئة جدًا ، ولكن مع طريقة تصميم asdf ، نادرًا ما تكون هذه مشكلة. لم يكن تيار asdf سريعًا بما يكفي لاستخدامه كجزء من موجه الأوامر الذي يعرض الإصدارات الحالية ، ولكنه كان تحسينًا غير حاسم لتجربة المستخدم. لكن يبدو أن الأمور تزداد سوءًا وأردت تقييم الأداء. في هذه المقالة ، سأقارن عدة أوامر asdf وأرى كيف تغير أدائها بمرور الوقت. p>
أردت أن أرى كيف تغير أداء كل أمر بمرور الوقت منذ إصدار asdf لأول مرة. يمكن القيام بذلك عن طريق التحقق من كل علامة إصدار asdf باستخدام Git ، ومقارنة كل أمر في تلك العلامة ، ثم كتابة النتائج على القرص ، قبل الانتقال إلى العلامة التالية. بمجرد كتابة بيانات قياس الأداء على القرص ، يمكن استخدامها لإنشاء رسوم بيانية لتغييرات الأداء بمرور الوقت. لا توجد أداة تقوم بكل هذا ، لذلك اضطررت إلى كتابة نص باش. p>
لقياس الأداء ، أحب تقنية hyperfin ، وهي تصدر النتائج إلى CSV و JSON ، لذلك كانت مثالية لذلك. كل ما كان علي فعله هو كتابة برنامج نصي Bash يربط git لكل مرجع و git checkout معًا ، ثم يقوم بتشغيل فائق الدقة لكل أمر في كل إصدار. تم إرفاق نص shell الناتج. يعد جمع البيانات باستخدام هذا النص البرمجي لقياس الأداء أمرًا بسيطًا. p> أي أوامر فرعية للمقارنة
بعض الأوامر مهمة ، وغالبًا ما تُستخدم ، ويُقصد بها أن تكون سريعة. هذه الأوامر هي: p>
asdf الحالي - طباعة الإصدارات المحددة للدليل الحالي p>
asdf الذي - يعرض المسار الفعلي القابل للتنفيذ الذي يحل الرقاقة إليه p>
asdf حيث - يعرض دليل تثبيت الأداة p>
asdf exec - ينفذ الرقاقة (تقريبًا مثل التنفيذ المباشر للرقاقة) p>
قارنت كل هذه الأوامر p>
يجب أن تكون بعض الأوامر بطيئة نسبيًا وأن تستغرق ثانية أو ثانيتين على الأقل حتى تكتمل. هذه الأوامر هي: p>
تثبيت asdf - تثبيت إصدار من الأداة p>
إضافة ملحق asdf - تثبيت البرنامج المساعد p>
asdf reshim - يجدد جميع الحشوات p>
من بين هذه الأوامر الثلاثة ، تلقيت شكاوى فقط حول أداء asdf reshim. إنها إلى حد بعيد الأبطأ من بين جميع أوامر asdf ، لذا قارنتها. غالبًا ما يكون تثبيت asdf بطيئًا ، ولكن أداءه مرتبط بنص تثبيت البرنامج المساعد ولا يتحكم فيه asdf ، لذلك تخطيته. p> تحليل مقارن
اخترت تشغيل معياري على الكمبيوتر المحمول الذي يعمل بنظام التشغيل Ubuntu بالإحصائيات التالية. p> $ lshw - قصير وصف فئة الجهاز مسار H / W =================================================== = == نظام 20DF0040US (LENOVO_MT_20DF_BU_Think_FM_ThinkPad E550) / 0 حافلة 20DF0040US / 0/3 32 كيلوبايت L1 مخبأ / 0/4 معالج Intel (R) Core (TM) i7-5500U ...
What's Your Reaction?
![like](https://vidianews.com/assets/img/reactions/like.png)
![dislike](https://vidianews.com/assets/img/reactions/dislike.png)
![love](https://vidianews.com/assets/img/reactions/love.png)
![funny](https://vidianews.com/assets/img/reactions/funny.png)
![angry](https://vidianews.com/assets/img/reactions/angry.png)
![sad](https://vidianews.com/assets/img/reactions/sad.png)
![wow](https://vidianews.com/assets/img/reactions/wow.png)