EnglishFrenchSpanyol

Ad


Favicon OnWorks

perf-script-python - Dalam Talian di Awan

Jalankan perf-script-python dalam penyedia pengehosan percuma OnWorks melalui Ubuntu Online, Fedora Online, emulator dalam talian Windows atau emulator dalam talian MAC OS

Ini ialah arahan perf-script-python yang boleh dijalankan dalam penyedia pengehosan percuma OnWorks menggunakan salah satu daripada berbilang stesen kerja dalam talian percuma kami seperti Ubuntu Online, Fedora Online, emulator dalam talian Windows atau emulator dalam talian MAC OS.

JADUAL:

NAMA


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

SINOPSIS


sempurna skrip [-s [Python]:skrip[.py] ]

DESCRIPTION


Pilihan skrip perf ini digunakan untuk memproses data skrip perf menggunakan Python terbina dalam perf
jurubahasa. Ia membaca dan memproses fail input dan memaparkan hasil surih
analisis yang dilaksanakan dalam skrip Python yang diberikan, jika ada.

A CEPAT CONTOH


Bahagian ini menunjukkan proses, mula hingga selesai, mencipta skrip Python yang berfungsi
mengagregat dan mengekstrak maklumat berguna daripada aliran skrip perf mentah. Anda boleh mengelak
membaca seluruh dokumen ini jika contoh sudah mencukupi untuk anda; selebihnya
dokumen menyediakan butiran lanjut pada setiap langkah dan menyenaraikan fungsi perpustakaan yang tersedia untuk
penulis skrip.

Contoh ini sebenarnya memperincikan langkah-langkah yang digunakan untuk mencipta syscall-counts skrip
anda lihat apabila anda menyenaraikan skrip skrip perf yang tersedia melalui sempurna skrip -l. Oleh itu, ini
skrip juga menunjukkan cara untuk menyepadukan skrip anda ke dalam senarai tujuan umum sempurna
skrip skrip yang disenaraikan oleh arahan itu.

Skrip syscall-counts ialah skrip mudah, tetapi menunjukkan semua idea asas
diperlukan untuk mencipta skrip yang berguna. Berikut ialah contoh outputnya (nama syscall ialah
belum disokong, ia akan muncul sebagai nombor):

.ft C
acara syscall:

kiraan peristiwa
--------------------------------------- ------------------------- -
sys_write 455067
sys_getdents 4072
sys_close 3037
sys_swapoff 1769
sys_read 923
sys_sched_setparam 826
sys_open 331
sys_newfstat 326
sys_mmap 217
sys_munmap 216
sys_futex 141
sys_select 102
sys_poll 84
sys_setimer 12
sys_writev 8
15 8
sys_lseek 7
sys_rt_sigprocmask 6
sys_wait4 3
sys_ioctl 3
sys_set_robust_list 1
sys_exit 1
56 1
akses_sys 1
.ft

Pada asasnya tugas kami adalah untuk menyimpan pengiraan per-syscall yang dikemas kini setiap kali sistem
panggilan berlaku dalam sistem. Skrip kami akan melakukannya, tetapi kami perlu merekodkan data terlebih dahulu
yang akan diproses oleh skrip itu. Secara teorinya, terdapat beberapa cara yang boleh kita lakukan
berbuat demikian:

· kita boleh mendayakan setiap peristiwa di bawah direktori penjejakan/peristiwa/syscalls, tetapi ini adalah
lebih 600 syscalls, jauh melebihi bilangan yang dibenarkan oleh perf. Syscall individu ini
acara bagaimanapun akan berguna jika kita ingin menggunakan panduan yang kita perolehi kemudiannya
skrip tujuan umum untuk menelusuri dan mendapatkan lebih terperinci tentang syscall individu bagi
faedah.

· kita boleh mendayakan sys_enter dan/atau sys_exit syscalls yang terdapat di bawah
tracing/events/raw_syscalls. Ini dipanggil untuk semua syscall; yang id bidang boleh
digunakan untuk membezakan antara nombor syscall individu.

