InggrisPerancisSpanyol

Ad


favorit OnWorks

perf-script-python - Online di Cloud

Jalankan perf-script-python di penyedia hosting gratis OnWorks melalui Ubuntu Online, Fedora Online, emulator online Windows atau emulator online MAC OS

Ini adalah perintah perf-script-python yang dapat dijalankan di penyedia hosting gratis OnWorks menggunakan salah satu dari beberapa workstation online gratis kami seperti Ubuntu Online, Fedora Online, emulator online Windows atau emulator online MAC OS

PROGRAM:

NAMA


perf-script-python - Memproses data jejak dengan skrip Python

RINGKASAN


Perf naskah [-s [Python]:skrip[.py] ]

DESKRIPSI


Opsi skrip perf ini digunakan untuk memproses data skrip perf menggunakan Python bawaan perf
penerjemah. Ia membaca dan memproses file input dan menampilkan hasil jejak
analisis diimplementasikan dalam skrip Python yang diberikan, jika ada.

A CEPAT CONTOH


Bagian ini menunjukkan proses, mulai sampai selesai, membuat skrip Python yang berfungsi:
mengumpulkan dan mengekstrak informasi yang berguna dari aliran skrip perf mentah. Anda dapat menghindari
membaca sisa dokumen ini jika sebuah contoh sudah cukup untuk Anda; sisanya
dokumen memberikan rincian lebih lanjut pada setiap langkah dan daftar fungsi perpustakaan yang tersedia untuk
penulis naskah.

Contoh ini sebenarnya merinci langkah-langkah yang digunakan untuk membuat jumlah syscall naskah
Anda melihat ketika Anda membuat daftar skrip skrip perf yang tersedia melalui Perf naskah -l. Dengan demikian, ini
skrip juga menunjukkan cara mengintegrasikan skrip Anda ke dalam daftar tujuan umum Perf
naskah skrip yang terdaftar oleh perintah itu.

Skrip syscall-counts adalah skrip sederhana, tetapi menunjukkan semua ide dasar
diperlukan untuk membuat skrip yang berguna. Berikut adalah contoh outputnya (nama syscall adalah
belum didukung, mereka akan muncul sebagai angka):

.ft C
acara syscall:

jumlah acara
---------------------------------------- ---------- -
sys_write 455067
sys_getdents 4072
sys_close 3037
sys_swapoff 1769
sys_baca 923
sys_sched_setparam 826
sys_buka 331
sys_newfstat 326
sys_mmap 217
sys_munmap 216
sys_futex 141
sys_pilih 102
sys_poll 84
sys_settimer 12
sys_writev 8
15 8
sys_lseek 7
sys_rt_sigprocmask 6
sys_tunggu4 3
sys_ioctl 3
sys_set_robust_list 1
sys_keluar 1
56 1
sys_akses 1
.ft

Pada dasarnya tugas kami adalah menyimpan penghitungan per-syscall yang diperbarui setiap kali sistem
panggilan terjadi dalam sistem. Skrip kami akan melakukan itu, tetapi pertama-tama kami perlu merekam data
yang akan diproses oleh skrip tersebut. Secara teoritis, ada beberapa cara yang bisa kita lakukan
lakukan itu:

· kita bisa mengaktifkan setiap acara di bawah direktori tracing/events/syscalls, tapi ini
lebih dari 600 syscalls, jauh melampaui jumlah yang diizinkan oleh perf. Sistem individu ini
acara namun akan berguna jika kita ingin nanti menggunakan panduan yang kita dapatkan dari
skrip tujuan umum untuk menelusuri dan mendapatkan detail lebih lanjut tentang panggilan sistem individual dari
bunga.

· kita dapat mengaktifkan sys_enter dan/atau sys_exit syscalls ditemukan di bawah
tracing/event/raw_syscalls. Ini dipanggil untuk semua syscalls; NS id lapangan bisa
digunakan untuk membedakan antara nomor syscall individu.

Untuk skrip ini, kita hanya perlu mengetahui bahwa syscall telah dimasukkan; kami tidak peduli bagaimana itu
keluar, jadi kami akan menggunakan Perf catatan untuk merekam hanya acara sys_enter:

.ft C
# catatan kinerja -a -e raw_syscalls:sys_enter

