问题:
一个线程,在调用函数前,栈空间使用量为500多字节;
调用完某一函数返回后,栈空间使用量增大到7000多字节;
为什么函数返回后栈空间使用量没有恢复到500多自己呢?
不是说好释放的嘛~~
微信里点“发现”,扫一下
二维码便可将本文分享至朋友圈。
不是有stdcall么。。一个是调用者清栈,一个是被吊者清栈
多谢了!现在问题原因基本上确定了。
首先是调用函数之后,如果栈空间增大了,系统不会使之自动减小,以备后面调用时使用;
然后500多自己增加到7000多字节的原因是,有一个调用的函数里面有三个长度为2224字节的局部变量,加上其它一些内容,增加到7000多字节是可能的。
优化方式:
将长度过长的局部变量更改为静态变量、全局变量或动态分配的形式,以减少栈空间的使用。
你说的这个我会去研究研究啊!再次感谢!