Tsov - Tcov

tcov
Tuzuvchi (lar)Oracle korporatsiyasi
Operatsion tizimSolaris
PlatformaSPARC
TuriKodni qamrab olish
LitsenziyaDa tasvirlanganidek yuklab olish va foydalanish uchun bepul Sun Studio mahsulot litsenziyasi.
Veb-saytdevelopers.sun.com

Tsov a manba kodini qamrab olish yozilgan dasturiy ta'minotni tahlil qilish va bayonotlar bo'yicha profillash vositasi Fortran, C va C ++. Tcov dasturdagi har bir bayonot necha marta bajarilganligi va izohlanganligini aniq sanab chiqadi manba kodi asbobsozlik qo'shish. Bu taqdim etilgan standart yordamchi dastur bepul bilan Quyosh studiyasi dasturiy ta'minot ostida Sun Studio mahsulot litsenziyasi.[1]

Tcov yordam dasturi qancha vaqt ichida a haqida ma'lumot beradi dastur kod segmentlarini bajaradi. U ijro chastotalari bilan izohlangan manba faylining nusxasini ishlab chiqaradi. Kodni izohlash mumkin asosiy blok daraja yoki manba liniyasi darajasi. Asosiy blokdagi bayonotlar bir xil sonda bajarilganligi sababli, blokning asosiy bajarilishi soni blokdagi har bir bayonotning bajarilish soniga teng. Tcov yordam dasturi vaqtga asoslangan ma'lumotlarni ishlab chiqarmaydi.

Tavsif

tcov a-ning sinov qamrovi tahlilini ishlab chiqaradi tuzilgan dastur. tcov manba fayllarini argument sifatida qabul qiladi va izohli manba ro'yxatini ishlab chiqaradi. Har biri asosiy blok kod (yoki har bir satr, agar tcov-ga tegishli parametr ko'rsatilgan bo'lsa), u bajarilgan sonlar soniga qo'shiladi; bajarilmagan qatorlar oldiga "#####" qo'shiladi.

Tcov yordam dasturi, shuningdek izohlangan dasturlar ro'yxati oxirida xulosani joylashtiradi. Eng tez-tez bajariladigan asosiy bloklar statistikasi bajarilish chastotasi tartibida keltirilgan. Satr raqami - blokdagi birinchi qatorning raqami.

Tcov-ning ikkita dasturi mavjud:

  • Old Style qamrovini tahlil qilish:[2] Ushbu dasturda tcov original nomi bilan ham tanilgan kompilyator har bir ob'ekt fayli uchun .d qo'shimchasi bilan qamrov ma'lumot faylini yaratadi. Qachon dastur to'ldiradi, qamrov ma'lumotlari fayllari yangilanadi.
  • Yangi uslub qamrovini tahlil qilish:[3] Ushbu dasturda tcov kengaytirilgan deb ham ataladi, kompilyatsiya vaqtida qo'shimcha fayllar yaratilmaydi. Buning o'rniga, katalog profil ma'lumotlarini saqlash uchun yaratilgan va shu katalogda tcovd deb nomlangan bitta qamrov ma'lumot fayli yaratilgan.

Kengaytirilgan qamrov tahlili dastlabki tahlil vositasining ba'zi kamchiliklarini bartaraf etadi, masalan:[4]

  • C ++ uchun to'liqroq yordam beradi.
  • #Include sarlavha fayllaridagi kodni qo'llab-quvvatlaydi va shablon sinflari va funktsiyalari uchun qamrov raqamlarini yashirgan nuqsonni to'g'irlaydi.
  • Dastlabki tcov ish vaqtiga qaraganda ancha samarali ish vaqti.
  • Tuzuvchilar qo'llab-quvvatlaydigan barcha platformalar uchun qo'llab-quvvatlanadi.

Amalga oshirish

Izohli manba kodini yaratish uchun quyidagi uchta bosqich talab qilinadi:[5]

  • Tegishli kompilyator opsiyasi bilan kod kompilyatsiyasi
  • Profil ma'lumotlarini to'plash uchun dasturni bajarish
  • tcov izohli fayllarni yaratish uchun buyruqni bajarish