^C[ perf record: Bangun 1 kali untuk menulis data ]
[perf record: Ditangkap dan ditulis 56.545 MB perf.data (~2470503 sampel)]
.ft

Opsi pada dasarnya mengatakan untuk mengumpulkan data untuk setiap acara syscall di seluruh sistem dan
multipleks output per-cpu menjadi satu aliran. Aliran tunggal itu akan direkam di
file di direktori saat ini bernama perf.data.

Setelah kami memiliki file perf.data yang berisi data kami, kami dapat menggunakan -g Perf naskah pilihan untuk
menghasilkan skrip Python yang akan berisi penangan panggilan balik untuk setiap jenis acara yang ditemukan di
aliran jejak perf.data (untuk lebih jelasnya, lihat bagian STARTER SCRIPTS).

.ft C
# skrip perf -g python
skrip Python yang dihasilkan: perf-script.py

File output yang dibuat juga di direktori saat ini bernama
perf-script.py. Berikut filenya secara keseluruhan:

# pengendali acara skrip perf, dihasilkan oleh skrip perf -g python
# Dilisensikan di bawah ketentuan Lisensi GNU GPL versi 2

# Bidang pengendali acara common_* adalah bidang paling berguna yang umum untuk
# semua acara. Mereka tidak selalu sesuai dengan bidang 'umum_*'
# dalam format file. Bidang tersebut tidak tersedia sebagai parameter handler dapat
# diambil menggunakan fungsi Python dalam bentuk common_*(context).
# Lihat Dokumentasi perf-script-python untuk daftar fungsi yang tersedia.

impor os
impor sys

sys.path.append(os.environ['PERF_EXEC_PATH'] + \
'/scripts/python/Perf-Trace-Util/lib/Perf/Trace')

dari impor perf_trace_context *
dari impor Inti *

def jejak_begin():
cetak "di trace_begin"

def jejak_akhir():
cetak "di trace_end"

def raw_syscalls__sys_enter(nama_acara, konteks, common_cpu,
common_secs, common_nsecs, common_pid, common_comm,
id, argumen):
print_header(nama_acara, common_cpu, common_secs, common_nsecs,
common_pid, common_comm)

print "id=%d, args=%s\n" % \
(id, argumen),

def trace_unhandled(event_name, konteks, common_cpu, common_secs, common_nsecs,
common_pid, common_comm):
print_header(nama_acara, common_cpu, common_secs, common_nsecs,
common_pid, common_comm)

def print_header(nama_event, cpu, detik, nsecs, pid, comm):
print "%-20s %5u %05u.%09u %8u %-20s " % \
(nama_acara, cpu, detik, nsecs, pid, comm),
.ft

Di bagian atas adalah blok komentar diikuti oleh beberapa pernyataan impor dan penambahan jalur yang
setiap skrip skrip perf harus disertakan.

Berikut ini adalah beberapa fungsi yang dihasilkan, trace_begin() dan trace_end(), yaitu
dipanggil di awal dan akhir skrip masing-masing (untuk lebih jelasnya, lihat
SCRIPT_LAYOUT di bawah).

Berikut ini adalah peristiwa handler fungsi yang dihasilkan satu untuk setiap acara di Perf
catatan keluaran. Fungsi handler mengambil bentuk subsistemnama_acara, dan mengandung bernama
parameter, satu untuk setiap bidang in itu peristiwa; in ini kasus, ada hanya satu peristiwa,
raw_syscallssys_enter(). (lihat bagian PENANGANAN EVENT di bawah ini untuk info lebih lanjut tentang acara
penangan).

Beberapa fungsi terakhir, seperti fungsi awal dan akhir, dihasilkan untuk setiap
naskah. Yang pertama, trace_unhandled(), dipanggil setiap kali skrip menemukan kejadian di
file perf.data yang tidak sesuai dengan event handler apa pun dalam skrip. Ini bisa
berarti bahwa langkah rekaman merekam jenis peristiwa yang tidak terlalu diminati,
atau skrip dijalankan terhadap file jejak yang tidak sesuai dengan skrip.

Skrip yang dihasilkan oleh opsi -g hanya mencetak satu baris untuk setiap peristiwa yang ditemukan di jejak
stream yaitu pada dasarnya hanya membuang acara dan nilai parameternya ke stdout. NS
fungsi print_header() hanyalah fungsi utilitas yang digunakan untuk tujuan itu. Ayo ganti nama
skrip dan jalankan untuk melihat output default:

