我有段代码处理的数据差不多是100M
我申请了两个400M的地址来存存放结果
程序在运行中任务管理器现在内存都到2g了....我很不理解
变量名 | 类 型 | 静态 | 数组 | 备 注 | 分割后 | 字节集 | | 0 | 行 | 整数型 | | | 写入数据 | 文本型 | | | 数据长度 | 整数型 | | | 导出数据 | 字节集 | | 0 | 数据 | 文本型 | | | 列 | 整数型 | | | 总数 | 整数型 | | | 索引_共享文本 | 整数型 | | | 指针_共享字符 | 整数型 | | | 指针_索引 | 整数型 | | | 偏移_共享字符 | 整数型 | | | 偏移_索引 | 整数型 | | | 列内容 | 文本型 | | | 快速字节集 | | | | 结果_共享字符 | 文本型 | | | zip | ZIP压缩 | | | 结果_索引 | 文本型 | | | sheet1bin | 字节集 | | | sharedStringsbin | 字节集 | | | zr | 整数型 | | | q | 整数型 | | | 计时 | 整数型 | | |
分割后 = 分割字节集 (超级列表框.表项, { 0, 255, 255, 255, 255, 255, 255, 255, 255, 0, 0, 0, 0, 0, 0, 0, 0 }, )如果真 (取数组成员数 (分割后 ) > 1 )删除成员 (分割后, 1, )超级列表框.可视 = 假超级列表框. 全部删除 ()超级列表框.可视 = 真 索引_共享文本 = 0 指针_索引 = 内存_申请内存 (1024 × 1024 × 400 ) 指针_共享字符 = 内存_申请内存 (1024 × 1024 × 400 ) 偏移_共享字符 = 0 偏移_索引 = 0 如果真 (指针_共享字符 = 0 )信息框 (“指针_共享字符=0”, 0, , )如果真 (指针_索引 ≠ 0 )释放内存 (指针_索引 )返回 ()如果真 (指针_索引 = 0 )信息框 (“指针_索引 = 0”, 0, , )释放内存 (指针_共享字符 )返回 ()写到内存 ( #常量sheet头部, 指针_索引 + 偏移_索引, )偏移_索引 = 偏移_索引 + 取文本长度 ( #常量sheet头部 )计次循环首 (取数组成员数 (分割后 ), 行 )导出数据 = 分割字节集 (子字节集替换 (分割后 [行 ], { 0, 0 }, { }, , ), { 1, 255, 255, 255, 255, 255, 255, 255, 255 }, )列内容 = “”计次循环首 (取数组成员数 (导出数据 ), 列 )数据 = 到文本 (导出数据 [列 ])如果真 (数据 = “”)数据 = “--空文本--”总数 = 总数 + 1 如果 (索引_共享文本 ≥ 0 ) 索引_共享文本 = 索引_共享文本 + 1 如果真 (数据 = “--空文本--”)数据 = “”
写入数据 = “” + 数据 + “” + #换行符 如果真 (偏移_共享字符 ≥ 1024 × 1024 × 390 )信息框 (“偏移_共享字符即将溢出内存:” + 到文本 (偏移_共享字符 ), 0, , )写到内存 (写入数据, 指针_共享字符 + 偏移_共享字符, )偏移_共享字符 = 偏移_共享字符 + 取文本长度 (写入数据 )列内容 = 列内容 + “” + 到文本 (索引_共享文本 - 1 ) + “” + #换行符 列内容 = 列内容 + “” + 到文本 (索引_共享文本 - 1 ) + “” + #换行符 计次循环尾 ()写入数据 = “” + 列内容 + “” + #换行符 如果真 (偏移_索引 ≥ 1024 × 1024 × 398 )信息框 (“偏移_索引即将溢出内存:” + 到文本 (偏移_索引 ), 0, , )写到内存 (写入数据, 指针_索引 + 偏移_索引, )偏移_索引 = 偏移_索引 + 取文本长度 (写入数据 )计次循环尾 ()写到内存 ( #常量sheet尾部, 指针_索引 + 偏移_索引, )偏移_索引 = 偏移_索引 + 取文本长度 ( #常量sheet尾部 )结果_共享字符 = 文本_替换 ( #常量共享字符串前, , , , “总数”, 到文本 (总数 ), “唯一数”, 到文本 (取数组成员数 (索引_共享文本 )), , , , , , ) + 指针到文本 (指针_共享字符 ) + #常量共享字符串后 结果_索引 = 指针到文本 (指针_索引 )释放内存_ (指针_索引 )释放内存_ (指针_共享字符 )
|