需要处理大概100W个txt文件,主要就是替换文件内的一些内容,文件大小不一,从几十KB到十几M的都有,最大的30M左右,运行一段时间后,只要切换到别的窗口,这个编辑框里面就显示2147483647,内存溢出了,我看任务管理器中的此进程的内存占用才20-30M左右。但CPU占用超级大,如果中间不延迟暂停一段时间,就直接会出现CPU 100%。就算读一个文件延迟几秒甚至十秒,运行一段时间后切换到别的窗口,这个编辑框里面就会显示2147483647,时间一长,就提示内存溢出、报错了,大佬们,这个情况,该怎么处理呢?
启动线程 (&子程序4, , 集_子程序4 )变量名 | 类 型 | 静态 | 数组 | 备 注 | i | 整数型 | | | 局_内容数组 | 文本型 | | 0 |
i = 0 文件_枚举 (“”, “*.txt”, 局_内容数组, 真, , 真)计次循环首 (取数组成员数 (局_内容数组 ), i )如果真 (寻找文本 (局_内容数组 [i ], “目录.txt”, , 假) = -1 )[i ]如果真 (寻找文本 (局_内容数组 [i ], “\其他\”, , 假) < 1 )线程_启动_文本型 (到整数 (&子程序5 ), , , 局_内容数组 [i ], 到文本 (i ), , , , , , , , )计次循环尾 ()编辑框1. 加入文本 (到文本 (取现行时间 ()) + “已完成” + #换行符 )局_内容 = 子文本替换 (到文本 (读入文件 (局_内容数组 )), “ ”, “”, , , 真) 写到文件 (局_内容数组, 到字节集 ( #换行符 + 局_内容 )) 编辑框1. 加入文本 (文本_自动补零 (i, 5 ) + 取空白文本 (5 ) + 局_内容数组 + #换行符 )
|