.ft C
# mv kinerja-script.py syscall-counts.py
# skrip perf -s syscall-counts.py

raw_syscalls__sys_enter 1 00840.847582083 7506 kinerja id=1, args=
raw_syscalls__sys_enter 1 00840.847595764 7506 kinerja id=1, args=
raw_syscalls__sys_enter 1 00840.847620860 7506 kinerja id=1, args=
raw_syscalls__sys_enter 1 00840.847710478 6533 npviewer.bin id=78, args=
raw_syscalls__sys_enter 1 00840.847719204 6533 npviewer.bin id=142, args=
raw_syscalls__sys_enter 1 00840.847755445 6533 npviewer.bin id=3, args=
raw_syscalls__sys_enter 1 00840.847775601 6533 npviewer.bin id=3, args=
raw_syscalls__sys_enter 1 00840.847781820 6533 npviewer.bin id=3, args=
.
.
.
.ft

Tentu saja, untuk skrip ini, kami tidak tertarik untuk mencetak setiap peristiwa jejak, melainkan
menggabungkannya dengan cara yang bermanfaat. Jadi kami akan menyingkirkan semua yang berhubungan dengan pencetakan juga
sebagai fungsi trace_begin() dan trace_unhandled(), yang tidak akan kita gunakan. Itu pergi
kami dengan kerangka minimalis ini:

.ft C
impor os
impor sys

sys.path.append(os.environ['PERF_EXEC_PATH'] + \
'/scripts/python/Perf-Trace-Util/lib/Perf/Trace')

dari impor perf_trace_context *
dari impor Inti *

def jejak_akhir():
cetak "di trace_end"

def raw_syscalls__sys_enter(nama_acara, konteks, common_cpu,
common_secs, common_nsecs, common_pid, common_comm,
id, argumen):
.ft

Di trace_end(), kita hanya akan mencetak hasilnya, tetapi pertama-tama kita perlu membuat beberapa hasil
untuk mencetak. Untuk melakukan itu kita perlu memiliki handler sys_enter() kami melakukan penghitungan yang diperlukan
sampai semua peristiwa telah dihitung. Tabel hash yang diindeks oleh syscall id adalah cara yang baik untuk
menyimpan informasi itu; setiap kali handler sys_enter() dipanggil, kita cukup menambahkan
jumlah yang terkait dengan entri hash yang diindeks oleh id syscall itu:

.ft C
panggilan sys = autodict()

coba:
panggilan sistem[id] += 1
kecuali TypeError:
syscall[id] = 1
.ft

Panggilan sistem otodik objek adalah jenis khusus dari kamus Python (diimplementasikan dalam
Core.py) yang mengimplementasikan Perl's menghidupkan otomatis hash dalam Python yaitu dengan autovivifying
hash, Anda dapat menetapkan nilai hash bersarang tanpa harus repot membuat
tingkat menengah jika tidak ada misalnya syscalls[comm][pid][id] = 1 akan membuat
tingkat hash menengah dan akhirnya menetapkan nilai 1 ke entri hash untuk id (karena
nilai yang diberikan bukan objek hash itu sendiri, nilai awal ditetapkan dalam
Pengecualian TypeError. Yah, mungkin ada cara yang lebih baik untuk melakukan ini dengan Python tapi itulah yang
bekerja untuk saat ini).

Menempatkan kode itu ke dalam handler raw_syscalls__sys_enter(), kita secara efektif berakhir dengan
kamus tingkat tunggal dikunci pada id syscall dan memiliki jumlah yang telah kami hitung sebagai nilai.

Fungsi print_syscall_totals() mengulangi entri dalam kamus dan
menampilkan baris untuk setiap entri yang berisi nama panggilan sys (tombol kamus berisi
id syscall, yang diteruskan ke fungsi Util syscall_name(), yang menerjemahkan
nomor syscall mentah ke string nama syscall yang sesuai). Keluarannya adalah
ditampilkan setelah semua peristiwa dalam jejak diproses, dengan memanggil
print_syscall_totals() dari handler trace_end() dipanggil di akhir skrip
pengolahan.

Skrip terakhir yang menghasilkan output yang ditunjukkan di atas ditampilkan secara keseluruhan di bawah ini
(syscall_name() helper belum tersedia, Anda hanya dapat menangani id untuk saat ini):

