memset bzero性能测试 ltrace strace命令用法 kprobe技术介绍

2016-10-30 11:59:00
admin
原创 2975
摘要:memset bzero性能测试 ltrace strace命令用法 kprobe技术介绍

一、memset和bzero性能测试

1、void bzero(void *s, size_t n),位于strings.h;

2、void *memset(void *s, int c, size_t n),位于string.h;

3、bzero已经废弃,建议使用memset;

4、压测代码:memset_perf.cpp

5、压测方法:./memset_perf start_sleep_time loop_count block_size


calcMalloc性能数据(./memset_perf  3 10000 `expr 1024 \* 1024 \* 2`):

CLOCKS_PER_SECOND is 1000000.
cost is 730000, average is 0.000073.

CLOCKS_PER_SECOND is 1000000.
cost is 770000, average is 0.000077.

CLOCKS_PER_SECOND is 1000000.
cost is 700000, average is 0.000070.


性能结论:1000次malloc和free大概73微秒。


calcMemset性能数据(./memset_perf  3 10000 `expr 1024 \* 1024 \* 2`):

CLOCKS_PER_SECOND is 1000000.
cost is 39460000, average is 0.001315.

CLOCKS_PER_SECOND is 1000000.
cost is 14910000, average is 0.001491.

CLOCKS_PER_SECOND is 1000000.
cost is 11620000, average is 0.001162.


性能结论:memset初始化4M数据大概1200微秒。


二、ltrace和strace命令用法

1、ltrace用于追踪库函数调用,-p参数用于指定跟踪进程PID,-c参数用于计数和汇总;

2、strace用于追踪系统调用和信号-p参数用于指定跟踪进程PID,-c参数用于计数和汇总;


ltrace使用示例:

ltrace -c uptime

ltrace -c -p 26758


strace使用示例:

strace -c uptime

strace -c -p 26758


三、kprobe技术介绍

kprobe内核调试技术可以对绝大多数系统调用函数动态插入探测点,收集所需的调试信息,而不影响原来函数的执行。

发表评论
评论通过审核之后才会显示。