valgrind检测php扩展的warning
今天在排查PHP扩展的bug,使用了valgrind检测内存问题:
1 |
valgrind php test.php |
发现如下WARNING信息:
1 |
warning:Warning: set address range perms: large range [0x395df000, 0xb95df000) (noaccess) |
网上说这应该是分配了一个比较大的内存导致的,仅仅是一个警告信息,valgrind并没有给出更多的细节。
所以,我采用了排除法,将我开发的PHP扩展关闭,发现问题依旧。然后关闭了opcache,发现问题消失,查看Opcache配置发现配置了一个2048MB的共享内存空间:
1 |
opcache.memory_consumption=2048 |
而valgrind提示的信息中,2个地址相减正好是大约2G的大小(用python):
1 2 3 4 |
>>> 0xb95df000- 0x395df000 2147483648 >>> 0xb95df000 - 0x395df000 2147483648 |
可以确定,这不是一个bug,属于opcache的正常行为,valgrind只是友善的给予警告而已。
如果文章帮助您解决了工作难题,您可以帮我点击屏幕上的任意广告,或者赞助少量费用来支持我的持续创作,谢谢~
