Non esiste un codice "tra i punti di rottura" ... Ci sono così tanto funzioni chiamate tra i 2 eventi ...
- Tyrius
Si dovrebbe cercare di identificare le funzioni che impiegano troppo tempo per correre.
Nota: Suppongo che la tua app non sia rallentata dai download, puoi controllare il tempo di download in Chrome Dev Tools (se TTFB è troppo alto, potresti avere una lentezza sul lato server).
Se si sa quali funzioni sono chiamati, avete due possibilità:
Quando v'è un paio di funzioni e non chiamati troppe volte:
function ExampleFunction() {
console.time("ExampleFunction");
// ExampleFunction code
// ...
console.timeEnd("ExampleFunction");
// output in console time between time() call and timeEnd() call
}
Se c'è un sacco di funzioni chiamate più volte:
Ti suggerisco di utilizzare il mio piccolo strumento JS chiamato MonitorJS per aiutare a identificare i blocchi di codice che prendono troppo tempo per eseguire:
function ExampleFunction() {
let mId = Monitor.Start("ExampleFunction");
// ExampleFunction code
// ...
Monitor.Stop(mId);
}
e quando quello di vedere quale funzione sta prendendo troppo tempo, chiama questa funzione:
function ShowMonitorRecords() {
// get all records sorted by total_time desc
let records = Monitor.GetAll().sort((a,b)=>{ return b.total_time - a.total_time; });
// print every records
for (let record of records) {
let avg = record.total_time/record.call_count;
console.log(record.name + ": " + record.total_time.toFixed(2)
+ "ms - called " + record.call_count
+ " time(s) - average time : "+ avg.toFixed(2) +"ms");
}
}
// will output something like :
// Foo: 7234.33ms - called 2 time(s) - average time : 3617.16ms
// Bar: 6104.25ms - called 3 time(s) - average time : 2034.75ms
Una volta che sai che la funzione impiega troppo tempo, puoi ridurre l'ambito di Start/Stop per identificare il blocco esatto del codice rallentando la tua app e refactoring.
Spero che questo aiuti!
puoi condividere il tuo codice? Quindi vorrei controllarlo – Ygalbel
No, non posso. È un progetto abbastanza grande ... E sto cercando una soluzione generica, che potrei usare per altri progetti e che potrebbe essere utile per la comunità ... –