.ft C
impor os
impor sys

sys.path.append(os.environ['PERF_EXEC_PATH'] + \
'/scripts/python/Perf-Trace-Util/lib/Perf/Trace')

dari impor perf_trace_context *
dari impor Inti *
dari Util impor *

panggilan sys = autodict()

def jejak_akhir():
print_syscall_total()

def raw_syscalls__sys_enter(nama_acara, konteks, common_cpu,
common_secs, common_nsecs, common_pid, common_comm,
id, argumen):
coba:
panggilan sistem[id] += 1
kecuali TypeError:
syscall[id] = 1

def print_syscall_totals():
jika for_comm bukan Tidak Ada:
print "\nsyscall event untuk %s:\n\n" % (for_comm),
lain:
print "\nsyscall event:\n\n",

print "%-40s %10s\n" % ("event", "count"),
print "%-40s %10s\n" % ("------------------------------------- ---", \
"-----------"),

untuk id, val di sort(syscalls.iteritems(), key = lambda(k, v): (v, k), \
terbalik = Benar):
print "%-40s %10d\n" % (nama_panggilan(id), val),
.ft

Script dapat dijalankan seperti sebelumnya:

# skrip perf -s syscall-counts.py

Itulah langkah-langkah penting dalam menulis dan menjalankan skrip. Prosesnya bisa
digeneralisasi ke setiap titik jejak atau kumpulan titik jejak yang Anda minati - pada dasarnya temukan
tracepoint yang Anda minati dengan melihat daftar acara yang tersedia yang ditunjukkan oleh
Perf daftar dan/atau lihat di /sys/kernel/debug/tracing event untuk detail event dan field
info, rekam data jejak yang sesuai menggunakan Perf catatan, melewatinya daftar
acara menarik, buat skrip kerangka menggunakan Perf naskah -g ular sanca dan memodifikasi
kode untuk mengumpulkan dan menampilkannya untuk kebutuhan khusus Anda.

Setelah Anda selesai melakukannya, Anda mungkin akan mendapatkan skrip tujuan umum yang ingin Anda simpan
sekitar dan telah tersedia untuk digunakan di masa depan. Dengan menulis beberapa skrip shell yang sangat sederhana
dan meletakkannya di tempat yang tepat, Anda dapat membuat skrip Anda terdaftar di samping yang lain
skrip yang terdaftar oleh Perf naskah -l perintah misalnya:

.ft C
root@tropicana:~# skrip perf -l
Daftar skrip pelacakan yang tersedia:
latensi bangun di seluruh sistem min/maks/latensi bangun rata-rata
rw-by-file aktivitas r/w untuk suatu program, berdasarkan file
aktivitas r/w seluruh sistem rw-by-pid
.ft

Efek samping yang bagus dari melakukan ini adalah Anda juga kemudian menangkap yang mungkin panjang Perf
catatan perintah yang diperlukan untuk merekam acara untuk skrip.

Agar skrip muncul sebagai built-in skrip, Anda menulis dua skrip sederhana, satu untuk
rekaman dan satu untuk pelaporan.

Grafik catatan skrip adalah skrip Shell dengan nama dasar yang sama dengan skrip Anda, tetapi dengan
-rekaman ditambahkan. Skrip shell harus dimasukkan ke dalam perf/scripts/python/bin
direktori di pohon sumber kernel. Dalam skrip itu, Anda menulis Perf catatan
baris perintah yang diperlukan untuk skrip Anda:

.ft C
# cat kernel-source/tools/perf/scripts/python/bin/syscall-counts-record

#!/ bin / bash
catatan perf -a -e raw_syscalls:sys_enter
.ft

Grafik melaporkan skrip juga merupakan skrip Shell dengan nama dasar yang sama dengan skrip Anda, tetapi dengan
-laporan ditambahkan. Itu juga harus ditempatkan di direktori perf/scripts/python/bin. Di dalam
skrip itu, Anda menulis Perf naskah -s baris perintah yang diperlukan untuk menjalankan skrip Anda:

.ft C
# cat kernel-source/tools/perf/scripts/python/bin/syscall-counts-report

#!/ bin / bash
# deskripsi: jumlah panggilan sistem di seluruh sistem
skrip perf -s ~/libexec/perf-core/scripts/python/syscall-counts.py
.ft