Untuk skrip ini, kita hanya perlu tahu bahawa syscall telah dimasukkan; kita tak kisah macam mana
keluar, jadi kami akan gunakan sempurna rekod untuk merekodkan hanya peristiwa sys_enter:

.ft C
# rekod perf -a -e raw_syscalls:sys_enter

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

Pilihan pada dasarnya mengatakan untuk mengumpul data untuk setiap acara syscall seluruh sistem dan
multipleks output per-cpu ke dalam satu aliran. Strim tunggal itu akan direkodkan dalam
fail dalam direktori semasa yang dipanggil perf.data.

Sebaik sahaja kami mempunyai fail perf.data yang mengandungi data kami, kami boleh menggunakan -g sempurna skrip pilihan untuk
hasilkan skrip Python yang akan mengandungi pengendali panggil balik untuk setiap jenis acara yang terdapat dalam
strim jejak perf.data (untuk butiran lanjut, lihat bahagian SKRIP PERMULA).

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

Fail output yang dibuat juga dalam direktori semasa dinamakan
perf-script.py. Berikut ialah fail keseluruhannya:

# pengendali acara skrip perf, dijana oleh skrip perf -g python
# Dilesenkan di bawah syarat Lesen GNU GPL versi 2

# Medan pengendali acara common_* ialah medan paling berguna yang biasa digunakan
# semua acara. Ia tidak semestinya sepadan dengan medan 'common_*'
# dalam format fail. Medan tersebut tidak tersedia seperti yang boleh dilakukan oleh para pengendali
# dapat diambil menggunakan fungsi Python dalam bentuk common_*(context).
# Lihat Dokumentasi perf-script-python untuk senarai fungsi yang tersedia.

mengimport anda
import sys

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

daripada import perf_trace_context *
daripada Import teras *

def trace_begin():
cetak "dalam jejak_mulakan"

def trace_end():
cetak "dalam jejak_akhir"

def raw_syscallls__sys_enter(event_name, context, common_cpu,
common_secs, common_secs, common_pid, common_comm,
id, args):
print_header(event_name, common_cpu, common_secs, common_secs,
common_pid, common_comm)

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

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

def print_header(event_name, cpu, secs, nsecs, pid, comm):
cetak "%-20s %5u %05u.%09u %8u %-20s " % \
(event_name, cpu, secs, nsecs, pid, comm),
.ft

Di bahagian atas ialah blok ulasan diikuti dengan beberapa penyata import dan laluan tambahan yang
setiap skrip skrip perf harus disertakan.

Berikutan itu ialah beberapa fungsi yang dijana, trace_begin() dan trace_end(), iaitu
dipanggil pada awal dan akhir skrip masing-masing (untuk butiran lanjut, lihat
SCRIPT_LAYOUT bahagian di bawah).

Berikutan itu ialah kategori acara pengendali fungsi menghasilkan satu untuk setiap acara dalam sempurna
rekod pengeluaran. Fungsi pengendali mengambil bentuk subsistemnama acara, and mengandungi bernama
parameter, 1 Untuk setiap bidang in yang acara; in ini kes, ada hanyalah 1 acara,
raw_syscallssys_enter(). (lihat bahagian PENGENDALI ACARA di bawah untuk maklumat lanjut tentang acara
pengendali).

Pasangan terakhir fungsi adalah, seperti fungsi permulaan dan akhir, dijana untuk setiap
skrip. Yang pertama, trace_unhandled(), dipanggil setiap kali skrip menemui acara dalam
fail perf.data yang tidak sepadan dengan mana-mana pengendali acara dalam skrip. Ini boleh
bermakna sama ada langkah rekod merekodkan jenis acara yang tidak begitu diminatinya,
atau skrip dijalankan terhadap fail surih yang tidak sepadan dengan skrip.

