ПЕРЕЛІК ДИСЦИПЛІН:
  • Адміністративне право
  • Арбітражний процес
  • Архітектура
  • Астрологія
  • Астрономія
  • Банківська справа
  • Безпека життєдіяльності
  • Біографії
  • Біологія
  • Біологія і хімія
  • Ботаніка та сільське гос-во
  • Бухгалтерський облік і аудит
  • Валютні відносини
  • Ветеринарія
  • Військова кафедра
  • Географія
  • Геодезія
  • Геологія
  • Етика
  • Держава і право
  • Цивільне право і процес
  • Діловодство
  • Гроші та кредит
  • Природничі науки
  • Журналістика
  • Екологія
  • Видавнича справа та поліграфія
  • Інвестиції
  • Іноземна мова
  • Інформатика
  • Інформатика, програмування
  • Юрист по наследству
  • Історичні особистості
  • Історія
  • Історія техніки
  • Кибернетика
  • Комунікації і зв'язок
  • Комп'ютерні науки
  • Косметологія
  • Короткий зміст творів
  • Криміналістика
  • Кримінологія
  • Криптология
  • Кулінарія
  • Культура і мистецтво
  • Культурологія
  • Російська література
  • Література і російська мова
  • Логіка
  • Логістика
  • Маркетинг
  • Математика
  • Медицина, здоров'я
  • Медичні науки
  • Міжнародне публічне право
  • Міжнародне приватне право
  • Міжнародні відносини
  • Менеджмент
  • Металургія
  • Москвоведение
  • Мовознавство
  • Музика
  • Муніципальне право
  • Податки, оподаткування
  •  
    Бесплатные рефераты
     

     

     

     

     

     

         
     
    Профіліровщік Quantify
         

     

    Інформатика, програмування

    Профіліровщік Quantify

    Введення

    Quantify, вставляючи налагоджувальний код в бінарний текст тестового модуля, заміряє тимчасові інтервали, які пройшли між попереднім і поточними запусками. Отримана інформація відображається у кількох видах: табличному, графічному, комбінованому.

    Статистична інформація від Quantify дозволить дізнатися які dll бібліотеки брали участь у роботу додатку, дізнатися список всіх викликаних функцій з їх іменами, формальними параметрами виклику й з статистичними аналізатором, що показує

    Гнучка система фільтрів Quantify дозволяє, не захаращуючи екран зайвими висновками (наприклад, системними викликами) дозволяє отримувати необхідну інформацію або тільки про внутрішні, програмних виклики або тільки про зовнішні, або комбінуючи обидва підходи.

    Озброївшись отриманої статистикою, розробник без праці виявить вузькі місця в продуктивності тестової програми та усуне їх в найкоротші терміни.

    Запуск додатків

    Малюнок 1 показує дії після вибору «File-> Run», в результаті якого можна вибрати ім'я зовнішнього модуля і аргументи його дзвінка.

    В Як параметри налаштування можна вибрати метод вставки налагоджувальному коду:

    Line. Найкращий спосіб вставки налагоджувальному коду. Заміряється час виконання кожного рядка тестуємого додатки.

    Function. Те ж саме, що і для «line», але з виміром для виконавчі викликаються функцій.

    Time. Здійснює збір тимчасової інформації і на основі цього ви машинні цикли.

    За замовчуванням Quantify збирає статистичну інформацію в модулі тестуємого продукту і у всіх зовнішніх бібліотеках.

    Початок насичення тестової програми супроводжується появою вікна інструментірованія, в якому порядково відображаються всі модулі, що викликаються основним. Дані модулі, як говорилося вище, насичуються налагоджувальний кодом і поміщаються в спеціальну директорію «cache» за адресою «Rationalquantifycache». Відзначимо, що початковий запуск інструментірванія процес тривалий, але кожний наступний виклик скорочує загальний час очікування в силу того, що вся необхідна інформація вже є в Кеші.

    З точки зору дискової ємності, файл (Кешована) налагоджування від Quantify вдвічі довший за свого побратима без налагоджувальної інформації.

    Аналіз інформації

    «Run Summary»

    Плавно переходимо до наступної стадії тестування, власне, до збору інформації. За закінчення процесу насичення налагоджувальний кодом модулів тестової програми, Quantify переходить до його виконання, вироблених, звичайним чином, за одним винятком: запис станів тестової програми продовжує проводитися в фоновому режимі.

    Малюнок 3 демонструє фрагмент вікна «Summary», в якому проводиться запис стану тестової програми. Причому, що дуже примітно, тестування проводиться не тільки для простого додатка, але і для багато поточного. В останньому випадку (див. малюнок 3), тестується кожен потік окремо. У будь-якому випадку, навіть якщо додаток Однопотокові, то ім'я основного (єдиного) потоку іменується як «. main_0», що видається цілком логічним.

    Інформаційний графік поступово наповнюється квадратами різного кольору, що демонструють поточний стан тестової програми.

    Відзначимо із деякі них:

    Running. Початок виконання потоку;

    Waiting IO. Очікування дій з вводувиводу;

    Blocked. Блокування виконання потоку;

    Quantify. Очікування виклику модуля Quantify;

    Exited. Закінчення виконання потоку.

    Важливий аспект при тестуванні - отримання статистичної інформації про кількість зовнішніх бібліотек, що викликало основну програму, а також елементарне опис машини, на якій проводилося тестування. Останнє особливо важливо, так як буває, що помилка проявляється тільки на процесорах строго певної серії або виробника. Всі статистичні аспекти вирішуються всередині вікна «Summary».

    Наступні два приклади показують статистичну інформацію:

    (1) Загальний звіт - «Details»:

    Program Name: C: projectsaaDebugaa.exe

    Program Arguments:

    Working Directory: C: projectsaaDebug

    User Name: Alex

    Product Version: 2002.05.00 4113

    Host Name: ALEX-GOLDER

    Machine Type: Intel Pentium Pro Model 8 Stepping 10

    # Processors: 1

    Clock Rate: 847 MHz

    O/S Version: Windows NT 5.1.2600

    Physical Memory: 382 MBytes

    PID: 0xfbc

    Start Time: 24.04.2002 14:17:38

    Stop Time: 24.04.2002 14:17:52

    Elapsed Time: 13330 ms

    # Measured Cycles: 191748 (0 ms)

    # Timed Cycles: 2489329 (2 ms)

    Dataset Size (bytes): 0x4a0001.

    (2) «Log»

    Quantify for Windows,

    Copyright (C) 1993-2001 Rational Software Corporation All rights reserved.

    Version 2002.05.00; Build: 4113;

    WinNT 5.1 2600 Uniprocessor Free

    Instrumenting:

    Far.exe 620032 bytes

    ADVAPI32.DLL 549888 bytes

    ADVAPI32.DLL 549888 bytes

    USER32.DLL 561152 bytes

    USER32.DLL 561152 bytes

    SHELL32.DLL 8322560 bytes

    SHELL32.DLL 8322560 bytes

    WINSPOOL.DRV 131584 bytes

    WINSPOOL.DRV 131584 bytes

    MPR.DLL 55808 bytes

    MPR.DLL 55808 bytes

    RPCRT4.DLL 463872 bytes

    RPCRT4.DLL 463872 bytes

    GDI32.DLL 250880 bytes

    GDI32.DLL 250880 bytes

    MSVCRT.DLL 322560 bytes

    MSVCRT.DLL 322560 bytes

    SHLWAPI.DLL 397824 bytes

    SHLWAPI.DLL 397824 bytes

    Для розробника або тестера інформація (інформаційний звіт), представлена вище, здатна пролити світло на ті статистичні дані, які супроводжували, а точніше, формували середу тестування.

    Дерево викликів «Call Graph »

    Наступний найцікавіший спосіб аналізу конструкції додатки - це перегляд дерева викликів. Вікно, показане на 4 малюнку, показує лише фрагмент вікна з діаграмою дзвінків.

    Зверніть увагу на кількість і послідовність виклику різних модулів потоку «Main». Жирна лінія показує найбільш тривалі гілки (що містять або часто викликаються функції, або функції, що виконувалися довше інших). Для демонстрації можливостей Quantify було сконструйовано простий додаток, що складається з функції "main» і двох додаткових «recursive» і «outside» (див. лістинг 1).

    Лістинг 1. Приклад тестового додатки, сконструйованому у вигляді консольного застосування з Visual Studio 6.0. Мова реалізації «С».

    # include "stdafx.h"

    // Створюємо функцію-заглушку

    void outside (void)

    (

    static int v = 0;

    v ++;

    )

    // Створюємо рекурсивну функцію, реклама, яка 100 раз

    int recursive (void)

    (

    static int i = 0;

    int oo;

    outside ();// Викликаємо функцію заглушку

    if (i == 100) (i = 1; return 0;)// Обнуляємо лічильник і виходимо

    i ++;

    recursive ();

    )

    int main (int argc, char * argv [])

    (

    int i;

    for (i = 0; i

         
     
         
    Реферат Банк
     
    Рефераты
     
    Бесплатные рефераты
     

     

     

     

     

     

     

     
     
     
      Все права защищены. Reff.net.ua - українські реферати ! DMCA.com Protection Status