Perhatikan bahwa lokasi skrip Python yang diberikan dalam skrip Shell ada di
direktori libexec/perf-core/scripts/python - ini adalah tempat skrip akan disalin oleh
membuat install ketika Anda menginstal perf. Untuk instalasi untuk menginstal skrip Anda di sana,
skrip Anda harus ditempatkan di direktori perf/scripts/python di sumber kernel
pohon:

.ft C
# ls -al kernel-source/tools/perf/scripts/python

root@tropicana:/home/trz/src/tip# ls -al alat/perf/scripts/python
Jumlah 32
drwxr-xr-x 4 trz trz 4096 2010-01-26 22:30 .
drwxr-xr-x 4 trz trz 4096 2010-01-26 22:29 ..
drwxr-xr-x 2 trz trz 4096 2010-01-26 22:29 bin
-rw-r--r-- 1 trz trz 2548 2010-01-26 22:29 check-perf-script.py
drwxr-xr-x 3 trz trz 4096 2010-01-26 22:49 Perf-Trace-Util
-rw-r--r-- 1 trz trz 1462 2010-01-26 22:30 syscall-counts.py
.ft

Setelah Anda selesai melakukannya (jangan lupa untuk melakukan yang baru membuat install, jika tidak, skrip Anda tidak akan
muncul pada saat run-time), Perf naskah -l harus menunjukkan entri baru untuk skrip Anda:

.ft C
root@tropicana:~# skrip perf -l
Daftar skrip pelacakan yang tersedia:
latensi bangun di seluruh sistem min/maks/latensi bangun rata-rata
rw-by-file aktivitas r/w untuk suatu program, berdasarkan file
aktivitas r/w seluruh sistem rw-by-pid
syscall-counts jumlah syscall seluruh sistem
.ft

Anda sekarang dapat melakukan langkah perekaman melalui Perf naskah catatan:

# catatan skrip perf syscall-counts

dan tampilkan outputnya menggunakan Perf naskah melaporkan:

# laporan skrip perf syscall-counts

STARTER SKRIP


Anda dapat dengan cepat mulai menulis skrip untuk kumpulan data jejak tertentu dengan
menghasilkan skrip kerangka menggunakan Perf naskah -g ular sanca dalam direktori yang sama dengan an
file jejak perf.data yang ada. Itu akan menghasilkan skrip starter yang berisi handler
untuk setiap jenis peristiwa dalam file pelacakan; itu hanya mencetak setiap bidang yang tersedia untuk
setiap peristiwa dalam file jejak.

Anda juga dapat melihat skrip yang ada di ~/libexec/perf-core/scripts/python untuk
contoh khas yang menunjukkan cara melakukan hal-hal dasar seperti data peristiwa agregat, hasil cetak,
dll. Juga, skrip check-perf-script.py, meskipun tidak menarik untuk hasilnya,
mencoba menjalankan semua fitur skrip utama.

EVENT PANGAN


Saat skrip perf dipanggil menggunakan skrip jejak, skrip yang ditentukan pengguna handler fungsi is
dipanggil untuk setiap peristiwa dalam jejak. Jika tidak ada fungsi handler yang ditentukan untuk yang diberikan
jenis acara, acara tersebut diabaikan (atau diteruskan ke a jejak_ditangani fungsi, lihat di bawah) dan
acara berikutnya diproses.

Sebagian besar nilai bidang acara diteruskan sebagai argumen ke fungsi pengendali; beberapa
yang kurang umum tidak - itu tersedia sebagai panggilan kembali ke perf yang dapat dieksekusi
(Lihat di bawah).

Sebagai contoh, perintah perf record berikut dapat digunakan untuk merekam semua sched_wakeup
kejadian dalam sistem:

# catatan perf -a -e sched:sched_wakeup

Jejak yang dimaksudkan untuk diproses menggunakan skrip harus direkam dengan opsi di atas: -a
untuk mengaktifkan pengumpulan seluruh sistem.

File format untuk acara sched_wakep mendefinisikan bidang berikut (lihat
/sys/kernel/debug/tracing/events/sched/sched_wakeup/format):

.ft C
format:
bidang:common_type pendek yang tidak ditandatangani;
bidang: char common_flags yang tidak ditandatangani;
bidang: unsigned char common_preempt_count;
bidang:int common_pid;

