str.decode(encoding="gb2312",errors="strict"在这里我们告诉python解释器用encoding参数所指定的来对str解码.标准的encoding可以查看这里
和简体中文相关的通常有gb2312,gb18030以及gbk(大多数BBS的中文encoding)
一篇参考http://hi.baidu.com/tornadory/blog/item/2fa5f0c36cf7bd5fb219a801.html
str.decode(encoding="gb2312",errors="strict"在这里我们告诉python解释器用encoding参数所指定的来对str解码.标准的encoding可以查看这里
$cc -g -c myprog.c utils.c -pg $cc -o myprog myprog.o utils.o -pg如果加上了"-g"选项(如上),则可以支持Line-by-line Profiling
$gprof myprof | more参考:
$ sudo perf record ./foo读取刚才生成的profile结果(默认perf.data)并显示分析结果:
$ sudo perf report输出结果类似
49.97% foo filter_bench [.] main 5.31% foo libc-2.12.1.so [.] 0x7aeab 0.36% foo libstdc++.so.6.0.15 [.] operator new[](unsigned long)注意这里libc-2.12.1.so中的symbol没有被load进来,所以无法显示具体的函数名而只能看见一个入口地址0x7aeab.
$ apt-get install libc6-dbg显示annotated code
$ sudo perf annotate运行一个命令并查看硬件counter:
$ perf stat --repeat 10 -e cycles:u \ -e instructions:u -e l1-dcache-loads:u -e l1-dcache-load-misses:u ./foo查看所有支持的硬件counter:
$ perf list参考:
$sudo opcontrol --init2 设置是否需要profile kernel,如果需要
$sudo opcontrol --vmlinux=/boot/vmlinux-`uname -r`如果不需要
$sudo opcontrol --no-vmlinux3 开始采集数据
$sudo opcontrol --start Using default event: CPU_CLK_UNHALTED:100000:0:1:1 Using 2.6+ OProfile kernel interface. Using log file /home/apc999/tempsession/samples/oprofiled.log Daemon started. Profiler running.4 查看oprofile状态
$sudo opcontrol --status Daemon running: pid 13892 Separate options: none vmlinux file: none Image filter: none Call-graph depth: 05 结束采集数据
$sudo opcontrol --stop6 结束oprofile daemon
$sudo opcontrol --shutdown