开启辅助访问 切换到宽版

精易论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

用微信号发送消息登录论坛

新人指南 邀请好友注册 - 我关注人的新帖 教你赚取精币 - 每日签到


求职/招聘- 论坛接单- 开发者大厅

论坛版规 总版规 - 建议/投诉 - 应聘版主 - 精华帖总集 积分说明 - 禁言标准 - 有奖举报

查看: 21527|回复: 229
收起左侧

[易语言纯源码] 程序内存释放,可释放超级列表框加载大量数据后占用内存

  [复制链接]
结帖率:100% (27/27)
发表于 2022-1-6 00:29:56 | 显示全部楼层 |阅读模式   湖南省邵阳市
分享源码
界面截图: -
是否带模块: 纯源码
备注说明: -
实测超级列表框插入29万行20列数据,释放前后的对比图:
截图20220105235844.png
释放前:
释放前截图20220105235902.png
释放后:
释放后截图20220106000038.png
释放立马生效,很给力
也可以不删除超级列表框的表项数据,但是提交不会释放(只会释放后三项),全部删除表项后才会将提交也释放掉
就一个简单的dll命令,主要是发帖记录一下
内存整理.e (1.96 KB, 下载次数: 583)

点评

原理,副作用见228楼   江西省上饶市  发表于 2024-8-10 16:29

评分

参与人数 5好评 +5 精币 +11 收起 理由
956985425 + 1 + 2 感谢分享,很给力!~
木小果 + 1 + 3 新技能已get√
果心豆腐酱 + 1 + 2 新技能已get√
小翁哥哥 + 1 + 2 支持开源~!感谢分享
无风不起浪 + 1 + 2 支持开源~!感谢分享

查看全部评分


本帖被以下淘专辑推荐:

结帖率:100% (27/27)
 楼主| 发表于 2022-1-7 23:35:12 | 显示全部楼层   湖南省邵阳市
  
子程序名返回值类型公开备 注
程序_整理内存逻辑型 
如果 (EmptyWorkingSet (-1) = 0)
调试输出 (“释放程序内存失败”)
返回 ()
调试输出 (“释放程序内存成功”)
返回 ()
DLL命令名返回值类型公开备 注
EmptyWorkingSet整数型 整理内存
DLL库文件名:
psapi
在DLL库中对应命令名:
EmptyWorkingSet
参数名类 型传址数组备 注
Phnd整数型进程句柄



i支持库列表   支持库注释   
spec特殊功能支持库

回复 支持 反对

使用道具 举报

结帖率:80% (4/5)

签到天数: 13 天

发表于 2024-8-28 10:52:04 | 显示全部楼层   安徽省黄山市
空竹 发表于 2024-8-10 16:28
[md]`EmptyWorkingSet` 是一个Windows操作系统提供的API函数,它允许应用程序通知操作系统释放其工作集(wo ...

但是不整理是真不行啊 有其他好的办法么 [换成虚表如何?]
回复 支持 反对

使用道具 举报

结帖率:92% (49/53)

签到天数: 19 天

发表于 2024-8-10 16:28:45 | 显示全部楼层   江西省上饶市

EmptyWorkingSet 是一个Windows操作系统提供的API函数,它允许应用程序通知操作系统释放其工作集(working set)中的所有页面。工作集是指最近访问过的且在物理内存中的页面集合。以下是EmptyWorkingSet的原理和可能产生的副作用:

原理:

当调用EmptyWorkingSet函数时,操作系统会将指定进程的工作集中的所有页面标记为可分页( pageable ),这意味着这些页面可以被移出物理内存并交换到磁盘上的页面文件中。这个过程通常称为“工作集修剪”(working set trimming)。
以下是EmptyWorkingSet的基本工作流程:

  1. 应用程序调用EmptyWorkingSet
  2. 操作系统检查调用进程的工作集,并将所有页面标记为可分页。
  3. 如果物理内存不足,操作系统可能会将标记为可分页的页面移出内存。
  4. 当应用程序或系统需要这些页面时,它们将从磁盘上的页面文件中重新加载到内存中。

    副作用:

    虽然EmptyWorkingSet可以用来减少进程的内存占用,但它也可能带来以下副作用:

  5. 性能影响:由于工作集中的页面被移出内存,当应用程序需要这些页面时,它们必须从磁盘读取,这会导致磁盘I/O操作,从而增加访问这些页面的延迟,降低应用程序的性能。
  6. 系统稳定性:频繁地调用EmptyWorkingSet可能会导致整个系统的内存管理变得不稳定,因为操作系统需要频繁地进行页面交换,这可能会增加页交换文件(pagefile)的使用,并可能导致系统整体性能下降。
  7. 资源竞争:如果多个应用程序同时调用EmptyWorkingSet,它们可能会相互竞争系统资源,尤其是内存资源,这可能导致内存使用效率降低。
  8. 不适用于所有进程:并非所有进程都可以调用EmptyWorkingSet来清空其工作集。例如,操作系统保护某些系统进程,不允许它们的工作集被清空。
  9. 滥用风险:如果开发者不了解EmptyWorkingSet的潜在副作用,可能会过度使用它,导致应用程序或系统性能受损。
    因此,虽然EmptyWorkingSet可以用来管理内存,但它应该谨慎使用,并且最好是在充分理解其原理和副作用的情况下使用。通常,应用程序不需要手动清空工作集,因为操作系统已经非常擅长自动管理内存。

评分

参与人数 1好评 +1 精币 +2 收起 理由
dwcq + 1 + 2 YYDS~!

查看全部评分

回复 支持 反对

使用道具 举报

发表于 2024-6-26 21:33:50 | 显示全部楼层   江苏省苏州市
回复 支持 反对

使用道具 举报

结帖率:90% (66/73)

签到天数: 1 天

发表于 2024-4-29 20:53:14 | 显示全部楼层   江苏省盐城市
666666666666666
回复 支持 反对

使用道具 举报

结帖率:0% (0/1)
发表于 2024-4-11 02:31:20 高大上手机用户 | 显示全部楼层   湖北省武汉市
66666
回复 支持 反对

使用道具 举报

发表于 2024-3-13 17:27:31 | 显示全部楼层   新西兰
千山万水总是情,给个好评行不行?
回复 支持 反对

使用道具 举报

结帖率:100% (6/6)
发表于 2024-2-23 03:48:38 | 显示全部楼层   黑龙江省哈尔滨市
千山万水总是情,给个好评行不行?
回复 支持 反对

使用道具 举报

发表于 2024-1-30 03:41:09 | 显示全部楼层   贵州省遵义市
我觉得很不错
回复 支持 反对

使用道具 举报

发表于 2024-1-11 00:05:21 | 显示全部楼层   广东省广州市
支持开源~!感谢分享
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则 致发广告者

发布主题 收藏帖子 返回列表

sitemap| 易语言源码| 易语言教程| 易语言论坛| 易语言模块| 手机版| 广告投放| 精易论坛
拒绝任何人以任何形式在本论坛发表与中华人民共和国法律相抵触的言论,本站内容均为会员发表,并不代表精易立场!
论坛帖子内容仅用于技术交流学习和研究的目的,严禁用于非法目的,否则造成一切后果自负!如帖子内容侵害到你的权益,请联系我们!
防范网络诈骗,远离网络犯罪 违法和不良信息举报电话0663-3422125,QQ: 793400750,邮箱:wp@125.la
Powered by Discuz! X3.4 揭阳市揭东区精易科技有限公司 ( 粤ICP备12094385号-1) 粤公网安备 44522102000125 增值电信业务经营许可证 粤B2-20192173

快速回复 返回顶部 返回列表