SPDConvert

Gunakan SPDConvert untuk menyiapkan dan mengelola data profil sampel untuk Sample Profile-Guided Optimization (SPGO).

Alat ini menghubungkan sampel perangkat keras mentah dalam file SPT dengan struktur kode di SPD. Langkah ini melakukan korelasi sampel, penghalusan alur, dan keputusan ukuran/kecepatan, dan menghasilkan file SPD yang diperkaya dengan jumlah eksekusi yang dianotasikan pada grafik alur.

Anda dapat menggabungkan data dari beberapa sumber seperti tolok ukur lab, pemantauan internal, dan telemetri produksi, dalam satu konversi. Untuk menekankan pentingnya skenario tertentu, Anda dapat menentukan file SPT-nya beberapa kali. Mencantumkan SPT tolok ukur kritis sebanyak tiga kali secara efektif melipatgandakan bobotnya menjadi tiga kali lipat.

Alat ini beroperasi dalam tiga mode:

  • impor data .SPT ke dalam file .SPD untuk build /SPGO
  • ekstrak file .SPD tersemat dari .PDB
  • gabungkan beberapa file .SPD dari proses profiling yang terpisah

SPDConvert bekerja dengan tiga jenis file:

  • ETL (Log Jejak Peristiwa) Peristiwa performa perangkat keras mentah yang direkam oleh xperf
  • SPT (Jejak Profil Sampel) Peristiwa sampel yang dikemas yang dihasilkan oleh SPTAggregate dari berkas ETL
  • SPD (Basis Data Profil Sampel) Data profil yang diproses yang digunakan oleh pengkompilasi selama pembangunan yang dioptimalkan. Anda juga dapat menyematkan file SPD dalam file simbol PDB selama build /spdembed

Syntax

Impor data SPT ke dalam file SPD yang ada:

SPDConvert [opsi] spdfilesptfile(s)

Ekstrak file SPD yang disematkan dari PDB:

SPDConvert /extractpdbfilespdfile

Gabungkan beberapa file SPD menjadi satu:

SPDConvert /mergeoutputspdfilespdfile

Parameter-parameternya

MODE IMPOR

opsi
Tentukan opsi berikut dalam mode impor:

  • /Mode:<IP|LBR> Pilih mode profil. Gunakan IP untuk data profil pointer instruksi (default) atau LBR untuk data profil rekaman cabang terakhir.
  • /Reset: Reset hitungan ke 0. Tindakan ini mengabaikan SPT. Gunakan opsi ini untuk mereset file SPD sebelum mengimpor data baru, atau untuk membuat file SPD kosong jika file yang ditentukan tidak ada.
  • /sptlist:<File> Tentukan nama file SPT dalam file teks, dengan satu nama file per baris.
  • /Ringkasan Cetak ringkasan file SPD.
  • /Tolong Tampilkan informasi bantuan.

spdfile
File SPD untuk mengimpor data sampel ke dalamnya.

sptfiles
Satu atau beberapa file SPT yang akan diimpor. File SPT diproduksi oleh SPTAggregate.

MODUS EKSTRAK (/extract)

pdbfile
File PDB yang berisi sebuah SPD yang disematkan.

spdfile
File output SPD yang akan dibuat.

MODE PENGGABUNGAN (/gabungkan)

outputspdfile
File SPD keluaran yang akan dibuat.

/retire:<N> Atur laju pensiun data profil menjadi N/16, dengan 0 ≤ N ≤ 16. Defaultnya adalah 8. Nilai ini mengontrol berapa banyak data yang ada dalam SPD yang akan dihapus saat menambahkan data SPT baru. Misalnya, /retire:8 menghapus 8/16 (setengah) data yang ada sebelum menambahkan data SPT baru. Pengaturan ini memberikan bobot lebih besar pada data profil yang lebih baru karena mengabaikan setengah dari data lama. Dua penggunaan yang paling umum adalah /retire:0, yang memberikan bobot yang sama untuk semua proses profiling, atau /retire:16 agar hanya data terbaru yang diperhitungkan karena opsi ini menghapus semua data lama. Gunakan /retire:N untuk mengatur seberapa besar SPDConvert mengurangi penekanan pada data profil lama. Konsep "bawa maju" ini memungkinkan Anda untuk merefresh profil menggunakan data SPD yang ada tanpa memulai kembali dengan data pembuatan profil baru, yang memakan waktu. Konsep ini dibahas lebih lanjut dalam tutorial SPGO - Menggunakan kembali informasi SPD di seluruh build.

spdfiles
Satu atau beberapa file SPD untuk digabungkan.

Komentar

Note

Jalankan alat ini dari prompt perintah pengembang Visual Studio.

SPDConvert adalah alat konversi utama dalam alur kerja SPGO. Setelah mengumpulkan jejak dengan menggunakan xperf dan mengonversinya ke file SPT dengan menggunakan SPTAggregate, gunakan SPDConvert untuk mengimpor data sampel ke dalam file SPD. Teruskan file SPD yang dihasilkan ke pengkompilasi dengan menggunakan /SPGO bendera untuk membangun biner yang dioptimalkan.

Gunakan /extract untuk memulihkan file SPD yang disematkan dalam PDB selama build /SPGO . Gunakan /merge untuk menggabungkan file SPD dari beberapa sesi pembuatan profil sebelum membangun kembali.

Nilai GUID dan usia biner harus sesuai antara file SPT dan SPD. Jika keduanya tidak cocok, SPDConvert melaporkan kesalahan "versi SPD tidak kompatibel". Gunakan SPTDump /progid untuk memeriksa pengidentifikasi biner dalam file SPT, dan SPDDump /header untuk memeriksa file SPD.

GUID dan usia biner yang tercatat dalam file SPD harus cocok dengan yang ada di file SPT. Untuk mendiagnosis kesalahan ini, gunakan SPTDump /progid untuk memeriksa pengidentifikasi biner dalam file SPT, dan SPDDump /header untuk memeriksa file SPD. File SPD yang valid digunakan sejauh mungkin. Pembaruan kecil pada kode yang tidak mengubah alur kontrol program ditoleransi. Fungsi yang tidak berubah juga menggunakan data untuk pengoptimalan. Jika Anda memberikan SPD yang valid, tetapi tidak terkait, prosesnya berfungsi, tetapi kemungkinan tidak ada data yang dapat digunakan untuk pengoptimalan.

Example

Contoh ini mengimpor data profil LBR dari file SPT ke dalam file SPD:

SPDConvert /mode:LBR sample.spd sample.spt

Contoh ini mengimpor data profil IP dengan menggunakan daftar file SPT:

SPDConvert /mode:IP /sptlist:mysptfiles.txt sample.spd

Contoh ini mencetak ringkasan data profil dalam file SPD:

SPDConvert /summary sample.spd

Contoh ini mengekstrak SPD yang disematkan dari file PDB:

SPDConvert /extract sample.pdb sample_extracted.spd

Contoh ini menggabungkan dua file SPD dari eksekusi pembuatan profil yang berbeda:

SPDConvert /merge combined.spd run1.spd run2.spd

Baca juga

Tutorial: Menggunakan Sample Profile-Guided Optimization (SPGO) untuk meningkatkan performa
SPDDump
SPTAggregate
SPTDump