جهات الاتصال

منهجية لتقييم القدرات الإنتاجية للمؤسسة. المشكلات الحديثة في العلم والتعليم تحديد الاختناقات

دعونا نحسب الحمل المخطط للمعدات ونحدد الاختناقات. سنقوم ببناء جدول إنتاج وتحليل برنامج الإنتاج لجدواه.

تحديد الاختناقات في برنامج الإنتاج. حساب وموازنة تحميل المعدات عند التخطيط للإنتاج.

يسأل أي مدير إنتاج بانتظام السؤال "هل يستطيع جعل جميع الطلبات المخططة في الوقت المحدد... هل الطاقة الإنتاجية للمشروع كافية لذلك؟ ما مدى كثافة العمل المتوقع في فترة التخطيط هذه؟ "

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

لذلك ، مثل البيانات الأولية في نظام TCS ، تم بالفعل إنشاء أوامر الإنتاج للمنتجات النهائية - خزانات التجميع في تكوينات وكميات مختلفة ، وأمر لإنتاج مكونات موحدة من إنتاجنا الخاص للحفاظ على معيار المخزون.

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

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

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

لنجعل مواصفات الإنتاج هذه قابلة للتطبيق ، ونضعها في علامة التبويب المناسبة خطة إنتاج المصطلحات... يسرد العناصر مع الكمية التي سيتم إنتاجها والتوقيت.

لذا ، فإن أقرب تاريخ لإطلاق الدُفعة هو 18 فبراير ، وآخر تاريخ للإصدار هو 23 مارس 2010.

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

أيضًا ، يحتفظ نظام TCS بمعلومات حول مجمع الماكينات للمؤسسة ، أي الكمية الفعلية لكل طراز من المعدات ومدى توفرها في الأقسام. على سبيل المثال ، لدينا مكبس Amada ومكبس FINN-POWER في القسم الأول من الورشة السابعة ، ومعدات لحام في القسم الثاني ، وجداول للتجميع والتحكم في القسم الثالث.

لتقييم جدوى هذه الخطة ، نستخدم وحدة TCS "". سنحدد تاريخي البدء والانتهاء للفترة التي من المفترض أن يتم تنفيذ العمل المخطط لها ، وهي 18 فبراير و 23 مارس 2010. لنقم بالحساب.

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

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

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

لتحديد الاختناقات المحتملة بسرعة في خطة الإنتاج لدينا ، ما عليك سوى الدخول عتبة التحميل... دعونا نقدم 70٪ ، بافتراض أن المعدات ، التي يتجاوز حمولتها في الفترة المخطط لها 70-80٪ ، تشكل ما يسمى بمجموعة المخاطر. دعنا نخفي الخطوط بحمل أقل. في مثالنا ، سيتم تحميل مكبس البرج الهيدروليكي FINN-POWER فقط بأكثر من 70٪ ، أي بالنسبة لخطة آذار (مارس) ، فهو عنق الزجاجة.

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

دعنا ندرس المعدات التي يجب أن توليها اهتمامًا خاصًا أيضًا. نقوم بإدخال قيمة حدية قدرها 50٪ ونقوم ببساطة بتلوين هذه الخطوط باللون المحدد. تمت إضافة مكبح ضغط Amada إلى FINN-POWER ، حمولتها المحسوبة هي 57٪. جميع ورش العمل والمعدات الأخرى فيها ليست محملة بشكل كبير ، وعلى الأرجح لن تتطلب اهتمامًا متزايدًا من المخطط.

وبالتالي ، باستخدام وحدة "" ، يمكن استخلاص الاستنتاجات التالية:

