开启辅助访问 切换到宽版

精易论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

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

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


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

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

12
返回列表 发新帖
楼主: cc121112
收起左侧

[易语言] 程序运行内存超过1.2G就会闪退 ,怎么办?

[复制链接]
结帖率:93% (250/269)
发表于 昨天 13:14 | 显示全部楼层   广西壮族自治区崇左市
如果不在多线程下操作,可以试下这个,程序允许速度很快,内存占用也小了。但是多线程和静态内存加载的dll,容易崩溃闪退https://bbs.125.la/forum.php?mod ... B%E5%8A%A0%E9%80%9F
回复

使用道具 举报

结帖率:93% (250/269)

签到天数: 2 天

发表于 昨天 13:16 | 显示全部楼层   广西壮族自治区崇左市
明天自然醒 发表于 2025-1-18 09:12
像我一样,找到易语言链接器配置,D:\易语言5.92\tools\link.ini

开大内存配置  /LARGEADDRESSAWARE

extra_args=/DYNAMICBASE "legacy_stdio_definitions.lib"
;extra_args=/DYNAMICBASE "legacy_stdio_definitions.lib"
;  extra_args用于指定附加给链接器的额外参数。默认为空。

那我这个,是more的么
回复

使用道具 举报

结帖率:100% (2/2)

签到天数: 19 天

发表于 昨天 16:13 | 显示全部楼层   辽宁省丹东市
分段处理,比如读入文本文件 每次读100MB处理完把结果写到另一个文件 然后再接着读
回复

使用道具 举报

结帖率:100% (2/2)

签到天数: 19 天

发表于 昨天 16:17 | 显示全部楼层   辽宁省丹东市
  
子程序名返回值类型公开备 注
大文件分割逻辑型 分割完成的路径为原文件同目录,分割后的文件名为: 原文件名.part序号.原拓展名  (大文件分割成小文件)
参数名类 型参考可空数组备 注
原文件路径文本型
切割分卷文件大小长整数型分割文件大小 单位为字节 分块大小无限制
是否删除原文件逻辑型默认为假 不删除
返回全部分卷文件路径文本型
返回消息文本型
获取进度子程序指针该子程序带一个整数型参数,参数内容为进度百分比
变量名类 型静态数组备 注
局_文件号整数型 
局_子文件号整数型 
局循环次数整数型 
局循环次数子整数型 
n长整数型 
i整数型 
m整数型 
局拓展名文本型 
局分卷路径文本型 
局初始字节数长整数型 
局压缩分段长度长整数型 
局_字节集 
如果真 (是否为空 (返回消息))
返回消息 = “”

清除数组 (返回全部分卷文件路径)
局_文件号 = 打开文件A (原文件路径, #读文件, #限制读写 )
如果真 (局_文件号 = 0)
返回消息 = “文件分割:” + 原文件路径 + “ 文件无法打开,请检查是否已被其他程序占用”
返回 ()

n = 取文件大小 (局_文件号)
判断 (n % 切割分卷文件大小 = 0)
局循环次数 = n ÷ 切割分卷文件大小
局循环次数 = n ÷ 切割分卷文件大小 + 1

判断 (局循环次数 > 1)
局拓展名 = 文件_取扩展名 (原文件路径)
局分卷路径 = 子文本替换 (原文件路径, 局拓展名, “”, , 1, )“.part”
局初始字节数 = 0
判断 (切割分卷文件大小 > #压缩分段上限 )
判断 (切割分卷文件大小 % #压缩分段上限 = 0)
局循环次数子 = 切割分卷文件大小 ÷ #压缩分段上限
局循环次数子 = 切割分卷文件大小 ÷ #压缩分段上限 + 1

计次循环首 (局循环次数, i)
加入成员 (返回全部分卷文件路径, 局分卷路径 + 到文本 (i) + 局拓展名)
局_子文件号 = 打开文件A (局分卷路径 + 到文本 (i) + 局拓展名, #重写文件, #限制读写 )
如果真 (局_子文件号 = 0)
返回消息 = 返回消息 + “文件分割:” + 局分卷路径 + 到文本 (i) + 局拓展名 + “  文件无法打开,请检查是否已被其他程序占用”#换行符

计次循环首 (局循环次数子, m)
改变读写位置 (局_文件号, 局初始字节数, )
判断 (局循环次数子 = m)
判断 (切割分卷文件大小 % #压缩分段上限 = 0)
局压缩分段长度 = #压缩分段上限
局初始字节数 = 局初始字节数 + 局压缩分段长度
局压缩分段长度 = 切割分卷文件大小 % #压缩分段上限
局初始字节数 = 局初始字节数 + 局压缩分段长度

局压缩分段长度 = #压缩分段上限
局初始字节数 = 局初始字节数 + 局压缩分段长度

局_ = 读文件字节集 (局_文件号, 局压缩分段长度, )
如果真 (写文件字节集 (局_子文件号, 局_))
如果真 (取字节集长度 (局_) ≠ 0)
返回消息 = 返回消息 + “文件分割:” + 局分卷路径 + 到文本 (i) + 局拓展名 + “ 无法写入数据 请检查磁盘剩余空间”#换行符


计次循环尾 ()
关闭文件句柄 (局_子文件号)
如果真 (是否为空 (获取进度))
调用子程序 (获取进度, , , 取整 (局初始字节数 ÷ (n ÷ 100)))

程序延时 (1)
计次循环尾 ()



计次循环首 (局循环次数, i)
加入成员 (返回全部分卷文件路径, 局分卷路径 + 到文本 (i) + 局拓展名)
改变读写位置 (局_文件号, 局初始字节数, )
局_ = 读文件字节集 (局_文件号, 切割分卷文件大小, )
如果真 (写到文件字节集A (局分卷路径 + 到文本 (i) + 局拓展名, 局_))
返回消息 = 返回消息 + “文件分割:” + 局分卷路径 + 到文本 (i) + 局拓展名 + “ 无法写入数据 请检查磁盘剩余空间”#换行符

局初始字节数 = 局初始字节数 + 切割分卷文件大小
如果真 (是否为空 (获取进度))
调用子程序 (获取进度, , , 取整 (局初始字节数 ÷ (n ÷ 100)))

程序延时 (1)
计次循环尾 ()

关闭文件句柄 (局_文件号)
如果真 (返回消息 ≠ “”)
清除数组 (返回全部分卷文件路径)
返回 ()

如果真 (是否删除原文件 = )
处理事件 ()
删除文件 (原文件路径)

返回 ()
关闭文件句柄 (局_文件号)
返回消息 = “文件分割:设置的分割文件大小大于或等于原文件大小,无需分割”
返回 ()

比如像这样


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

回复

使用道具 举报

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

本版积分规则 致发广告者

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

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

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