项目开发完成的技术总结 && JS执行效率探究

初步开发完成,一会儿要提测

过程中有一点让我及其在意,就是JS的执行效率。在改变了
某个地方
之后快了100倍 以下探究具体原因在这里插入图片描述在这里插入图片描述

利用JSON+数组结构存储数据的行列(时间与数目)不同方式导致的数组个数不同 使得耗费巨量时间:

方式1

测试以下代码()

console.time('time'); 
	var json={
    
    };
	for(var j=0;j<DEFECT_CNAME.length;j++){
    
    //把缺陷名按顺序放入JSON中  为对应DEFECT_CNAME以便循环输出
		json[DEFECT_CNAME[j]]=new Array();//放入数组
		for (var i = 0; i < PRODUCE_TIME.length; i++) {
    
    
			json[DEFECT_CNAME[j]][i] = new Array();
			for (var x= 0; x < 3; x++) {
    
    
				if(x==0){
    
    
					json[DEFECT_CNAME[j]][i][x] = PRODUCE_TIME[i];
				}else{
    
    
					json[DEFECT_CNAME[j]][i][x] = 0;
				}
			}
		}
	}	

	console.timeEnd('time'); 	
	var j=0;

执行结果如下:
在这里插入图片描述

耗时在这里插入图片描述

方式2
console.time('time'); 
	var json={
    
    };
	for(var j=0;j<DEFECT_CNAME.length;j++){
    
    //把缺陷名按顺序放入JSON中  为对应DEFECT_CNAME以便循环输出
		json[DEFECT_CNAME[j]]=new Array();//放入数组
		for (var i = 0; i < 2; i++) {
    
    
			json[DEFECT_CNAME[j]][i] = new Array();
			for (var x= 0; x < PRODUCE_TIME.length; x++) {
    
    
				json[DEFECT_CNAME[j]][i][x] = 0;
			}
		}
	}
	console.timeEnd('time'); 

执行结果如下:
在这里插入图片描述
耗时在这里插入图片描述
确实快了三倍左右,但显然问题不在这里

而在真正完成所有开发任务的三天后,速度如图:在这里插入图片描述

回想下开发过程,大概率得益于:
1、数据那边终于给表加了索引。
2、我在后台查询根据分页数和展示数做了限制,前后台需要处理的数据量小了,一开始依次查五万条…
3、优化了查询语句,修改SQL,利用双GROUP BY将初步的数据处理放在了查询上,简化了前后台处理数据的逻辑。

技术总结:

数据处理的优先级是:

1、

数据库优化绝对的优先,分库分表/加索引等手段,效率最高,优化效果最好;

2、

然后才是SQL语句来根据不同需求查表做处理,比后台前台得处理更有效率;

3、

SQL处理不了的,需要根据用户得操作来的那些需求的逻辑,才是真正需要用前后台的JAVA/JS来码代码处理的。
但这部分也要考虑很多,例如JVM的对象gc问题控制程序的对象数量,逻辑优化少用递归,少用if多用switch,利用语法糖,多克隆接口,特定情况甚至要考虑利用多线程…java编程能力方面提升空间还很大

4、

前台JS非必要不写复杂逻辑,不同客服访问的客户端性能不同,可能会造成不同的用户体验感

5、

这次开发学到了很多东西 更重要的是学到了很多解决问题的方法 感觉自己获得了成长
最最最最重要的是 自己第一次真正的在开发中,在工作中感受到了它所带来的快乐,乐在其中的工作状态真的很棒
希望未来能将这中势头持续下去

猜你喜欢

转载自blog.csdn.net/Beatingworldline/article/details/113647751