سواء كان ذلك ممكنا أم لا ، من حيث المبدأ ، خطتنا. سيكون معيار هذا التقييم هو زيادة الحمل بنسبة 100٪ لأي نموذج. إذا كان الحمل في مكان ما يزيد عن 100 ٪ ، فلن تساعد أي طرق حديثة لتحسين جدول الإنتاج. في هذه الحالة ، من الضروري زيادة تمويل تشغيل المعدات ، أي إما زيادة الفترة الزمنية ، أو تعيين موظفين إضافيين سيعملون في الوردية الثانية ، أو تشغيل قطعة ثانية من المعدات في مكان قريب.
لا تحتوي خطة المثال الخاصة بنا على موضع واحد تتجاوز فيه قيمة التحميل 100٪. هذا يعني ، من الناحية النظرية على الأقل ، أنه يمكن تنفيذ قدر معين من العمل في الوقت المحدد باستخدام المعدات الموجودة. سنقوم أو لن ننفذ الخطة في واقع إنتاجنا. يسمح لنا هذا التقييم أيضًا بالاستنتاج حول جدوى الخطة المقدمة ، ولكن ليس من الناحية النظرية ، مثل الأولى ، ولكن أقرب إلى الحياة والخصائص الفردية لكل إنتاج. على سبيل المثال ، من الواضح أن حمل المعدات بنسبة 99 ٪ سيسمح بتنفيذ الخطة فقط في ظل ظروف التشغيل دون حدوث أعطال وتأخيرات وتعطل ، عندما تتكرر جميع الأنظمة وتعمل الروبوتات في المؤسسة. في الواقع ، تحدث حالات الفشل والتأخير بانتظام لأسباب مختلفة. إما أنه لم يتم إحضار المواد في الوقت المحدد ، ولم يتم إعداد الماكينة ، ومرض العامل ، ثم وقع حادث في شبكة الكهرباء ، وما إلى ذلك. إلخ. لذلك ، في كل مؤسسة ، حتى بالنسبة لورش العمل والأقسام المختلفة لهذا المشروع أو لأنواع مختلفة من العمل ، هذا المعيار له معنى مختلف. على سبيل المثال ، يعتبر الحمل 80٪ حرجًا لمنطقة ما ، و 60٪ لمنطقة أخرى.
أولئك. لكل نوع من الوظائف أو المجال ، يمكن إجراء مقارنة مقابل قيمة العتبة الفردية المقابلة التي يعرفها المخططون المتمرسون عادةً من الممارسة. ما إذا كان هيكل مجمع الماكينات الموجود في المؤسسة يتوافق مع برنامج الإنتاج. سيكون هذا الاستنتاج مفيدًا بشكل خاص للمؤسسات التي لديها برنامج إنتاج مستقر ، أي خطة إنتاج يمكن بناؤها مسبقًا ولا تخضع لتغييرات قوية من شهر لآخر.
في مثالنا ، لا يتم تحميل معظم نماذج المعدات حتى بنسبة 40٪ ، بينما يصل حمل مكبس FINN-POWER إلى قيمة حرجة. إذا حدثت حالة مماثلة في الإنتاج الضخم ، فلكي نزيد حجم الإنتاج ، سيتعين علينا أولاً وقبل كل شيء شراء معدات الشراء.

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

الوظيفة الموضوعية للإدارة التنظيمية في هذه الحالات لها شكل مشابه لـ (9.36):

الخامس=  دقيقة (9.39) ،

أين هو وقت الخمول لجهاز الخدمة (أو قناة ، أو مرحلة منفصلة) مع اختيار مناسب من المؤشرات) قبل الدخول إلى الخدمة أنا- الشرط من الدفعة العامة في نالمتطلبات.

لذلك ، بالنسبة للكائنات أحادية الطور أحادية القناة ، فإن المبلغ الإجمالي لوقت تعطل جهاز الخدمة لمجموعة كاملة من نيتم تحديد المتطلبات من خلال التعبير (9.8) ، وبالتالي ، فإن الوظيفة المستهدفة للإدارة التنظيمية ، بما في ذلك المؤتمتة ، في هذه الحالة لها الشكل:

الخامس=[1sign (+ )] min (9.40).

يمكن الحصول على تعبيرات مماثلة للكائنات متعددة الأطوار و / أو متعددة القنوات مثل أنظمة قائمة الانتظار على أساس (9.16) أو (9.26) أو (9.34).

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

3. تحديد وإزالة الاختناقات

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

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

علامة على وجود "اختناقات" في المخطط التكنولوجي للكائن ، والتي يتم تفسيرها على أنها QS ، هي تشكيل قائمة انتظار أو تأخير في الوحدات أو المراحل السابقة أمام الجهاز (أو المرحلة) ، والتي تعتبر " عنق الزجاجة "، وعلى العكس من ذلك ، توقف الجهاز (أو المراحل) التي تليها مباشرة.

دعونا نعرض الموقف مع وجود عنق الزجاجة في كائن في شكل رسمي ، باستخدام التقنية التي تمت مناقشتها أعلاه في هذا الفصل.

لنفترض ، على سبيل المثال ، أن كائنًا كجهاز QS أحادي القناة يتكون من عدة أجهزة خدمة أحادية الطور أحادية القناة تقع بالتسلسل ، يتوافق مخطط التدفق الخاص بها مع الشكل 9.5.

الشكل 9.5. مخطط QS أحادي القناة متعدد الأجهزة.

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

