هل هناك ما يعادل "وقت التشغيل" في LISP في المخطط؟
سؤال
بالنسبة الى SICP القسم 1.2.6, ، التمرين 1.22:
تتضمن معظم تطبيقات LISP بدائية تسمى وقت التشغيل الذي يعيد عددًا صحيحًا يحدد مقدار الوقت الذي تم فيه تشغيل النظام (تم قياسه ، على سبيل المثال ، في Microseconds).
أنا استخدم Drscheme, ، حيث لا يبدو وقت التشغيل متاحًا ، لذلك أبحث عن بديل جيد. لقد وجدت في مرجع plt-scheme أن هناك أ ميليسيكوند الحالية بدائية. هل يعرف أي شخص ما إذا كان هناك مؤقت في المخطط مع حل أفضل؟
المحلول
current-milliseconds
هي وظيفة تُرجع عدد المللي ثانية الحالي من النظام ، ولكنها قد تنخفض. current-inexact-milliseconds
متشابه ، ولكنه يعيد رقم النقطة العائمة المضمونة.
هناك أيضًا مجموعة من الوظائف المماثلة التي يمكنك العثور عليها في تلك الصفحة ، ولكن إذا كان كل ما تحتاجه هو الوقت في وظيفة معينة ، ثم استخدم فقط (time
expr) وسوف يطبع الوقت الذي استغرقته لتقييم التعبير.
شيء آخر مناسب هنا هو البروفيلر, ، في حال كنت بحاجة إلى المزيد من التحليل المطول للرمز الخاص بك.
نصائح أخرى
لقد صادفت هذه المشكلة أيضًا. أنا أستخدم Drracket ، حيث يبدو أنه قد تحل محل Drscheme. على الرغم من أن هذا موضوع قديم ، إلا أنني أضيف النتائج التي توصلت إليها لأي شخص جديد يتعثر عبر هذا الموضوع.
مع R5Rs كلغة محددة ، أضف التالية سطرين قبل البرنامج لجعله يعمل
(#%require (only racket/base current-milliseconds))
(define (runtime) (current-milliseconds))