Skrip yang dijana oleh pilihan -g hanya mencetak satu baris untuk setiap peristiwa yang terdapat dalam jejak
stream iaitu pada asasnya ia hanya membuang peristiwa dan nilai parameternya kepada stdout. The
fungsi print_header() hanyalah fungsi utiliti yang digunakan untuk tujuan itu. Jom tukar nama
skrip dan jalankannya untuk melihat output lalai:

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

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

Sudah tentu, untuk skrip ini, kami tidak berminat untuk mencetak setiap acara surih, sebaliknya
mengagregatkannya dengan cara yang berguna. Oleh itu, kami akan menyingkirkan semua yang berkaitan dengan percetakan juga
sebagai fungsi trace_begin() dan trace_unhandled(), yang tidak akan kami gunakan. Itu pergi
kami dengan rangka minimalis ini:

.ft C
mengimport anda
import sys

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

daripada import perf_trace_context *
daripada Import teras *

def trace_end():
cetak "dalam jejak_akhir"

def raw_syscallls__sys_enter(event_name, context, common_cpu,
common_secs, common_secs, common_pid, common_comm,
id, args):
.ft

Dalam trace_end(), kita hanya akan mencetak hasilnya, tetapi pertama-tama kita perlu menjana beberapa hasil
untuk mencetak. Untuk melakukan itu, kita perlu meminta pengendali sys_enter() melakukan pengiraan yang diperlukan
sehingga semua peristiwa telah dikira. Jadual cincang yang diindeks oleh id syscall ialah cara yang baik untuk
menyimpan maklumat itu; setiap kali pengendali sys_enter() dipanggil, kami hanya menambah
kiraan yang dikaitkan dengan entri cincang yang diindeks oleh id syscall itu:

.ft C
syscalls = autodict()

cuba:
syscalls[id] += 1
kecuali TypeError:
syscalls[id] = 1
.ft

Syscalls autodikt objek ialah sejenis kamus Python khas (dilaksanakan dalam
Core.py) yang melaksanakan Perl's autovivifying cincang dalam Python iaitu dengan autovivifying
cincang, anda boleh menetapkan nilai cincang bersarang tanpa perlu bersusah payah membuat
tahap pertengahan jika ia tidak wujud cth syscalls[comm][pid][id] = 1 akan mencipta
tahap cincang perantaraan dan akhirnya tetapkan nilai 1 kepada entri cincang untuk id (kerana
nilai yang diberikan bukan objek cincang itu sendiri, nilai awal diberikan dalam
Pengecualian TypeError. Nah, mungkin ada cara yang lebih baik untuk melakukan ini dalam Python tetapi itulah yang
berfungsi buat masa ini).

Meletakkan kod itu ke dalam pengendali raw_syscalls__sys_enter(), kami secara berkesan berakhir dengan
kamus peringkat tunggal dikunci pada id syscall dan mempunyai kiraan yang telah kami hitung sebagai nilai.

Fungsi print_syscall_totals() berulang ke atas entri dalam kamus dan
memaparkan baris untuk setiap entri yang mengandungi nama syscall (kunci kamus mengandungi
id syscall, yang dihantar ke fungsi Util syscall_name(), yang diterjemahkan
nombor syscall mentah kepada rentetan nama syscall yang sepadan). Outputnya ialah
dipaparkan selepas semua peristiwa dalam surih telah diproses, dengan memanggil
fungsi print_syscall_totals() daripada pengendali trace_end() dipanggil pada penghujung skrip
pemprosesan.

Skrip akhir yang menghasilkan output yang ditunjukkan di atas ditunjukkan secara keseluruhannya di bawah
(syscall_name() helper belum tersedia, anda hanya boleh berurusan dengan id buat masa ini):

.ft C
mengimport anda
import sys

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

daripada import perf_trace_context *
daripada Import teras *
daripada Import *

syscalls = autodict()

def trace_end():
print_syscall_totals()

