阿散井恋次(asan)

sddy008 分析技巧 2022-07-24 287 6

今天给各位分享asan的知识,其中也会对阿散井恋次进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!

本文目录一览:

asan对程序性能的影响

address sanitizer(简称asan)是一个用来检测c/c++程序的快速内存检测工具。相比valgrind的优点就是速度快,官方文档介绍对程序性能的降低2倍。

对Asan原理有兴趣的同学可以参考asan的算法这篇文章,它的实现原理就是在程序代码中插入一些自定义代码,如下:

编译前:

*address = ...; // or: ... = *address;

编译后:

if (IsPoisoned(address)) {undefined

ReportError(address, kAccessSize, kIsWrite);

}

*address = ...; // or: ... = *address;`

和valgrind明显不同的是,asan需要添加编译开关重新编译程序,好在不需要自己修改代码。而valgrind不需要编程程序就能直接运行。

address sanitizer集成在了clang编译器中,GCC 4.8版本以上才支持。我们线上程序默认都是使用gcc4.3编译,于是我测试时直接使用clang重新编译nginx:

--with-cc="clang" \

--with-cc-opt="-g -fPIC -fsanitize=address -fno-omit-frame-pointer"

其中with-cc是指定编译器,with-cc-opt指定编译选项, -fsanitize=address就是开启AddressSanitizer功能。

由于AddressSanitizer对nginx的影响较小,所以大压力测试时也能达到上万的并发,内存泄漏的问题很容易就定位了。

这里就不详细介绍内存泄漏的原因了,因为跟openssl的错误处理逻辑有关,是我自己实现的,没有普遍的参考意义。

最重要的是,知道valgrind和asan的使用场景和方法,遇到内存方面的问题能够快速修复。

性能热点分析

到此,经过改造的nginx程序没有core dump和内存泄漏方面的风险了。但这显然不是我们最关心的结果(因为代码本该如此),我们最关心的问题是:

1. 代码优化前,程序的瓶颈在哪里?能够优化到什么程度?

2. 代码优化后,优化是否彻底?会出现哪些新的性能热点和瓶颈?

这个时候我们就需要一些工具来检测程序的性能热点。

perf,oprofile,gprof,systemtap

东南亚国家联盟(ASAN)总部在哪?主要作用是什么?

主要作用为:(1)以平等与协作精神,共同努力促进本地区的经济增长、社会进步和文化发展;(2)遵循正义、国家关系准则和《联合国宪章》,促进本地区的和平与稳定;(3)促进经济、社会、文化、技术和科学等问题的合作与相互支援;(4)在教育、职业和技术及行政训练和研究设施方面互相支援;(5)在充分利用农业和工业、扩大贸易、改善交通运输、提高人民生活水平方面进行更有效的合作;(6)促进对东南亚问题的研究;(7)同具有相似宗旨和目标的国际和地区组织保持紧密和互利的合作,探寻与其更紧密的合作途径。

ASAN是那个国家的英文缩写

东南亚国家联盟(Associatioon of Southeast Asian Nations-ASAN)是这个吗?

关于asan和阿散井恋次的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。

评论

精彩评论
2024-07-22 00:45:10

支持楼上的!http://obsy.cnj8.com

2024-07-26 17:42:24

看帖不回帖都是耍流氓!http://www.dnf70.com/22.html

2024-08-05 19:37:36

今天的心情很不错啊http://u8tavr.mcgdp.com

2024-08-14 19:20:49

不是惊喜,是惊吓!http://gk2.xmfeilin.com

2024-09-15 20:32:35

这个帖子好无聊啊!http://www.guangcexing.net/voddetail/yGktkAAQz.html

2024-10-30 16:14:22

楼主就是我的榜样哦https://www.telegramlp.com/