bidang:char comm[TASK_COMM_LEN];
bidang:pid_t pid;
bidang: int prio;
bidang:int sukses;
bidang:int target_cpu;
.ft

Fungsi handler untuk event ini akan didefinisikan sebagai:

.ft C
def sched__sched_wakeup(nama_acara, konteks, common_cpu, common_secs,
common_nsecs, common_pid, common_comm,
comm, pid, prio, sukses, target_cpu):
lulus
.ft

Fungsi handler mengambil bentuk subsystem__event_name.

Argumen common_* dalam daftar argumen handler adalah kumpulan argumen yang diteruskan ke
semua event handler; beberapa bidang sesuai dengan bidang common_* dalam format
file, tetapi beberapa disintesis, dan beberapa bidang common_* tidak cukup umum untuk
diteruskan ke setiap acara sebagai argumen tetapi tersedia sebagai fungsi perpustakaan.

Berikut adalah deskripsi singkat dari masing-masing argumen peristiwa invarian:

event_name nama acara sebagai teks
konteks 'cookie' buram yang digunakan dalam panggilan kembali ke perf
common_cpu cpu tempat kejadian terjadi
common_secs bagian detik dari stempel waktu acara
common_nsecs bagian nsecs dari stempel waktu acara
common_pid pid dari tugas saat ini
common_comm nama proses saat ini

Semua bidang yang tersisa dalam file format acara memiliki rekanan sebagai penangan
argumen fungsi dengan nama yang sama, seperti yang dapat dilihat pada contoh di atas.

Di atas memberikan dasar-dasar yang diperlukan untuk mengakses langsung setiap bidang dari setiap acara di a
trace, yang mencakup 90% dari apa yang perlu Anda ketahui untuk menulis skrip trace yang berguna. NS
bagian di bawah ini menutupi sisanya.

SCRIPT LAYOUT


Setiap skrip perf skrip Python harus dimulai dengan menyiapkan jalur pencarian modul Python dan
'mengimpor' beberapa modul dukungan (lihat deskripsi modul di bawah):

.ft C
impor os
impor sys

sys.path.append(os.environ['PERF_EXEC_PATH'] + \
'/scripts/python/Perf-Trace-Util/lib/Perf/Trace')

dari impor perf_trace_context *
dari impor Inti *
.ft

Sisa skrip dapat berisi fungsi handler dan fungsi pendukung dalam urutan apa pun.

Selain fungsi event handler yang dibahas di atas, setiap skrip dapat mengimplementasikan satu set
dari fungsi opsional:

jejak_begin, jika didefinisikan, dipanggil sebelum peristiwa apa pun diproses dan memberikan skrip a
kesempatan untuk melakukan tugas penyiapan:

.ft C
def jejak_mulai:
lulus
.ft

jejak_akhir, jika didefinisikan, dipanggil setelah semua peristiwa diproses dan memberikan skrip a
kesempatan untuk melakukan tugas akhir skrip, seperti menampilkan hasil:

.ft C
def jejak_akhir:
lulus
.ft

jejak_tidak tertangani, jika didefinisikan, dipanggil untuk setiap event yang tidak memiliki handler
didefinisikan secara eksplisit untuk itu. Set standar argumen umum dilewatkan ke dalamnya:

.ft C
def trace_unhandled(nama_event, konteks, common_cpu, common_secs,
common_nsecs, common_pid, common_comm):
lulus
.ft

Bagian yang tersisa memberikan deskripsi dari masing-masing skrip perf bawaan yang tersedia
Modul Python dan fungsi terkaitnya.

TERSEDIA MODUL DAN FUNGSI


Bagian berikut menjelaskan fungsi dan variabel yang tersedia melalui berbagai kinerja
skrip modul Python. Untuk menggunakan fungsi dan variabel dari modul yang diberikan, tambahkan
sesuai dari XXXX mengimpor baris ke skrip skrip perf Anda.

Inti.py Modul
Fungsi-fungsi ini menyediakan beberapa fungsi penting untuk skrip pengguna.

Grafik bendera_str dan simbol_str fungsi menyediakan string yang dapat dibaca manusia untuk bendera dan simbolis
bidang. Ini sesuai dengan string dan nilai yang diuraikan dari mencetak fmt bidang dari
file format acara:

