开发日志【4】程序运行后内存占用持续增加,最终崩溃退出

开发日志【4】程序运行后内存占用持续增加,最终崩溃退出:

用定时器重复执行刷新数据,不做存储,程序运行后内存占用持续增加,最终崩溃退出。

原因分析:

通过分析,发现是定时器函数持续刷新数据所致。


解决方案:

通过查找,发现采用SetProcessWorkingSetSize()函数,可以将物理内存数据转移到虚拟内存中,虽然不能从根本上解决数据增加的问题,但可以很快捷地解决物理内存占用过快增加的问题。通过在定时器函数中添加SetProcessWorkingSetSize()函数,程序占用内存改善明显。具体方法:

'先声明函数,注意32位和64位需要修改integer和long类型。
Public Declare Function SetProcessWorkingSetSize Lib “kernel32” Alias “SetProcessWorkingSetSize” (ByVal hProcess As Integer, ByVal dwMinimumWorkingSetSize As Integer, ByVal dwMaximumWorkingSetSize As Integer) As Integer
‘在TimerUpdateTime_Tick()函数的尾部添加调用
SetProcessWorkingSetSize(System.Diagnostics.Process.GetCurrentProcess.Handle, -1, -1)

内存占用着增加的问题改善明显。

参考:
https://blog.csdn.net/zougangx/article/details/5939099?spm=1001.2101.3001.6650.1&utm_medium=distribute.pc_relevant.none-task-blog-2%7Edefault%7ECTRLIST%7ERate-1-5939099-blog-18844453.pc_relevant_antiscanv3&depth_1-utm_source=distribute.pc_relevant.none-task-blog-2%7Edefault%7ECTRLIST%7ERate-1-5939099-blog-18844453.pc_relevant_antiscanv3&utm_relevant_index=2

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值