数据遍历性能安全考虑

循环语句是程序最基本的语法,但往往容易出现让你意想不到的死循环,为之在each函数上做限制,避免死循环。

控制台中运行查看结果:

function each(arr, fn){
  var maxTimes=1e7;
  var curTimes=0;
  var length=arr.length;
  for(var i=0; i<length; i++) {
    fn(arr[i]);
    if(++curTimes>maxTimes){
      console.error("数组长度超出");
      break;
    }
  }
}

// do test
var n=0;
each(new Array(1e7+1), function(m){
  n++;
});n;
时间: 2024-08-10 17:02:56

数据遍历性能安全考虑的相关文章

.NET批量大数据插入性能分析及比较

原文:.NET批量大数据插入性能分析及比较 数据插入使用了以下几种方式 1. 逐条数据插入2. 拼接sql语句批量插入3. 拼接sql语句并使用Transaction4. 拼接sql语句并使用SqlTransaction5. 使用DataAdapter6. 使用TransactionScope及SqlBulkCopy7. 使用表值参数 数据库使用SQL Server,脚本如下 create table TestTable(Id int ,Name nvarchar(20)) 程序中生成测试Dat

&quot;Entity Framework数据插入性能追踪&quot;读后总结

园友莱布尼茨写了一篇<Entity Framework数据插入性能追踪>的文章,我感觉不错,至少他提出了问题,写了出来,引起了大家的讨论,这就是一个氛围.读完文章+评论,于是我自己也写了个简单的程序试了试. 先晒一下代码: 两个简单的类: 1: /// <summary> 2: /// 消费者 3: /// </summary> 4: public class Consumer 5: { 6: public int CId { get; set; } 7: public

json格式的数据遍历【循环】

json格式的数据遍历[循环] 如果数据结构是这样 var data=[{name:"a",age:12},{name:"b",age:11},{name:"c",age:13},{name:"d",age:14}]; for(var o in data){ alert(o);//索引 0,1,2.... alert(data[o]);// {name:"a",age:12},{name:"b&q

使用Exp和Expdp导出数据的性能对比与优化

1.前言 数据备份对信息系统的安全运行至关重要,我们的用户中,使用RMan或第三方专业备份软件的越来越多,但是很多用户仍然保留了传统的Exp作为备份策略的一部分,主要是由于这种备份方式简单易用,而且恢复到其他机器上也很方便,所以,虽然有其他的备份方式,但是Exp方式仍然会同时使用,甚至还有不少的用户只有这种备份方式. 随着用户的数据量增长,Exp导出方式存在的问题也日渐突出,主要就是耗时长,有的甚至超过3个小时,加上常见的后台自动作业:汇总表的计算,自动费用的计算,统计信息的收集等工作,使一个晚

【使用jdbc操作时,如何提取数据的性能】

1.1     使用JDBC操作数据库时,如何提升读取数据的性能?如何提升更新数据的性能? 答:要提升读取数据的性能,可以指定通过结果集(ResultSet)对象的setFetchSize()方法指定每次抓取的记录数(典型的空间换时间策略):要提升更新数据的性能可以使用PreparedStatement语句构建批处理,将若干SQL语句置于一个批处理中执行.

浅谈 JS 的数据遍历的几种方式

遍历对象(数组)是我们日常撸码的必不可少的部分,如何从性能上优化代码,提高运行效率?下文为你揭开真像: 第一种:普通的for循环 for(j = 0; j < arr.length; j++) { } 简要说明:最简单的一种,也是使用频率最高的一种,性能不弱,但是有优化空间 第二种:优化过的for循环(性能最高) for(j = 0,len=arr.length; j < len; j++) { } 简要说明:使用临时变量,将长度缓存起来,避免重复获取长度,当数组较大时优化效果才会比较明显.这

数据库插入或者更新大批量数据的性能优化

对于一些数据量较大的系统,数据库面临的问题除了查询效率低下,还有就是数据入库时间长.特别像报表系统,每天花费在数据导入上的时间可能会长达几个小时或十几个小时之久.因此,优化数据库插入性能是很有意义的. 经过对MySQL InnoDB的一些性能测试,发现一些可以提高insert效率的方法,供大家参考参考. 1.一条SQL语句插入多条数据 常用的插入语句如: INSERT INTO `insert_table` (`datetime`, `uid`, `content`, `type`) VALUE

Qt高级——Qt数据可视化性能优化

Qt高级--Qt数据可视化性能优化 一.数据可视化简介 1.数据可视化简介 数据可视化即采用图形图表等对采集的数据进行展示,可以非常直观的查看传感器采集到的数据.本文将使用Qt的标准组件QTableWidget.标准模型.自定义模型分别实现对数据的表格展示. 2.系统环境 个人PC:ThinkPad T450操作系统:RHEL7.3 WorkStation内存容量:8G磁盘容量:SSD 100GCPU:Intel(R) Core(TM) i5-5200U CPU @ 2.20GHz 二.标准界面

Android中List循环遍历性能对比

在android开发中只要是列表式风格界面我们几乎都需要用到List来存放数据,在数量很少的List的话几乎任何一种循环遍历方式整体性能都无差别,但是当我们遇到数据量稍大的时候有必要考虑用哪种方式写起来比较高性能. 常见的有以下三种: 第一种 for (String s : tests) { // .... } 第二种 int size = tests.size(); for (int i = 0; i < size; i++) { tests.get(i); } 第三种 Iterator<S