Har bir keyingi ishlash profil ma'lumotlari faylida ko'proq qamrov ma'lumotlarini to'playdi. Har bir ob'ekt fayli uchun ma'lumotlar dastur qayta kompilyatsiya qilinganidan keyin birinchi marta bajarilganda nolga tenglashtiriladi. Tcovd faylini olib tashlash orqali butun dastur uchun ma'lumotlar nolga tenglashtiriladi.[6]

Yuqoridagi qadamlar quyida ham original, ham yaxshilangan tcov uchun tushuntirilgan:

Old Style qamrovini tahlil qilish

Manba kodi kompilyatsiya qilingan -xa C dasturi uchun variant va -a Fortran va C ++ dasturlari uchun variant. Tuzuvchi qo'shimchasi bilan qamrov ma'lumot faylini yaratadi .d har bir ob'ekt fayli uchun. Qoplama ma'lumotlari fayli atrof-muhit o'zgaruvchisi tomonidan belgilangan katalogda yaratiladi TCOVDIR. Agar TCOVDIR o'rnatilmagan, qamrov ma'lumotlari fayli joriy katalogda yaratilgan. Yuqorida keltirilgan asboblar qurilishi bajariladi va dastur tugagandan so'ng .d fayllar yangilanadi. Va nihoyat, izohli manba fayllarini yaratish uchun tcov buyrug'i ishga tushiriladi. Tcov buyrug'ining sintaksisi quyidagicha:

tcov variantlari manba-fayllar ro'yxati

Bu yerda, manba-fayllar ro'yxati manba kodi fayl nomlari ro'yxati. Variantlar ro'yxati uchun tcov-ning standart chiqishi har birida qo'shimchasi bo'lgan fayllar to'plamidir .tcovbilan o'zgartirilishi mumkin -o fayl nomi parametrlari.

Kodni qamrab olish tahlili uchun tuzilgan dastur bir necha marta ishlatilishi mumkin (har xil bo'lishi mumkin bo'lgan kiritish bilan); tcov har bir ishdan keyin xatti-harakatni taqqoslash uchun dasturda ishlatilishi mumkin.

New Style qamrovini tahlil qilish

Manba kodi kompilyatsiya qilingan -xprofile = tcov variant. Asl rejimdan farqli o'laroq, yaxshilangan tcov kompilyatsiya vaqtida hech qanday fayl yaratmaydi.[7] Yuqorida keltirilgan asboblar to'plami ishga tushiriladi va dastur tugagandan so'ng profil ma'lumotlarini saqlash uchun katalog yaratiladi va bitta qamrov ma'lumot fayli deb nomlanadi. tcovd ushbu katalogda yaratilgan. tcovd qator raqamlari va bajarilish soni haqida ma'lumotga ega. Bu oddiy matnli fayl. Odatiy bo'lib, katalog dastur ishlaydigan joyda yaratiladi va u bajariladigan nom bilan nomlanadi va qo'shimchasini qo'shadi .profil. Katalog shuningdek profil paqir. Profil paqirining o'rnini belgilash orqali bekor qilish mumkin SUN_PROFDATA_DIR yoki SUN_PROFDATA muhit o'zgaruvchilari. Va nihoyat, izohli manba fayllarini yaratish uchun tcov buyrug'i ishga tushiriladi. Tcov buyrug'i sintaksisining asl buyrug'i bilan bir xil, majburiy holatlar bundan mustasno -x variant.

tcov variantlari -x profilebucket manba-fayllar ro'yxati

Buyruqning asl tcovdan farqi faqat majburiy qo'shilishdir -x dir kengaytirilgan tcovni ko'rsatish uchun variant.

Misol

Quyida yozilgan dastur C dasturlash tili, ko'chadan 1 dan 9 gacha bo'lgan butun sonlarni ko'paytiradi va ularning bo'linishini modul (%) operatori bilan sinab ko'radi.

# shu jumladan <stdio.h>intasosiy (bekor){  int men;  uchun (men = 1; men < 10; men++)    {      agar (men % 3 == 0)        printf ("% d 3 ga bo'linadi n", men);      agar (men % 11 == 0)        printf ("% d 11 ga bo'linadi n", men);    }  qaytish 0;}

Sinovni qamrab olish uchun dastur quyidagi variantlar bilan tuzilishi kerak:

uchun eski uslub kod qamrovi,