def raw_syscallls__sys_enter(event_name, context, common_cpu,
common_secs, common_secs, common_pid, common_comm,
id, args):
cuba:
syscalls[id] += 1
kecuali TypeError:
syscalls[id] = 1

def print_syscall_totals():
jika for_comm bukan Tiada:
cetak "\nsyscall acara untuk %s:\n\n" % (for_comm),
lain:
cetak "\nsyscall acara:\n\n",

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

untuk id, val in sorted(syscallls.iteritems(), key = lambda(k, v): (v, k), \
terbalik = Benar):
cetak "%-40s %10d\n" % (syscall_name(id), val),
.ft

Skrip boleh dijalankan seperti sebelumnya:

# skrip perf -s syscall-counts.py

Jadi itu adalah langkah penting dalam menulis dan menjalankan skrip. Prosesnya boleh
digeneralisasikan kepada mana-mana titik jejak atau set titik jejak yang anda minati - pada asasnya cari
titik jejak yang anda minati dengan melihat senarai acara tersedia yang ditunjukkan oleh
sempurna senarai dan/atau lihat dalam /sys/kernel/debug/tracing acara untuk acara dan medan terperinci
maklumat, rekod data surih yang sepadan menggunakan sempurna rekod, memberikannya senarai
acara menarik, menjana skrip rangka menggunakan sempurna skrip -g ular sawa dan ubah suai
kod untuk mengagregat dan memaparkannya untuk keperluan khusus anda.

Selepas anda melakukannya, anda mungkin mendapat skrip tujuan umum yang ingin anda simpan
sekitar dan tersedia untuk kegunaan masa hadapan. Dengan menulis beberapa skrip shell yang sangat mudah
dan meletakkannya di tempat yang betul, anda boleh menyenaraikan skrip anda bersama yang lain
skrip yang disenaraikan oleh sempurna skrip -l perintah cth:

.ft C
root@tropicana:~# skrip perf -l
Senarai skrip surih yang tersedia:
kependaman bangun-pendam seluruh sistem min/maks/purata
rw-oleh-fail aktiviti r/w untuk program, mengikut fail
aktiviti r/w seluruh sistem rw-oleh-pid
.ft

Kesan sampingan yang bagus untuk melakukan ini ialah anda juga kemudian menangkap yang mungkin panjang sempurna
rekod arahan yang diperlukan untuk merekodkan peristiwa untuk skrip.

Agar skrip muncul sebagai a terbina dalam skrip, anda menulis dua skrip mudah, satu untuk
rakaman dan satu untuk melaporkan.

. rekod skrip ialah skrip shell dengan nama asas yang sama seperti skrip anda, tetapi dengan
-rekod dilampirkan. Skrip shell hendaklah dimasukkan ke dalam perf/scripts/python/bin
direktori dalam pokok sumber kernel. Dalam skrip itu, anda menulis sempurna rekod
baris arahan diperlukan untuk skrip anda:

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

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

. melaporkan skrip juga merupakan skrip shell dengan nama asas yang sama seperti skrip anda, tetapi dengan
-laporan dilampirkan. Ia juga harus terletak dalam direktori perf/scripts/python/bin. Dalam
skrip itu, anda tulis sempurna skrip -s baris arahan yang diperlukan untuk menjalankan skrip anda:

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

#!/ bin / bash
# perihalan: kiraan syscall seluruh sistem
skrip perf -s ~/libexec/perf-core/scripts/python/syscall-counts.py
.ft

Ambil perhatian bahawa lokasi skrip Python yang diberikan dalam skrip shell adalah dalam
direktori libexec/perf-core/scripts/python - di sinilah skrip akan disalin oleh
membuat memasang apabila anda memasang perf. Untuk pemasangan memasang skrip anda di sana,
skrip anda perlu ditempatkan dalam direktori perf/scripts/python dalam sumber kernel
pokok:

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

root@tropicana:/home/trz/src/tip# ls -al tools/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

