Résumé technique du développement du projet && Exploration de l'efficacité d'exécution JS

Le développement préliminaire est terminé, nous devons le tester plus tard

Une chose qui m'a beaucoup préoccupé au sujet du processus est l'efficacité d'exécution de JS. Après avoir changé un
certain endroit
, il est 100 fois plus rapide que cela pour explorer les raisons spécifiques.Insérez la description de l'image iciInsérez la description de l'image ici

L'utilisation de la structure de tableau JSON + pour stocker les lignes et les colonnes (heure et nombre) des données entraîne le nombre différent de tableaux, ce qui prend beaucoup de temps:

Voie 1

Testez le code suivant ()

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;

Les résultats de l'exécution sont les suivants:
Insérez la description de l'image ici

longInsérez la description de l'image ici

Voie 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'); 

Les résultats de la mise en œuvre sont les suivants: prendre du
Insérez la description de l'image ici
temps Insérez la description de l'image ici
est en effet environ trois fois plus rapide, mais évidemment le problème n'est pas là

Et trois jours après que toutes les tâches de développement sont réellement terminées, la vitesse est celle indiquée sur la figure:Insérez la description de l'image ici

En rappelant le processus de développement, il y a une forte probabilité de bénéficier de:
1. La table est finalement indexée côté données.
2. Ma requête en arrière-plan est limitée en fonction du nombre de pages et du nombre d'affichages. La quantité de données à traiter au recto et au verso est faible. Au début, je vérifie 50 000 éléments à tour de rôle. ..
3. L'instruction de requête est optimisée, le SQL est modifié et le double GROUP BY est utilisé Le traitement préliminaire des données est placé sur la requête, ce qui simplifie la logique de traitement des données en front et en back-end.

Résumé technique:

La priorité du traitement des données est:

1,

L'optimisation de la base de données est la priorité absolue, et les méthodes telles que la sous-table de sous-base de données / ajout d'index sont le plus efficace et le meilleur effet d'optimisation;

2 、

Ensuite, il y a des instructions SQL pour rechercher des tables à traiter en fonction de différents besoins, ce qui est plus efficace que le traitement en arrière-plan et au premier plan;

3 、

Ce que SQL ne peut pas gérer, la logique qui doit être basée sur les besoins de l'opération de l'utilisateur, c'est le réel besoin d'utiliser les JAVA / JS avant et arrière pour coder le code.
Mais il y a beaucoup de considérations dans cette partie, comme le problème d'objet gc de JVM pour contrôler le nombre d'objets dans le programme, l'optimisation logique utilise moins de récursivité, moins si et plus utilise le commutateur, le sucre syntaxique, l'interface polyclonale, et même multithreading dans certaines situations ... java Il y a encore beaucoup à faire pour améliorer la capacité de programmation

4 、

Le JS frontal n'a pas besoin d'écrire une logique complexe et les performances du client auquel les différents services client accèdent sont différentes, ce qui peut entraîner une expérience utilisateur différente.

5 、

Ce développement a appris beaucoup de choses et, plus important encore, appris beaucoup de façons de résoudre les problèmes. Je sens que j'ai grandi. Le
plus important est que je suis vraiment en développement pour la première fois, et je ressens ce que c'est apporte mon travail. Du bonheur, c’est vraiment formidable de travailler dedans.
J’espère que cet élan se poursuivra à l’avenir.

Je suppose que tu aimes

Origine blog.csdn.net/Beatingworldline/article/details/113647751
conseillé
Classement