AS3 提供了三种循环 for、forin、foreachin,这里测试一下三种方式的效率问题。
测试数据是一个 1000W 字符串的 Array,循环 push 到新的 Array 中。唯一不同的就是for的方式。为了防止GC造成的影响,每次输出后都会强制GC一次。
================================================
for (var i : int = 0; i < testDatas.length; i++)
times:10000000 used time:3286
times:10000000 used time:3343
times:10000000 used time:3345
times:10000000 used time:3337
times:10000000 used time:3342
times:10000000 used time:3292
times:10000000 used time:3304
times:10000000 used time:3380
times:10000000 used time:3312
times:10000000 used time:3240
================================================
for (var i : int = 0; i < length; i++)
times:10000000 used time:2526
times:10000000 used time:2550
times:10000000 used time:2601
times:10000000 used time:2502
times:10000000 used time:2530
times:10000000 used time:2549
times:10000000 used time:2548
times:10000000 used time:2535
times:10000000 used time:2548
times:10000000 used time:2533
================================================
for (var i : String in testDatas)
times:10000000 used time:86710
times:10000000 used time:11072
times:10000000 used time:11810
times:10000000 used time:10690
times:10000000 used time:10633
times:10000000 used time:10653
times:10000000 used time:10675
times:10000000 used time:10627
times:10000000 used time:10653
times:10000000 used time:10721
================================================
for each (var i : int in testDatas)
times:10000000 used time:4093
times:10000000 used time:2988
times:10000000 used time:2961
times:10000000 used time:2961
times:10000000 used time:2959
times:10000000 used time:2991
times:10000000 used time:2997
times:10000000 used time:2963
times:10000000 used time:2957
times:10000000 used time:3044
测试结果:
1 foreach 效率最高,传统 for 效率也不错。
2 使用大家推荐的“将length保存为变量”的方法有 15% 的性能提升。
3 forin 是最消耗性能的。主要原因是内存消耗过大(瞬间暴增500MB),造成的大量GC。
结论:
1 尽量使用 foreach,效率不错,代码更加清晰。
2 传统 for 使用变量存储数组 length 也有不错的性能。
2 尽量少用 forin,内存和实践上都消耗很大。
分享到:
相关推荐
这种方式适合于简单的小规模应用,但在高并发和需要高效资源利用的场景下,阻塞模式的效率会大大降低。 而异步通信则是另一种策略。在这种模式下,当发起网络操作时,程序不会等待其完成,而是立即返回并继续执行...
它通过三次握手建立连接,并在整个传输过程中实施数据校验和重传机制,确保数据的无丢失和顺序正确性。因此,使用TCP协议传输数据时,我们通常认为它是安全的,不需要额外的验证步骤。 然而,数据的生成和处理过程...
OPENXML第三个参数解疑 OPENXML( idoc int [ in] , rowpattern nvarchar [ in ] , [ flags byte [ in ] ] ) [ WITH ( SchemaDeclaration | TableName ) ] idoc XML 文档的内部表式形式的文档句柄。 通过调用 sp_...
【三环五步循环大课堂教学模式】是一种创新的教育理念和教学策略,旨在激发学生的学习积极性,提升课堂教学效率,促进学生的全面发展。该模式的核心在于“相信学生、解放学生、发展学生”的三位一体理念,强调教师的...
3. **查询构建**:使用SQL语言或Access内置查询工具进行选择、连接、聚合等多种类型的查询,以获取所需信息。 4. **窗体与报表**:设计和使用窗体来输入、查看和编辑数据,以及制作报表进行数据分析和展示。 5. **...
"概率中互斥对立独立概念解疑" 概率论中,互斥、对立、独立是三个重要的概念,理解它们的区别和关系是非常必要的。本文将对这三个概念进行详细的解释和比较。 1、必然事件与概率为 1 事件的区别: 必然事件是指在...
3. **绩效评估**:评估团队成员的工作表现,提供反馈,激励团队士气,促进工作效率。 4. **问题解决**:当发现问题或冲突时,项目经理需迅速介入,分析原因,提出解决方案,并协调各方资源解决问题。 5. **合规性...
《Access数据库解疑专家》是一本专注于教授Access数据库管理与应用的教程,旨在帮助用户解决在实际操作中遇到的各种问题。Access是微软公司开发的一款关系型数据库管理系统(RDBMS),广泛应用于数据存储、数据分析...
常见客户问题解疑.pdf常见客户问题解疑.pdf常见客户问题解疑.pdf常见客户问题解疑.pdf常见客户问题解疑.pdf常见客户问题解疑.pdf
3. PDF文件:这是一种通用的文档格式,Adobe Reader 6.0可以打开它。PDF文件可能包含Access数据库的示例、指南或者最佳实践,读者可以通过Adobe Reader进行查阅。 在“accessjyzj”这个压缩包文件中,很可能包含了...
这篇PPT课件主要探讨了概率问题中的三个关键点,涉及随机事件的理解、两两独立与相互独立事件的区分以及必然事件的应用。首先,我们来看第一个知识点: **随机事件的基本事件理解**: 随机事件的基本事件是指构成该...
3. 课后三段 (内化迁疑): - 作业巩固:学生独立完成作业,教师进行质量评价,巩固知识。 - 复习记忆:及时复习,规律记忆,构建知识网络。 - 测评迁移:通过测试,查漏补缺,促进知识迁移。 “三段教学”重视...
标题《ADI仿真器常见故障解疑》涉及的IT知识点主要围绕美国模拟器件公司(Analog Devices, Inc.)旗下的一款名为ADZS-HPUSB-ICE的仿真器。当该仿真器在连接ADSP处理器时出现故障或报错,测试结果却显示一切正常的情况...
3. **关闭无线网卡**:如果希望关闭无线网卡以节省电力和减少热量,可在BIOS中将其设置为OFF。 4. **USB供电设置**:对于不希望在关机状态下通过USB口为手机等设备供电以及防止关机后电池大量掉电的情况,应将相关...
3. Eclipse IDE:Eclipse是一个流行的集成开发环境,适用于多种编程语言,对安卓开发提供了很好的支持。推荐使用Eclipse 4.2 Juno版本。 二、软件安装 1. JDK的安装:下载对应版本的JDK安装包,安装时选择Android...
首先,生物安全柜分为一级、二级和三级,每种级别对应不同的防护等级。一级生物安全柜主要用于防止实验对象对实验者的暴露,适用于处理低风险生物材料;二级生物安全柜则增加了向下的气流以保护环境,适用于中等风险...
本文将针对"java解惑--疑难问题解疑"的主题,对一些常见的Java疑难问题进行详细解析,旨在帮助初学者更好地理解和解决这些问题。 1. **内存管理与垃圾回收**:Java通过自动垃圾回收机制来管理内存,这为开发者减轻...
3. **社交应用**:与朋友分享位置信息。 4. **健康和健身**:记录运动轨迹和健康数据。 5. **紧急救援**:在紧急情况下快速定位并实施救援。 6. **智能交通系统**:优化城市交通流量,减少拥堵。 #### 五、LBS的...
【历史教学问题解疑策略】是一项针对初中历史教学的研究,旨在改善教学方法,培养学生的探究精神和解决问题的能力,适应新课改的要求。该课题强调在历史教学中开展探究式学习,尊重学生个体差异,增强课堂趣味性和...
【POI 技术解疑】 POI 是一个开源项目,由 Apache 软件基金会维护,主要用于处理 Microsoft Office 格式,特别是 Excel 文件。它提供了 Java 开发者读写 Excel 文档的能力,使得在没有 Microsoft Office 环境的情况...