Sebaik sahaja anda telah melakukannya (jangan lupa untuk melakukan yang baru membuat memasang, jika tidak skrip anda tidak akan
muncul semasa run-time), sempurna skrip -l harus menunjukkan entri baharu untuk skrip anda:

.ft C
root@tropicana:~# skrip perf -l
Senarai skrip surih yang tersedia:
kependaman bangun-pendam seluruh sistem min/maks/purata
rw-oleh-fail aktiviti r/w untuk program, mengikut fail
aktiviti r/w seluruh sistem rw-oleh-pid
syscall-counts kiraan syscall seluruh sistem
.ft

Anda kini boleh melakukan langkah rekod melalui sempurna skrip rekod:

# skrip perf rekod syscall-counts

dan paparkan output menggunakan sempurna skrip melaporkan:

# skrip perf melaporkan syscall-counts

STARTER SKRIP


Anda boleh mula menulis skrip dengan cepat untuk set data surih tertentu dengan
menghasilkan skrip rangka menggunakan sempurna skrip -g ular sawa dalam direktori yang sama dengan an
fail surih perf.data sedia ada. Itu akan menghasilkan skrip pemula yang mengandungi pengendali
untuk setiap jenis acara dalam fail surih; ia hanya mencetak setiap medan yang tersedia untuk
setiap peristiwa dalam fail surih.

Anda juga boleh melihat skrip sedia ada dalam ~/libexec/perf-core/scripts/python Untuk
contoh biasa yang menunjukkan cara melakukan perkara asas seperti data acara agregat, hasil cetakan,
dsb. Selain itu, skrip check-perf-script.py, walaupun tidak menarik untuk keputusannya,
cuba menggunakan semua ciri skrip utama.

PERISTIWA PENGENDALI


Apabila skrip perf digunakan menggunakan skrip surih, ditentukan pengguna pengendali fungsi is
dipanggil untuk setiap peristiwa dalam jejak. Jika tiada fungsi pengendali yang ditentukan untuk sesuatu yang diberikan
jenis acara, acara diabaikan (atau diserahkan kepada a jejak_dikendali fungsi, lihat di bawah) dan
acara seterusnya diproses.

Kebanyakan nilai medan acara dihantar sebagai argumen kepada fungsi pengendali; sebahagian daripada
yang kurang biasa tidak - yang tersedia sebagai panggilan kembali ke perf executable
(lihat di bawah).

Sebagai contoh, arahan rekod perf berikut boleh digunakan untuk merekod semua sched_wakeup
peristiwa dalam sistem:

# rekod perf -a -e sched:sched_wakeup

Jejak yang dimaksudkan untuk diproses menggunakan skrip hendaklah direkodkan dengan pilihan di atas: -a
untuk membolehkan pengumpulan seluruh sistem.

Fail format untuk acara sched_wakep mentakrifkan medan berikut (lihat
/sys/kernel/debug/tracing/events/sched/sched_wakeup/format):

.ft C
format:
field:unsigned short common_type;
field:unsigned char common_flags;
field:unsigned char common_preempt_count;
medan:int common_pid;

medan:char comm[TASK_COMM_LEN];
medan:pid_t pid;
field:int prio;
field:int kejayaan;
medan:int target_cpu;
.ft

Fungsi pengendali untuk acara ini akan ditakrifkan sebagai:

.ft C
def sched__sched_wakeup(event_name, context, common_cpu, common_secs,
common_nsecs, common_pid, common_comm,
comm, pid, prio, success, target_cpu):
lulus
.ft

Fungsi pengendali mengambil bentuk subsystem__event_name.

Argumen common_* dalam senarai argumen pengendali ialah set argumen yang dihantar kepada
semua pengendali acara; sesetengah medan sepadan dengan medan common_* dalam format
fail, tetapi ada yang disintesis, dan beberapa medan common_* tidak cukup biasa untuk
dihantar kepada setiap peristiwa sebagai hujah tetapi tersedia sebagai fungsi perpustakaan.

