سؤال

أحاول ملف تعريف رمز Quicksort. رمز على النحو التالي:

qsort [] = []
qsort (x:xs) = qsort (filter (< x) xs) ++ [x] ++ qsort (filter (>= x) xs)

أرجوك أن تساعدني!

هل كانت مفيدة؟

المحلول

على افتراض أنك تستخدم GHC ، يمكنك تمكين التنميط مع -prof العلم (ربما -auto-all و -caf-all لمزيد من التفاصيل).

ثم تقوم بتشغيل برنامجك مع ./a.out +RTS -p لتوليد نتيجة التنميط في a.out.prof.

يتضمن الملف الشخصي فقط إجمالي الوقت والذاكرة التي يتم إنفاقها على كل وظيفة. والتي قد لا تكون مناسبة لك ، نظرًا لوجود وظيفة واحدة فقط qsort. تجميع البرنامج بشكل طبيعي وتشغيل مع ./a.out +RTS -sstderr قد يكون لديك ما يكفي من المعلومات بالفعل.

يرى

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top