递归火山软件开发平台

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
热搜: 火山 源码 类库
查看: 1993|回复: 12
打印 上一主题 下一主题

[视窗] 枚举只要2秒,加入数组则要38秒,求高手支招。

[复制链接]

33

主题

240

帖子

1716

积分

金牌会员

Rank: 6Rank: 6

积分
1716
跳转到指定楼层
楼主
发表于 2025-9-26 13:18:37 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
    枚举一个文件夹里的所有文件,里面有42万个文件,用寻找文件的方法耗时只要2秒,想要把找到的文件记录下来以便处理,用数组的话,光是"文件.加入成员()"就会增加38秒耗时,时间太长,如果文件数量上到160万,耗时将更长,有什么方法比数组更快吗?
回复

使用道具 举报

6

主题

56

帖子

307

积分

核心用户

Rank: 9Rank: 9Rank: 9

积分
307
13#
发表于 2025-9-27 10:44:01 | 只看该作者
学习了
回复

使用道具 举报

0

主题

70

帖子

363

积分

核心用户

Rank: 9Rank: 9Rank: 9

积分
363
12#
发表于 2025-9-27 10:06:14 | 只看该作者
学习了!!!
回复

使用道具 举报

467

主题

2万

帖子

4万

积分

超级版主

Rank: 8Rank: 8

积分
46933
11#
发表于 2025-9-26 20:16:27 | 只看该作者
编译发布版就快多了。
安卓无障碍实战课:点击查看
交流群:641526939
回复

使用道具 举报

36

主题

248

帖子

2184

积分

核心用户

Rank: 9Rank: 9Rank: 9

积分
2184
10#
发表于 2025-9-26 19:37:13 | 只看该作者
学习了
回复

使用道具 举报

33

主题

240

帖子

1716

积分

金牌会员

Rank: 6Rank: 6

积分
1716
9#
 楼主| 发表于 2025-9-26 15:28:27 | 只看该作者
Xelloss0618 发表于 2025-9-26 13:44
你这是调试的速度吧?编译发布版后会快很多倍的。
这种用内存存储数据的方式,要加快只能是减少内存重分配 ...

确实是调试速度……
回复

使用道具 举报

33

主题

240

帖子

1716

积分

金牌会员

Rank: 6Rank: 6

积分
1716
8#
 楼主| 发表于 2025-9-26 15:27:23 | 只看该作者
小蜗牛 发表于 2025-9-26 13:36
用回调啊.枚举到文件就马上处理 不需要数组,当然你也可以用队列,或者数组预分配内存 ...

边枚举边处理也不错,谢谢大佬支招:噜阿噜
回复

使用道具 举报

33

主题

240

帖子

1716

积分

金牌会员

Rank: 6Rank: 6

积分
1716
7#
 楼主| 发表于 2025-9-26 15:26:10 | 只看该作者
小小小小鸟 发表于 2025-9-26 14:09
文件数组.预分配尺寸=1000000,让你快的飞起。

用数组预分配后耗时仅4秒,比41秒快了十倍,多谢大佬支招!:噜阿噜
回复

使用道具 举报

20

主题

247

帖子

2787

积分

核心用户

Rank: 9Rank: 9Rank: 9

积分
2787
6#
发表于 2025-9-26 14:09:36 | 只看该作者
文件数组.预分配尺寸=1000000,让你快的飞起。
回复

使用道具 举报

29

主题

2763

帖子

9616

积分

核心用户

Rank: 9Rank: 9Rank: 9

积分
9616
5#
发表于 2025-9-26 13:44:02 | 只看该作者
你这是调试的速度吧?编译发布版后会快很多倍的。
这种用内存存储数据的方式,要加快只能是减少内存重分配的次数,比如设置数组的预分配尺寸。
回复

使用道具 举报

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

本版积分规则

QQ|Archiver|手机版|小黑屋|递归火山软件开发平台 ( 鄂ICP备18029190号 )

GMT+8, 2025-12-19 01:16 , Processed in 0.094632 second(s), 18 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

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