代码改变世界

利用压力测试来保证软件的质量(八) 栈溢出问题

  王克伟  阅读(360)  评论(0编辑  收藏  举报

函数的递归调用不小心就会造成栈溢出,死循环的递归那是没话说了,CE上默认的线程栈大小为64K(?),在创建线程时可以指定大小,但是在CE 6.0之前,进程的内存限制为最大32M。

 

另外使用局部变量来存放一个较大的东西也是危险的,也很容易造成栈溢出,大内存应该使用堆(私有堆、公共堆)。

PS:如果你遭受较多的内存泄露,你应该更怀疑是堆出了问题,而不是栈。

编辑推荐:
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
阅读排行:
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 提示词工程——AI应用必不可少的技术
· Open-Sora 2.0 重磅开源!
· 周边上新:园子的第一款马克杯温暖上架
点击右上角即可分享
微信分享提示