هل هناك ما يعادل "وقت التشغيل" في LISP في المخطط؟

StackOverflow https://stackoverflow.com/questions/2195105

  •  25-09-2019
  •  | 
  •  

سؤال

بالنسبة الى 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))
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top