Berikut ialah penerangan ringkas bagi setiap hujah peristiwa invarian:

event_name nama acara sebagai teks
konteks 'kuki' legap yang digunakan dalam panggilan kembali ke perf
common_cpu cpu tempat kejadian berlaku
common_secs bahagian saat cap waktu acara
common_nsecs bahagian nsecs cap waktu acara
common_pid pid tugas semasa
common_comm nama proses semasa

Semua medan yang tinggal dalam fail format acara mempunyai rakan sejawat sebagai pengendali
argumen fungsi dengan nama yang sama, seperti yang dapat dilihat dalam contoh di atas.

Di atas menyediakan asas yang diperlukan untuk mengakses secara langsung setiap medan setiap acara dalam a
jejak, yang merangkumi 90% daripada perkara yang anda perlu ketahui untuk menulis skrip jejak yang berguna. The
bahagian di bawah meliputi bahagian yang lain.

SCRIPT LAYOUT


Setiap skrip perf Skrip Python harus bermula dengan menyediakan laluan carian modul Python dan
'mengimport' beberapa modul sokongan (lihat penerangan modul di bawah):

.ft C
mengimport anda
import sys

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

daripada import perf_trace_context *
daripada Import teras *
.ft

Skrip selebihnya boleh mengandungi fungsi pengendali dan fungsi sokongan dalam sebarang susunan.

Selain daripada fungsi pengendali acara yang dibincangkan di atas, setiap skrip boleh melaksanakan satu set
fungsi pilihan:

jejak_bermula, jika ditakrifkan, dipanggil sebelum sebarang acara diproses dan memberikan skrip a
peluang untuk melakukan tugas persediaan:

.ft C
def trace_begin:
lulus
.ft

jejak_akhir, jika ditakrifkan, dipanggil selepas semua acara telah diproses dan memberikan skrip a
peluang untuk melakukan tugas akhir skrip, seperti hasil paparan:

.ft C
def trace_end:
lulus
.ft

jejak_tidak terurus, jika ditakrifkan, dipanggil selepas untuk sebarang acara yang tidak mempunyai pengendali
ditakrifkan secara eksplisit untuknya. Set standard argumen biasa dihantar ke dalamnya:

.ft C
def trace_unhandled(event_name, context, common_cpu, common_secs,
common_nsecs, common_pid, common_comm):
lulus
.ft

Bahagian selebihnya memberikan penerangan bagi setiap skrip perf terbina dalam yang tersedia
Modul Python dan fungsi berkaitannya.

TERSEDIA MODUL DAN FUNGSI


Bahagian berikut menerangkan fungsi dan pembolehubah yang tersedia melalui pelbagai perf
skrip modul Python. Untuk menggunakan fungsi dan pembolehubah daripada modul yang diberikan, tambahkan
sama dari XXXX mengimport baris ke skrip skrip perf anda.

Core.py Modul
Fungsi ini menyediakan beberapa fungsi penting kepada skrip pengguna.

. flag_str and symbol_str fungsi menyediakan rentetan yang boleh dibaca manusia untuk bendera dan simbolik
padang. Ini sepadan dengan rentetan dan nilai yang dihuraikan daripada cetak fmt ladang dari
fail format acara:

flag_str(event_name, field_name, field_value) - mengembalikan perwakilan rentetan yang sepadan dengan field_value untuk medan bendera field_name bagi event_name
symbol_str(event_name, field_name, field_value) - mengembalikan perwakilan rentetan yang sepadan dengan field_value untuk medan simbolik field_name bagi event_name

. autodikt fungsi mengembalikan jenis kamus Python khas yang melaksanakan Perl's
autovivifying cincang dalam Python iaitu dengan cincang autovivifying, anda boleh menetapkan cincang bersarang
nilai tanpa perlu bersusah payah mencipta tahap pertengahan jika tidak
wujud.