flag_str(event_name, field_name, field_value) - mengembalikan representasi string yang sesuai dengan field_value untuk field flag field_name dari event event_name
symbol_str(event_name, field_name, field_value) - mengembalikan representasi string yang sesuai dengan field_value untuk field_name bidang simbolik dari event event_name

Grafik otodik function mengembalikan jenis kamus Python khusus yang mengimplementasikan Perl's
menghidupkan otomatis hash di Python yaitu dengan hash autovivifying, Anda dapat menetapkan hash bersarang
nilai tanpa harus bersusah payah menciptakan level menengah jika tidak
ada.

autodict() - mengembalikan instance kamus autovivifying

perf_trace_context Modul
Beberapa umum bidang dalam file format acara tidak terlalu umum, tetapi perlu
tetap dapat diakses oleh skrip pengguna.

perf_trace_context mendefinisikan satu set fungsi yang dapat digunakan untuk mengakses data ini di
konteks peristiwa saat ini. Masing-masing fungsi ini mengharapkan variabel konteks, yaitu
sama dengan variabel konteks yang diteruskan ke setiap event handler sebagai argumen kedua.

common_pc(context) - mengembalikan jumlah common_preempt untuk acara saat ini
common_flags(context) - mengembalikan common_flags untuk acara saat ini
common_lock_depth(context) - mengembalikan common_lock_depth untuk acara saat ini

Util.py Modul
Berbagai fungsi utilitas untuk digunakan dengan skrip perf:

nsecs(secs, nsecs) - mengembalikan total nsecs yang diberikan pasangan secs/nsecs
nsecs_secs(nsecs) - mengembalikan seluruh bagian detik yang diberikan nsecs
nsecs_nsecs(nsecs) - mengembalikan sisa nsecs yang diberikan nsecs
nsecs_str(nsecs) - mengembalikan string yang dapat dicetak dalam bentuk secs.nsecs
avg(total, n) - mengembalikan rata-rata yang diberikan jumlah dan jumlah nilai

Gunakan perf-script-python online menggunakan layanan onworks.net


Server & Workstation Gratis

Unduh aplikasi Windows & Linux

  • 1
    VBA-M (Diarsipkan - Sekarang di Github)
    VBA-M (Diarsipkan - Sekarang di Github)
    Proyek telah pindah ke
    https://github.com/visualboyadvance-m/visualboyadvance-m
    Fitur: Kreasi curang, simpan status multi
    sistem, mendukung gba, gbc, gb, sgb,
    sgb2Tu...
    Unduh VBA-M (Diarsipkan - Sekarang di Github)
  • 2
    Stacer
    Stacer
    Pengoptimal dan Pemantauan Sistem Linux
    Repositori Github:
    https://github.com/oguzhaninan/Stacer.
    Audiens: Pengguna Akhir/Desktop. Pengguna
    antarmuka: Qt. Pemrograman La...
    Unduh Stacer.dll
  • 3
    Oranye Rubah
    Oranye Rubah
    Fork dari TeamWinRecoveryProject(TWRP)
    dengan banyak fungsi tambahan, desain ulang
    dan lebih banyak Fitur: Mendukung Treble dan
    ROM non-Treble Kernel Oreo terbaru,
    dibuat...
    Unduh OrangeFox.dll
  • 4
    itop - Sumber Terbuka ITSM CMDB
    itop - Sumber Terbuka ITSM CMDB
    Portal Operasi TI: pembukaan lengkap
    sumber, ITIL, layanan berbasis web
    alat manajemen termasuk sepenuhnya
    CMDB yang dapat disesuaikan, sistem meja bantuan dan
    seorang pria dokumen...
    Unduh ittop - ITSM CMDB OpenSource
  • 5
    Clementine
    Clementine
    Clementine adalah musik multi-platform
    pemain dan penyelenggara perpustakaan terinspirasi oleh
    Amarok 1.4. Ini memiliki cepat dan
    antarmuka yang mudah digunakan, dan memungkinkan Anda untuk
    cari dan...
    Unduh Clementine.dll
  • 6
    XISMuS
    XISMuS
    PERHATIAN: Pembaruan kumulatif 2.4.3 telah
    telah dirilis!! Pembaruan berfungsi untuk semua
    versi 2.xx sebelumnya. Jika meningkatkan
    dari versi v1.xx, silakan unduh dan
    i ...
    Unduh XISMuS.dll
  • Lebih banyak lagi »

Perintah Linux

Ad