تحديد وقت تشغيل الوظيفة أثناء التنقل: نهج مؤجل دقيق
في مجال تحسين البرامج، يمكن أن يوفر قياس وقت تنفيذ الوظيفة رؤى قيمة لـ تحسين الكفاءة. Go، وهي لغة برمجة قوية، تقدم آلية ملائمة لتوقيت الوظائف وإرجاع وقت التشغيل الخاص بها بالمللي ثانية.
وظيفة قياس الوقت
لبدء مغامرتنا، دعونا صياغة وظيفة نريد أن نحددها. هذا المثال ينام ببساطة لمدة محددة:
func SleepFor(d time.Duration) { time.Sleep(d) }
ميزة التأجيل الخاصة بـ Go
أثبتت الكلمة الرئيسية المؤجلة لـ Go فعاليتها في هذا المسعى. من خلال تأجيل تنفيذ دالة حتى خروج الدالة المتضمنة، يمكننا قياس الوقت المنقضي بين استدعاء الدالة وتنفيذها الفعلي.رمز قياس الوقت
دعونا تقديم وظيفتين مساعدتين، هما Trace وun. يقوم التتبع بتسجيل نقطة دخول الوظيفة والتقاط وقت البداية، بينما يقوم un بتسجيل نقطة الخروج وحساب الوقت المنقضي بالثواني.func Trace(s string) (string, time.Time) { سجل.Println("ابدأ:"، ق) إرجاع الصورة، الوقت.الآن () } func un(s string, startTime time.Time) { وقت النهاية := الوقت.الآن () log.Println(" END:"، s، "الوقت المنقضي بالثواني:"، endTime.Sub(startTime))func trace(s string) (string, time.Time) { log.Println("START:", s) return s, time.Now() } func un(s string, startTime time.Time) { endTime := time.Now() log.Println(" END:", s, "ElapsedTime in seconds:", endTime.Sub(startTime)) }
تنفيذ التوقيت
الآن، دعونا ندمج هذه الوظائف المساعدة في وظيفة SleepFor لدينا:func ProfileSleep(d time.Duration) { تأجيل الأمم المتحدة (تتبع ("SleepFor")) سليب فور (د)func trace(s string) (string, time.Time) { log.Println("START:", s) return s, time.Now() } func un(s string, startTime time.Time) { endTime := time.Now() log.Println(" END:", s, "ElapsedTime in seconds:", endTime.Sub(startTime)) }
نتائج نظيفة للغاية مع هذا التنفيذ الأنيق، نحصل على سجلات موجزة للوقت المنقضي لكل استدعاء دالة:
البدء: الملف الشخصي النوم النهاية: ProfileSleep ElapsedTime بالثواني: 0.50044
func trace(s string) (string, time.Time) { log.Println("START:", s) return s, time.Now() } func un(s string, startTime time.Time) { endTime := time.Now() log.Println(" END:", s, "ElapsedTime in seconds:", endTime.Sub(startTime)) }اعتبارات الدقة
بينما توفر السجلات الأوقات المنقضية الدقيقة، تجدر الإشارة إلى أن بيانات التسجيل نفسها تقدم عدم دقة طفيفة. إذا كانت هناك حاجة إلى دقة أعلى، ففكر في آلية توقيت بديلة.
الاستنتاج
يجعل تأجيل Harnessing Go وظائف التوقيت والحصول على وقت التشغيل بالمللي ثانية أمرًا سهلاً. تتيح هذه التقنية القوية الحصول على رؤى حول أداء التعليمات البرمجية، مما يمهد الطريق للتحسينات لتحسين كفاءة تطبيقاتك.
تنصل: جميع الموارد المقدمة هي جزئيًا من الإنترنت. إذا كان هناك أي انتهاك لحقوق الطبع والنشر الخاصة بك أو الحقوق والمصالح الأخرى، فيرجى توضيح الأسباب التفصيلية وتقديم دليل على حقوق الطبع والنشر أو الحقوق والمصالح ثم إرسالها إلى البريد الإلكتروني: [email protected]. سوف نتعامل مع الأمر لك في أقرب وقت ممكن.
Copyright© 2022 湘ICP备2022001581号-3