في السابق ( ك1) الجهاز ، الطلب الموجود هناك انتهى بالفعل من الخدمة وينتظر الإصدار كجهاز ال ربما عند مدخل ( ك1) يحتوي الجهاز بالفعل على طلب آخر في انتظار الخدمة. وهكذا ، فإن الوضع على ( ك1) ينعكس الجهاز على خاصية الوقت (9.4):

= +  لـ +> لـ (9.41) ؛

التالي، ( ك+1) الجهاز خاملاً ، لذلك ، في الحالة العامة ، بناءً على (9.8) ، سيكون لدينا:

=  لـ> + لـ [ ك+1, ...,ن] (9.42).

أما مباشرة ك- الجهاز الثاني للمخطط التكنولوجي ، وهو "عنق الزجاجة" ، ثم يمكن أن تكون العلاقة (9.41) و (9.42) صحيحة بالنسبة له ، اعتمادًا على ما يحد على وجه التحديد من تشغيله أو بداية خدمة الطلب (أي المدخلات الجهاز ؛ ربما المراحل الأولية للخدمة ، إذا كانت متعددة المراحل ، وما إلى ذلك) ، أو حالتها (العناصر الداخلية ، والتوصيلات بينها ، والمراحل النهائية ، وما إلى ذلك)

الوظيفة الموضوعية للإدارة التنظيمية الخامستهدف إلى القضاء على "عنق الزجاجة" وبالتالي زيادة إنتاجية المخطط التكنولوجي بأكمله ، لها الشكل العام التالي:

الخامس=(9.43).

وبالمثل ، يمكن الحصول على التعبيرات لهياكل الكائنات الأخرى وتخصصات الخدمة الأخرى. بعد تنفيذ نموذج محاكاة للكائن قيد الدراسة على جهاز كمبيوتر فيما يتعلق بشروط تشغيله المختلفة والحصول بشكل كمي على قيم المعيارين (9.41) و (9.42) لكل مكون و / أو مخطط تكنولوجي ، التي يمكن القيام بها دائمًا ، فمن السهل إثبات من هذه النتائج ما إذا كان لها مكان في "عنق الزجاجة" للمخطط التكنولوجي المحدد وما هو المكون المحدد للكائن وفي أي ظروف محددة. بعد ذلك ، يمكنك اقتراح مجموعة من التدابير التنظيمية والفنية للتخلص من "عنق الزجاجة" (موازاة متطلبات الخدمة في هذا المكان من مخطط تدفق الإنتاج ، والتقنيات المتسارعة ، أي مع خدمة أسرع بشكل ملحوظ ، وبالتالي ، متوسط ​​أقل ، إلخ) ، وكذلك تحقق من فعاليتها على نفس نموذج محاكاة الكائن.

5.3 تصنيف الاختناقات

الأماكن الضيقة والواسعة هي أنواع من الاختلالات المرتبطة بحقيقة أن سعة تدفقها أقل أو أكثر بالنسبة إلى القدرة المحسوبة.

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

السبب وراء قرارات التصميم الخاطئة ، التي تؤدي إلى ظهور التفاوتات (المناطق الضيقة والواسعة على حد سواء) ، هي قاعدة نظرية ومنهجية ضعيفة التطور لتنظيم الإنتاج.

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

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

تحليل تنظيم العمل على مثال شركة "Orenburg radiator" ذات المسؤولية المحدودة

تقسيم التعاون لنظام العمل جزء أساسي من تنظيم العمل هو تنظيم أماكن العمل. مكان العمل هو الرابط الأساسي في الإنتاج ، منطقة نشاط العمل لعامل أو مجموعة من العمال (إذا كان مكان العمل جماعيًا) ...

تحليل حالة تنظيم العمل وتصميم عمليات العمل الفردية

أنشطة رائد الأعمال الفردي Emelyanova A.S.

1. الأنشطة الخارجية للمؤسسة والعمل مع العملاء. على الرغم من أن رجل الأعمال معروف جيدًا في المناطق القريبة من Magnitogorsk ، إلا أنه يتجاهل تمامًا الإعلان عن مؤسسته. وبسبب هذا ، في المناطق النائية وحتى المجاورة ...

منهجية لتحليل شامل للأنشطة الاقتصادية

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

تنظيم العمل على أساس دراسة العمليات العمالية

تتمثل المهمة الرئيسية لتنظيم مكان العمل في خلق ظروف عمل تكون فيها حركة العمال أقل إجهادًا وأكثر إنتاجية. مكان العمل هو مجال تطبيق العمالة ...

تنظيم العمل في مؤسسة المطاعم العامة "ثري إلمز"

