采纳答案成功!
向帮助你的同学说点啥吧!感谢那些助人为乐的人
老师好,有一点不理解为了对齐2M申请4M的肯定包含它,但为什么不申请3M,不一样能包含吗
同学您好,3M是有可能没办法覆盖一个按2M对齐的2M的。 比如说,起始位置是2M+500k,3M的话,结束位置是5M+500k,这里面不包含一个2M对齐的2M大小的内存呢,见图片:
原来是必须在每M的边界开始算,对吧?
同学您好。 按2MB对齐的chunk(2MB),这里面有两个2MB。 第一个意味着起始位置是2MB的整数倍; 第二个意味着大小是2MB; 类比一下十进制,我们想找按100对齐的100。 那么是不是只有0~100,100~200,200~300,300~400…这种呢。 假设我们随机取一个数,如果是99,那么我们如果想要100~200这个区间,是不是要从99取到299(99+100*2,类比4MB)呢,然后掐头去尾,掐头就是去掉99~100,去尾就是去掉200~299,最后得到的是100~200这个区间。如果这时候你取的是从99到245(99+150,类比3MB)肯定不行吧。 祝您学习愉快!
多谢陈老师!! 是我买过最好的一个课程
登录后可查看更多问答,登录/注册
高级工程师的核心能力-阅读源码,课程由浅入深掌握PHP7源码
726 6
948 6
881 5
991 5
843 5