מבחן :: להחליש

בדיקת אובייקטים זיכרון משוחררים היו משוחררים
הורד עכשיו

מבחן :: להחליש דירוג וסיכום

פרסומת

  • Rating:
  • רישיון:
  • Perl Artistic License
  • מחיר:
  • FREE
  • שם המפרסם:
  • Jeffrey Kegler
  • אתר האינטרנט של המוציא לאור:
  • http://search.cpan.org/~jkegl/

מבחן :: להחליש תגים


מבחן :: להחליש תיאור

מבחן אובייקטים זיכרון משוחררים היו, אכן משוחררים דליפת זיכרון מתרחשת כאשר מבנה נתונים Perl נהרס, אבל חלק מהתוכן של מבנה זה אינם משוחררים. זיכרון דלף הוא תקורה חסרת תועלת. דליפות יכול להשפיע באופן משמעותי את ביצועי המערכת. הם יכולים גם לגרום ליישום כדי abend בשל חוסר זיכרון.ב Perl, הפניות מעגליות הן סיבה נפוצה של דליפות זיכרון. הפניות מעגליות מותרות ב Perl, אך מבני נתונים המכילים הפניות מעגליות יהיה לדלוף זיכרון, אלא אם המתכנת לוקח אמצעים ספציפיים כדי למנוע דליפות. אמצעי מניעה כוללים להחליש את ההתייחסויות והסדרים לשבור את מחזור ההתייחסות ממש לפני שהמבנה נהרס. כאשר משתמשים בהפניות מעגליות, קל ליזה או מיישבת תכנית למניעת דליפות זיכרון. טעויות מסוג זה כבר קשה לזהות Suite.Test מבחן :: להחליש הוא מודול perl המאפשר גילוי קל של נתונים perl לא מוגדר. מבחן :: להחליש מאפשר לך לבחון את הנתונים אפור, אפילו נתונים כי בדרך כלל נעשו בלתי נגיש .Test :: מחליש את משחרר את מבנה הבדיקה, ואז נראה לראות אם כל התוכן של המבנה לא נפגע למעשה. כברירת מחדל, הבדיקה :: מחלישה קובעת את תוכן מבנה נתונים על-ידי בחינת מערכים ו hashes, על ידי הפניות הבאות, ועל ידי ביצוע משתנים קשורים לאובייקט הבסיסי שלהם. מבחן :: להחליש זה רקורסיבית כדי depth.test בלתי מוגבל :: להחליש יכול להתמודד עם הפניות מעגליות מבלי להיכנס לולאות אינסופי. מבחן :: להחליש לא יבקר באותה אובייקט נתונים Perl פעמיים. השתמש בנתונים :: Dumper; השתמש במתמטיקה :: Bigint; השתמש במתמטיקה :: BigFloat; להשתמש קרפיון; השתמש באנגלית QW (-No_match_vars); שלי $ $ good_test = sub {שלי $ OBJ1 = מתמטיקה :: Bigint-> חדש ('42 '); שלי OBJ2 = מתמטיקה :: bigfloat-> חדש ('7.11); ; }; אם (! דליפות ($ good_test)) {הדפס "לא דליפות במבחן 1 \ n" או קרפיון :: קרואק ("לא ניתן להדפיס כדי stdout: $ Errno"); } אחר {print "היו דליפות זיכרון ממבחן 1! \ N" או קרפיון :: CROAK ("לא ניתן להדפיס כדי stdout: $ Errno"); } שלי bad_test = sub {שלי $ array = ; לחץ על @ {$ Array}, $ מערך; $ ARRAY; }; שלי bad_destructor שלי = תת {'אני חסר תועלת'}; Tester $ שלי = מבחן :: להחליש :: דליפות ({contructor => $ bad_test, destructor => $ bad_destructor,}); אם ($ tester) {שלי $ unreed_proberefs = $ tester-> Unrame_proberefs (); שלי $ $ unrered_count = @ {$ unred_proberefs}; Printf "מבחן 2:% D של% D הפניות המקוריות לא היו freed \ n", $ Tester-> Unrame_count (), $ Tester-> Probe_Count () או קרפיון :: CROAK ("לא ניתן להדפיס כדי Stdout: $ Errno") - הדפס "אלה הן הפניות בדיקה לאובייקטים unreaded: \ n" או קרפיון :: CROAK ("לא ניתן להדפיס כדי stdout: $ Errno"); עבור IX $ שלי (0 .. $ # {$ unreed_proberefs}) {print nates :: dumper-> dump (], ) או קרפיון :: crooak ( "לא ניתן להדפיס כדי Stdout: $ Errno"); }} דרישות: · פרל


מבחן :: להחליש תוכנה קשורה