autodict() - mengembalikan contoh kamus autovivifying

perf_trace_context Modul
Sebahagian daripada biasa medan dalam fail format acara tidak begitu biasa, tetapi perlu
tetap boleh diakses oleh skrip pengguna.

perf_trace_context mentakrifkan satu set fungsi yang boleh digunakan untuk mengakses data ini dalam
konteks peristiwa semasa. Setiap fungsi ini mengharapkan pembolehubah konteks, iaitu
sama seperti pembolehubah konteks yang dihantar ke setiap pengendali acara sebagai hujah kedua.

common_pc(context) - mengembalikan kiraan common_preempt untuk acara semasa
common_flags(context) - mengembalikan common_flags untuk acara semasa
common_lock_depth(context) - mengembalikan common_lock_depth untuk acara semasa

Util.py Modul
Pelbagai fungsi utiliti untuk digunakan dengan skrip perf:

nsecs(secs, nsecs) - mengembalikan jumlah nsecs yang diberikan secs/secs pair
nsecs_secs(nsecs) - mengembalikan keseluruhan bahagian secs yang diberikan nsecs
nsecs_nsecs(nsecs) - mengembalikan baki nsecs yang diberikan nsecs
nsecs_str(nsecs) - mengembalikan rentetan yang boleh dicetak dalam bentuk secs.nsecs
avg(total, n) - mengembalikan purata diberi jumlah dan jumlah nilai

Gunakan perf-script-python dalam talian menggunakan perkhidmatan onworks.net


Pelayan & Stesen Kerja Percuma

Muat turun apl Windows & Linux

  • 1
    VBA-M (Diarkib - Kini di Github)
    VBA-M (Diarkib - Kini di Github)
    Projek telah berpindah ke
    https://github.com/visualboyadvance-m/visualboyadvance-m
    Ciri-ciri: Ciptaan menipu simpan statesmulti
    sistem, menyokong gba, gbc, gb, sgb,
    sgb2Tu...
    Muat turun VBA-M (Diarkib - Sekarang di Github)
  • 2
    Stacer
    Stacer
    Pengoptimum dan Pemantauan Sistem Linux
    Repositori Github:
    https://github.com/oguzhaninan/Stacer.
    Khalayak: Pengguna Akhir/Desktop. pengguna
    antara muka: Qt. Pengaturcaraan La...
    Muat turun Stacer
  • 3
    orangefox
    orangefox
    Fork TeamWinRecoveryProject(TWRP)
    dengan banyak fungsi tambahan, reka bentuk semula
    dan banyak lagi Ciri:Menyokong Treble dan
    bukan-Treble ROM kernel Oreo terkini,
    dibina...
    Muat turun OrangeFox
  • 4
    itop - ITSM CMDB OpenSource
    itop - ITSM CMDB OpenSource
    Portal Operasi IT: terbuka sepenuhnya
    sumber, ITIL, perkhidmatan berasaskan web
    alat pengurusan termasuk sepenuhnya
    CMDB boleh disesuaikan, sistem meja bantuan dan
    seorang lelaki dokumen...
    Muat turun itop - ITSM CMDB OpenSource
  • 5
    Clementine
    Clementine
    Clementine ialah muzik berbilang platform
    pemain dan penganjur perpustakaan yang diilhamkan oleh
    Amarok 1.4. Ia mempunyai puasa dan
    antara muka yang mudah digunakan, dan membolehkan anda
    cari dan...
    Muat turun Clementine
  • 6
    XISMuS
    XISMuS
    PERHATIAN: Kemas kini kumulatif 2.4.3 telah
    telah dibebaskan!! Kemas kini berfungsi untuk mana-mana
    versi 2.xx sebelumnya. Jika menaik taraf
    daripada versi v1.xx, sila muat turun dan
    i ...
    Muat turun XISMuS
  • Lebih »

Arahan Linux

Ad