cc -xa cov.c

va uchun yangi uslub kod qamrovi,

cc -xprofile = tcov -o cov cov.c

bu erda cov.c - dastur faylining nomi. Bu asbob yaratadi bajariladigan unda dasturning har bir satri necha marta bajarilganligini yozadigan qo'shimcha ko'rsatmalar mavjud. -o variant bajariladigan fayl nomini belgilash uchun ishlatiladi. Keyin qamrov ma'lumotlarini yaratish uchun bajariladigan dasturni ishga tushirish kerak. Eski va yangi uslubdagi kodlarni tahlil qilish uchun ushbu faylning yaratilishi va joylashuvi boshqacha. Yilda eski uslub tahlil, ushbu fayl bilan kengaytma .d, keyin yaratilgan jamlama yoki TCOVDIR-da katalog yoki joriy, qamrov ma'lumotlari bilan yangilanadi. Yilda yangi uslub tahlil, qamrov ma'lumotlari fayli, nomi bilan tcovd, yaratilgan .profil katalog. Ushbu ma'lumotlar tcov buyrug'i va manba fayl nomi yordamida tahlil qilinishi mumkin:

uchun eski uslub kod qamrovi,

tcov cov.c

va uchun yangi uslub kod qamrovi,

tcov -x cov.profile cov.c

qo'shilish argumenti yangi uslub tahlil qilish profil paqir. The tcov buyrug'i asl nusxaning izohli versiyasini ishlab chiqaradi manba fayli, ".tcov" fayl kengaytmasi bilan har bir satr necha marta bajarilganligini hisoblashni o'z ichiga oladi:

        # shu jumladan <stdio.h>        int        asosiy (bekor)        {     1    int men;    10    uchun (men = 1; men < 10; men++)            {     9        agar (men % 3 == 0)     3          printf ("% d 3 ga bo'linadi n", men);     9        agar (men % 11 == 0)###### printf ("% d 11 ga bo'linadi  n", i);     9      }     1    qaytish 0;     1  }

The tcov yordam dasturi, shuningdek izohlangan dasturlar ro'yxati oxirida xulosani joylashtiradi. Eng tez-tez bajariladigan statistik ma'lumotlar asosiy bloklar ijro chastotasi tartibida keltirilgan. Satr raqami - blokdagi birinchi qatorning raqami.

Buyruq satri parametrlari

Tcov buyruq satri yordam dasturi profil ma'lumotlaridan izohli fayllarni yaratishda quyidagi variantlarni qo'llab-quvvatlaydi:[8]

  • -a: Har bir bayonot uchun ijro sonini ko'rsatish. Agar ushbu parametr ko'rsatilmagan bo'lsa, unda ijro etilish soni faqat a rahbari uchun ko'rsatiladi kod bloki.
  • -n: Eng tez-tez bajariladigan so'zlarning satrlari va ularning bajarilish soni jadvalini ko'rsatish.
  • - fayl nomi: Chiqishni yo'naltiring Fayl nomi o'rniga file.tcov. Ushbu parametrdan chiqishni yo'naltirish uchun foydalanish mumkin standart chiqish belgilash orqali -.
  • -x dir: Bu yangi uslub qamrovini tahlil qilishda qo'llab-quvvatlanadi. Agar ushbu parametr ko'rsatilmagan bo'lsa, eski uslubdagi tcov qamrovi qabul qilinadi.

Shuningdek qarang

Adabiyotlar

  1. ^ "tcov bilan profillarni yaratish". Olingan 6 fevral 2012.
  2. ^ "Tcovning bayonotlarni asl tahlili". Olingan 6 fevral 2012.
  3. ^ "Kengaytirilgan Tcov bayonotlarini tahlil qilish". Olingan 6 fevral 2012.
  4. ^ "Tsovning yaxshilangan xususiyatlari tcov originaliga nisbatan yaxshilandi". Olingan 6 fevral 2012.
  5. ^ oracle.com. "izohli manba kodini yaratish uchun zarur bo'lgan qadamlar".
  6. ^ www.sics.se. "SunOS qo'llanma sahifasi".
  7. ^ docs.oracle.com. "yaxshilangan tcov".
  8. ^ developers.sun.com. "Tcov hujjatlari". Olingan 7-fevral, 2012.