· تطوير تقنيات وأساليب عمل عقلانية · ترشيد العمالة · ضمان ظروف عمل صحية وآمنة · تنظيم المكافآت والحوافز المادية للعمالة · تعزيز انضباط العمل · أربعة من المسماة ...

تخطيط المشاريع

لحساب الطاقة الإنتاجية وتحديد الاختناقات الإنتاجية ، من الضروري وضع توازن للطاقة الإنتاجية للمؤسسة (الجدول 2) ...

تخطيط وتنظيم إنتاج مشروبات الحليب المخمر

الاختناقات عبارة عن ورش عمل وأقسام ووحدات وتركيبات ومجموعات من المعدات ، والإنتاج الرئيسي والمساعد ، والتي لا يتطابق إنتاجها مع قدرة الوصلة الرائدة ، التي تم تركيب الطاقة الإنتاجية لها ...

مفهوم هيكل المؤسسة وخصائصها

· مكان عمل بسيط (معدة واحدة وعامل واحد) ؛ مكان عمل متعدد المحطات - عامل واحد يخدم عدة أنواع من المعدات (كقاعدة عامة ...

حساب المؤشرات الفنية والاقتصادية للموقع حسب برنامج معين

مكان العمل هو رابط غير قابل للتجزئة تنظيميًا (في ظروف معينة) لعملية الإنتاج ، يخدمه عامل واحد أو أكثر ...

حساب التكلفة التكنولوجية لإنتاج جزء

أقبل عدد الوظائف يساوي 3 ...

حساب المؤشرات الفنية والاقتصادية لقسم إصلاح ATP لاستعادة بطانة الأسطوانة لمحرك ZMZ-53

يتم حساب كمية وتكلفة المعدات المطلوبة لتنفيذ برنامج إصلاح الأجزاء بشكل منفصل لكل عملية ، بناءً على عدد قطع المعدات. لحساب عدد المشاركات ...

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

تحسين تنظيم وصيانة أماكن العمل

من الأهمية بمكان تخطيط مكان العمل ، مما يعني التنسيب المكاني المناسب في الطائرات الأفقية والرأسية لوسائل الإنتاج المترابطة وظيفيًا (المعدات ، الأدوات ...

الإحصاء هو أن 20٪ من الكود يتم تنفيذه 80٪ من الوقت. دقة لها
بالكاد يتوافق تمامًا مع الوضع الحقيقي للأمور ، ولكن المعنى العام
مثير للاهتمام: اتضح أن تحسين التطبيق بأكمله هو مهنة
جاكرين للجميل والغباء ، والاستغلال الأمثل لهؤلاء فقط
20٪ من التطبيقات تستغرق وقتًا أطول حتى تكتمل. علاوة على ذلك ، فإن العثور على 20٪ ليس كذلك
وصعب.

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

يمكن إجراء التنميط الأبسط بأيدي عارية (وسأعرض أدناه
كيفية القيام بذلك) ، ومع ذلك ، فمن الأفضل الاعتماد على المجتمع الذي يمثله
لقد أنشأنا بالفعل جميع الأدوات اللازمة. الأداة الأولى والأكثر شعبية
اسمه GNU Profiler (أو gprof). لقد تم استخدامه لعدة قرون
تنميط الكود الذي تم إنشاؤه بواسطة مترجم GCC. والثاني هو تغطية جنو
أداة الاختبار (gcov) ، وهي أداة لتحليل أداء أكثر تفصيلاً.
والثالث عبارة عن مجموعة من أدوات التصحيح والتنميط تحت الاسم العام Google
أدوات الأداء (يشار إليها اختصارًا باسم GPT). حسنًا ، الرابع هو Valgrind ، وهو على الأقل
وهو مصمم للبحث عن أخطاء في العمل بالذاكرة ، ولكنه يحتوي في ترسانته
عدد من المرافق لتحليل أداء البرنامج.

لنبدأ ، كما هو متوقع ، بالكلاسيكيات.

ملف التعريف جنو

ملف التعريف جنو(gprof) هو أحد أقدم برامج التعريف المتاحة لـ
أنظمة التشغيل مثل UNIX. إنه جزء من حزمة دول مجلس التعاون الخليجي ، لذا يمكنه ذلك
تستخدم لتنميط البرامج المكتوبة بأي دعم
لغتهم (وهذا ليس فقط C / C ++ ، ولكن أيضًا Objective-C و Ada و Java).

Gprof في حد ذاته ليس أداة تشكيل ، ولكنه يسمح فقط
عرض إحصائيات الملف الشخصي التي تراكمت بواسطة التطبيق أثناء
العمل (لا داعي للقول ، لا يوجد تطبيق يقوم بذلك بشكل افتراضي ،
ولكن يمكنك البدء إذا قمت ببناء البرنامج باستخدام الوسيطة "-pg").

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

نحصل على مصادر أرشيفي ونفكها:

$ wget www.gzip.org/gzip-1.3.3.tar.gz
$ tar -xzf gzip-1.3.3.tar.gz
$ cd gzip-1.3.3

قم بتثبيت الأدوات المطلوبة للبناء (في أوبونتو يتم ذلك
من خلال تثبيت الحزمة meta الخاصة بالبناء الأساسي):

sudo apt-get install build-ضروري

قم بتشغيل مُكوِّن الإنشاء عن طريق تمرير الوسيطة في متغير البيئة CFLAGS
"-pg":

CFLAGS $ = "- pg". / تكوين

تجميع البرنامج:

لدينا الآن ملف ثنائي بتنسيق gzip قادر على الاحتفاظ بالإحصائيات الخاصة به
إعدام. سيرافق كل إطلاق له إنشاء ملف gmon.out:


$ ls -l gmon.out
-rw-r - r-- 1 j1m j1m 24406 2010-11-19 14:47 gmon.out

هذا الملف غير مخصص للقراءة البشرية ، ولكن يمكن استخدامه
إنشاء تقرير تنفيذ مفصل:

$ gprof ./gzip gmon.out> gzip-profile.txt

يظهر الجزء الأكثر أهمية من الملف الناتج في لقطة الشاشة.

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

دعنا نحاول تحليل التقرير. الأولى في القائمة هي وظيفة الانكماش ،
التي تم استدعاؤها مرة واحدة فقط ، ولكنها "استحوذت" على 29٪ من وقت التنفيذ بالكامل
البرامج. هذا هو تنفيذ خوارزمية الضغط ، وإذا واجهتنا
مهمة تحسين gzip ، يجب أن نبدأ به. 22٪ من الوقت
استغرق الأمر تنفيذ أطول دالة تطابق ، ولكن ، على عكس انكماش ، كانت كذلك
تم استدعاء 450613081 مرة ، لذلك استغرق كل استدعاء وظيفة منفصلة
مقدار ضئيل من الوقت. هذا هو المرشح الثاني للتحسين. وظيفة
استغرق fill_window 13٪ من الوقت وكان يطلق عليه "فقط" 22 180 مرة.
ربما ، في هذه الحالة ، يمكن أن يعطي التحسين نتائج.

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

تحتوي الأعمدة على المعلومات التالية (من اليسار إلى اليمين): index (index، it is
فقط في السطر الأساسي ، وفي الواقع ، لا يعني أي شيء) ؛ النسبة المئوية من الوقت ،
التي تستغرق لتنفيذ الوظيفة (٪ الوقت) ؛ مقدار الوقت الذي يقضيه
لتنفيذه في ثوان (النفس) ؛ مقدار الوقت الذي يقضيه
تنفيذ الوظيفة وجميع الوظائف التي تستدعيها (الأطفال) ؛ عدد المكالمات
الوظيفة (تسمى) واسمها (الاسم).

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

أداة اختبار تغطية جنو

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

لا يمكن لـ Gcov الاعتماد على الإحصائيات التي تم إنشاؤها بواسطة التطبيق عند البناء باستخدام
بعلامة "-pg" ، ويتطلب إعادة البناء باستخدام علامتي "-fprofile-arcs" و "-ftest-Cover":

CFLAGS $ = "- fprofile-arcs -ftest-Cover"
./configure && make

$ ./gzip ~ / ubuntu-10.10-desktop-i386.iso

سيتم إنشاء رسم بياني للمكالمات لكل ملف شفرة مصدر بناءً على
والتي يمكنك إنشاء تعليق توضيحي يمكن قراءته من قبل الإنسان
مصدر:

$ gcov انكماش
ملف "deflate.c"
الخطوط المنفذة: 76.98٪ من 139
deflate.c: إنشاء "deflate.c.gcov"

يحتوي الملف الناتج على ثلاثة أعمدة: عدد عمليات التنفيذ
السطر ورقم السطر والخط نفسه. علاوة على ذلك ، بالنسبة للأسطر التي لا تحتوي على رمز ، في
سيحتوي العمود الأول على علامة الطرح ، وللأسطر التي لم تكتمل أبدًا -
تسلسل الأدوات الحادة: #####.

أدوات أداء Google

أدوات أداء Google(اختصار GPT) تم تطويره بواسطة موظفي Google ،
مصمم للعثور على تسرب الذاكرة واختناقات التطبيقات. مثل gprof ،
GPT ليس خارجيًا للتطبيق قيد الاختبار ، و
يجبره على الاحتفاظ بإحصائيات عن أدائه بشكل مستقل. لكن
لهذا ، لا يتم حقن الكود في مرحلة بناء التطبيق ، ولكن
المكتبات التي يمكن ربطها بالتطبيق في وقت الإنشاء ، أو
متصل عند بدء التشغيل.

إجمالاً ، يتوفر للمطورين مكتبتان إضافيتان: tcmalloc (والذي ،
وفقًا لمؤلفي GPT ، فهو أسرع تطبيق في العالم
وظائف malloc ، كما يسمح لك بتحليل كيفية الذاكرة
المستهلكة والمخصصة والمتدفقة) وملف تعريف لإنشاء تقرير التنفيذ
برامج مثل gprof. كما تم تضمين الأداة المساعدة pprof ،
مصممة لتحليل وتصور البيانات المتراكمة.

شفرة المصدر ، بالإضافة إلى حزم rpm و deb لكل هذه المجموعة متوفرة في
الصفحة الرسمية (code.google.com/p/google-perftools) ، لكنني لن أفعل
ينصح بالعناء بالتثبيت اليدوي ، حيث أن المجموعة متوفرة في
مستودعات Fedora و Ubuntu القياسية ، ويمكن تثبيتها بواحد بسيط
بالأمر:

sudo apt-get install google-perftools \ libgoogle-perftools0
libgoogle-perftools-dev

LD_PRELOAD $ = / usr / lib / libprofiler.so.0.0.0 \
CPUPROFILE = gzip-profile.log ./gzip \
/home/j1m/ubuntu-10.10-desktop-i386.iso

ومع ذلك ، لا ينصح موظفو Google أنفسهم باستخدام هذه الطريقة (من الواضح أن ذلك يرجع إلى مشاكل
مع البرامج المكتوبة بلغة C ++) ، مع التوصية بربط المكتبة أثناء
الجمعية العامة. حسنًا ، دعنا لا نجادل.

للتجارب ، دعنا نأخذ نفس gzip ونعيد بنائه ،
ربط الثنائي بالمكتبة المطلوبة:

$ cd ~ / gzip-1.3.3
$ اجعلها نظيفة
$ ./ تكوين
$ LDFLAGS = "- lprofiler" ./configure && make

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

CPUPROFILE $ = gzip-cpu-profile.log ./gzip \
~ / ubuntu-10.10-desktop-i386.iso
الملف الشخصي: المقاطعات / عمليات الإخلاء / بايت = 4696/946/91976

كما هو الحال مع gprof ، يكون التقرير الناتج في شكل ثنائي ويمكن أن يكون
قراءة فقط باستخدام أداة خاصة. في GPT ، يتم لعب دورها بواسطة
perl script pprof (في Ubuntu ، لتجنب الالتباس مع أداة أخرى بنفس الاسم
تمت إعادة تسميته إلى google-pprof) والتي يمكنها إنشاء أكثر من مجرد جداول و
المصادر المشروحة مثل gcov ، ولكن أيضًا الرسوم البيانية للمكالمات المرئية. المجموع
هناك 11 نوعًا من مخرجات هذه الأداة ، يتم تعيين كل منها
وسيطة سطر الأوامر المقابلة:

  1. نص (- نص) - جدول مشابه لإخراج gprof ؛
  2. Callgrind (--callgrind) - إخراج بتنسيق متوافق مع الأداة المساعدة kcachegrind (من حزمة valgrind) ؛
  3. رسومية (--gv) - رسم بياني استدعاء يتم عرضه على الشاشة على الفور ؛
  4. قائمة (- قائمة = ) - قائمة مشروحة للوظيفة المحددة ؛
  5. قائمة مفككة (- إزعاج = ) - مشروح
    قائمة مفككة للوظيفة المحددة ؛
  6. الرموز (- الرموز) - سرد الأسماء الرمزية التي تم فك ترميزها ؛
  7. ملف رسومي (--dot، --ps، --pdf، --gif) - تم حفظ الرسم البياني للمكالمات
    إلى ملف
  8. Raw (--raw) - يعد ملف تعريف ثنائي للإرسال عبر الشبكة
    (مُعاد ترميزها باستخدام أحرف قابلة للطباعة).

النص الأكثر أهمية بالنسبة لنا هو النص ("- نص") والرسوم البيانية
("--gv") أنواع المكالمات. هم فقط من يمكنهم تقديم معلومات كاملة حول التنفيذ.
التطبيق وجميع مناطق مشاكله. يتم إنشاء إخراج النص على النحو التالي
طريق:

$ google-pprof --text ./gzip gzip-cpu-profile.log

كما ترى في لقطة الشاشة ، فإن الإخراج عبارة عن جدول يسرد الكل
وظائف وتكاليف تنفيذها. للوهلة الأولى ، يبدو مشابهًا جدًا لـ
الجدول الذي تم إنشاؤه بواسطة الأداة المساعدة gprof ، ولكنه ليس كذلك. أن تكون عادلاً
مكتبة ، لا يمكن لـ GPT الاحتفاظ بإحصائيات تنفيذ البرنامج بنفس التفاصيل
وكيف أن الكود الذي تم حقنه مباشرة في التطبيق يفعل ذلك بالضبط. لذلك ، بدلا من
سجلات لجميع حقائق الاستدعاء والخروج (سلوك البرنامج المترجم مع
بعلامة "-pg") ، تستخدم GPT تقنية تسمى أخذ العينات. مائة مرة في الثانية
تقوم المكتبة بتنشيط وظيفة خاصة تتمثل مهمتها في جمع البيانات حول
النقطة التي يتم فيها تنفيذ البرنامج حاليًا والتسجيل
هذه البيانات إلى المخزن المؤقت. عند الانتهاء من البرنامج ، يتم استخدام هذه البيانات لإنشاء و
يتم كتابة ملف الملف الشخصي على القرص.

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

من جميع النواحي الأخرى ، فإن الجدول مشابه جدًا لإخراج gprof: حسب الوظيفة on
صف لكل عمود. هناك ستة أعمدة إجمالاً:

  1. عدد الشيكات لهذه الوظيفة ؛
  2. نسبة الشيكات لجميع وظائف البرنامج الأخرى ؛
  3. عدد الشيكات لهذه الوظيفة وجميع فروعها ؛
  4. نفس العدد كنسبة مئوية من إجمالي عدد الشيكات ؛
  5. اسم وظيفة.

في البداية ، يبدو هذا النهج لقياس وقت التنفيذ أيضًا
غير دقيق ، ولكن إذا قارنت الجداول التي تم الحصول عليها باستخدام gprof مع الجداول
pprof ، يصبح من الواضح أنهم يظهرون نفس الصورة. علاوة على ذلك ، GPT
يسمح لك بتغيير عدد الشيكات في الثانية من الوقت باستخدام متغير
CPUPROFILE_FREQUENCY البيئة ، بحيث يمكن زيادة الدقة بمقدار عشرة ، مائة
أو ألف مرة ، إذا تطلب الموقف ذلك (على سبيل المثال ، إذا لزم الأمر
ملف تعريف تنفيذ برنامج صغير جدًا).

الميزة غير المشكوك فيها لـ GPT على gprof هي القدرة على التمثيل
المعلومات في شكل رسوم بيانية. لتنشيط وظيفة pprof يجب على المرء
تشغيل مع علامة "--gv" (بالمناسبة ، سيتم استخدام عرض الرسم البياني
فائدة بنفس الاسم):

$ google-pprof --gv ./gzip gzip-cpu-profile.log

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

ميزة أخرى لـ GPT هي القدرة على استخدام مستويات مختلفة
دقة إخراج البيانات ، مما يسمح للمستخدم باختيار الوحدات بنفسه
سحق. بشكل افتراضي ، يتم استخدام الوظيفة كوحدة ، لذلك
أي ناتج pprof منطقيًا مقسم إلى وظائف. ومع ذلك ، إذا رغبت في ذلك ، كما
وحدات كسرية يمكنك استخدام أسطر من التعليمات البرمجية المصدر (الوسيطة "- الأسطر") ،
الملفات ("--الملفات") أو حتى عناوين الذاكرة الفعلية ("- العناوين"). شكرا ل
تعد وظيفة GPT هذه ملائمة جدًا للاستخدام للعثور على الاختناقات في
التطبيقات الكبيرة ، عند تحليل الأداء لأول مرة في
منفصلة ، ثم انتقل إلى الوظائف وابحث في النهاية عن المشكلة
ضع على مستوى شفرة المصدر أو عناوين الذاكرة.

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

LD_PRELOAD $ = / usr / lib / libtcmalloc.so.0.0.0 \
HEAPPROFILE = gzip-heap-profile.log \
./gzip ~ / ubuntu-10.10-desktop-i386.iso
بدء تعقب الكومة
إلقاء ملف كومة الذاكرة المؤقتة في gzip-heap-profile.log.0001.heap (خروج)

سيتم إلحاق النهاية 0000.heap بالملف الناتج. إذا تم ضبطه على
هذا الملف إلى الأداة المساعدة pprof وتحديد علامة "--text" ، سيعرض الجدول
وظائف ومستوى استهلاك الذاكرة لكل منها. الأعمدة تعني نفس الشيء
هو نفسه كما في حالة التنميط المنتظم ، باستثناء أنه بدلاً من
عدد الشيكات ونسبها ، يحتوي الجدول الآن على الرقم
الذاكرة المستهلكة ونسبة إجمالي استهلاك الذاكرة.

إذا لزم الأمر ، يمكن الحصول على هذه المعلومات في شكل رسوم بيانية ، وكذلك
تغيير وحدات التكسير. يمكن تخصيص المكتبة بمختلف
متغيرات البيئة ، وأكثرها فائدة يسمى HEAP_PROFILE_MMAP.
إنه يمكّن من التنميط لاستدعاء نظام mmap (افتراضيًا GPT
يجمع الإحصائيات فقط للمكالمات إلى malloc و calloc و realloc والجديد).

بضع كلمات عن Valgrind

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

  1. Cachegrind - يسمح لك بجمع إحصائيات عن عدد مرات الوصول إلى البيانات و
    تعليمات البرنامج في ذاكرة التخزين المؤقت للمستويين الأول والثاني من المعالج (قوي و
    أداة معقدة مفيدة عند إجراء التنميط
    رمز المستوى المنخفض).
  2. Massif هو ملف تعريف كومة مماثل في وظائفه لنظيره GPT.
  3. Callgrind هو ملف تعريف يشبه إلى حد كبير gprof و GPT.

بشكل افتراضي ، يستخدم Valgrind memcheck باعتباره المكون الإضافي الرئيسي.
(مصحح أخطاء الذاكرة) ، لذلك تحتاج إلى تشغيله في وضع التنميط
حدد المكون الإضافي المطلوب يدويًا. على سبيل المثال:

$ valgrind --tool = callgrind ./program

بعد ذلك ، ملف اسمه
برنامج callgrind.out.PID الذي يمكن تحليله باستخدام الأداة المساعدة
callgrind_annotate أو برنامج الرسومات kcachegrind (مثبت
بشكل منفصل). لن أصف تنسيق البيانات الناتجة عن هذه البرامج.
(يتم تمثيله جيدًا في صفحات الرجل التي تحمل الاسم نفسه) ، سأقول ذلك فقط
من الأفضل تشغيل callgrind_annotate بعلامة "- تلقائي" حتى تتمكن من ذلك
العثور بشكل مستقل على ملفات التعليمات البرمجية المصدر للبرنامج.

لتحليل استخدام الذاكرة ، يجب تشغيل Valgrind مع وسيطة "--tool = massif".
بعد ذلك ، سيظهر ملف برنامج massif.out.PID في الدليل الحالي ، والذي
يمكن تحليلها باستخدام الأداة المساعدة ms_print. على عكس pprof ، فإنه
يمكن عرض البيانات ليس فقط في شكل جدول قياسي ، ولكن أيضًا إنشاء
رسومات جميلة أسكي الفن.

الاستنتاجات

تتيح أدوات مثل gprof و gcov و GPT تحليل الأداء
التطبيق وتحديد جميع الاختناقات وصولاً إلى معالج منفصل
التعليمات ، ومن خلال ربط Valgrind بعملية التنميط ، يمكنك تحقيق ذلك
نتائج مذهلة.

معلومات

افتراضيًا ، لا يعرض gprof معلومات ملف التعريف للوظائف.
مكتبات libc ، ولكن يمكن تصحيح الموقف عن طريق تثبيت الحزمة libc6-prof و
بناء الاختبار مع مكتبة libc_p: "export LD_FLAGS =" - lc_p "".

يمكنك تنشيط ملف تعريف GPT ليس فقط بمساعدة متغير البيئة
CPUPROFILE ، ولكن أيضًا عن طريق التفاف قسم الكود تحت الاختبار بوظائف ProfilerStart ()
و ProfilerStop () ، والتي تم التصريح عنها في google / profiler.h.

تحذير

نظرًا لمتطلبات الأمان ، لن تعمل GPT مع التطبيقات ذات
مع مجموعة بت SUID.

هل أعجبك المقال؟ أنشرها