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.
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:
long
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
temps
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:
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.