Es gibt keinen Code "zwischen den einzelnen Stützpunkten" ... Es gibt so viele Funktionen zwischen den zwei Ereignissen genannt ...
- Tyrius
Sie sollten versuchen, Funktionen zu identifizieren Das dauert zu viel Zeit zu laufen.
Hinweis: Ich gehe davon aus, dass Ihre App nicht durch Downloads verlangsamt wird. Sie können Ihre Downloadzeit in Chrome Dev Tools überprüfen (Wenn TTFB zu hoch ist, kann es zu serverseitigen Verzögerungen kommen).
Wenn Sie wissen, welche Funktionen aufgerufen werden, haben Sie zwei Möglichkeiten:
Wenn es ein paar Funktionen und nicht allzu genannt oft:
function ExampleFunction() {
console.time("ExampleFunction");
// ExampleFunction code
// ...
console.timeEnd("ExampleFunction");
// output in console time between time() call and timeEnd() call
}
Wenn es viel von Funktionen, die oft genannt werden:
Ich empfehle Ihnen, mein kleines JS-Tool namens 0 zu verwendenhelfen Sie Codeblöcke, die zu viel Zeit identifizieren laufen:
function ExampleFunction() {
let mId = Monitor.Start("ExampleFunction");
// ExampleFunction code
// ...
Monitor.Stop(mId);
}
und wenn Sie was zu sehen, welche Funktion zu viel Zeit nimmt, rufen Sie diese Funktion:
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
Sobald Sie wissen, welche Funktion benötigt zu viel Zeit, Sie können den Umfang von Start/Stop reduzieren, um den genauen Code-Block zu identifizieren, der Ihre App verlangsamt und umgestaltet.
Hoffe, das hilft!
können Sie Ihren Code teilen? Also würde ich es überprüfen – Ygalbel
Nein kann ich nicht. Es ist ein ziemlich großes Projekt ... Und ich suche nach einer generischen Lösung, die ich für andere Projekte verwenden könnte und die für die Community hilfreich sein könnte ... –