Zum Inhalt springen

Performance verbesserung Threads


U-- °LoneWolf°

Empfohlene Beiträge

Hi zusammen.

Ich habe einen WebTracker gebaut, dieser läuft über unser seiten und erstellt einen HTML Export. Durch das einbinden von Threads habe ich aus 6 std. ca.2std. hin bekommen. Jetzt ist meine frage kann ich da ncoh weiter optimieren z.b. durch die anzahl der Threads. Also gibt es eine Ideal zahl oder gilt je mehr desto besser so das ich jede analyse und jeden download in einen eigen thread packe?

Link zu diesem Kommentar
Auf anderen Seiten teilen

Was ist ein "WebTracker"? Was wird genau exportiert? Welche Algorithmen verwendest Du und wofür? Was hast Du wie auf Threads aufgeteilt? Wie viele Eingabedaten sind zu verarbeiten?

Ohne all diese (und weitere) Angaben kann man keine sinnvolle Aussage über Optimierungen machen.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Was ist ein "WebTracker"?

Sorry dachte das wäre durch den Namen klar (Von HTTRACKER) damit kannst du Webseiten Abspeichern. Um sie beispeilsweise auf einer cd zur verfügung zu stellen usw.

Was wird genau exportiert?

Unsere Intranet Seiten

Welche Algorithmen verwendest Du und wofür?

Also da ich den coed aus diversen Gründen hier nicht Posten darfin eine kurze erläuterung

Schleife für i < tife i++

{

für alle Webseiten in liste

{starte Thread Analyse

{

Öffnet wesite

suche nach allen Html Elementen(Bilder, Links usw.)

zur liste Hinzufügen

}

}

für alle elemente in liste

{

Starte Thread Download

{

Downloade alle elemente die keine website sind

wenn sie Website sind änder Datentyp auf website

}

}

}

Was hast Du wie auf Threads aufgeteilt? Wie viele Eingabedaten sind zu verarbeiten?

Es gibt eine Thread Funktion für DIe analyse so das mehrer Analysen gleichzeitg laufen können.

Genau so für den Download.

wird bei enede der analysen auf alle threads gewartet befor der download startet da an dieser stelle ein sync. Statfinden muß

Ohne all diese (und weitere) Angaben kann man keine sinnvolle Aussage über Optimierungen machen.

Sorry dachte da gäbe es vielleicht einen allgemeinen weg so nach dem schema bei n Threads wird die Performance schlechter.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Also so mal pauschal, ich blick da noch nicht durch aber wirds mal versuchen...

Also warum speicherst du nicht während der analyse? Würde doch zeit sparen, wenn du die Seiten nicht alle 2mal abrufen musst.

Denn würde ich das so machen das du eine Seite lädst, dir alle verweise reinziehst, und dann für jeden verweis einen thread startest der wieder die neue Seite analysiert und auch speichert etc.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Aha, eine Art Webcrawler soll es werden.

Bei rechenintensiven Anwendungen ist 1 Thread pro CPU oder Core ein sinnvoller Ansatz. Da im Beispiel die Threads jedoch unterschiedlich lange durch Warten auf eine Antwort vom Webserver blockieren, dürfte mehr als 1 Thread pro Kern sinnvoll sein. Wie viele, kann man experimentell ermitteln. Zu viele Threads bremsen das OS aus.

Ich vermute, dass man noch an anderer Stelle die Leistung verbessern könnte, aber ohne Sourcecode kann man wenig dazu sagen.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Alles klar schon mal thx.

Was die Anzahal angeht heist das wohl das, dass optimum von Hompage zu Hompage unterschiedlich ist. Da hier beispielsweise die anzahl analysen und Downloads sich auf Wartezeitn usw. auswirkt.

@Trux: Die Idee ist gut (Hab ich zu erst so machen wollen) nur leider führte das bei mir zu einer selsamen trägheit, ab einer gewissen Tiefe. Genaue werte habe ich nciht mehr im kopf. Ich vermute das Threads in Threads in Threads nicht so der burner sind. kA warum.

Was mir gerade noch spontan eingefallen ist.

z.Z. laufe ich bei jedem durchlauf der hauptschleife alle elemente durch und bearbeite sie nur wenn sie noch nicht bearbeitet sind. Wenn ich nun die bereits bearbeiteten elemente einfach raus nehem sollte das auch ncoh mal ein paar minuten rausholen.

Achja nur mal ein kleiner Anhaltspunkt brauche derzeit für eine HP mit 10 Ebenen und ca 2000 Dateien 90 min für anaylse download und nachbearbeitung.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Achja nur mal ein kleiner Anhaltspunkt brauche derzeit für eine HP mit 10 Ebenen und ca 2000 Dateien 90 min für anaylse download und nachbearbeitung.

Für 2000 Dateien normaler Webseiten erscheint mit das als eher langsam (ich habe aber keinen wirklichen Vergleich), vergleiche doch mal mit ähnlichen Programmen. Sind besonders große Dateien dabei oder ist der verwendete PC nicht besonders leistungsfähig?

Link zu diesem Kommentar
Auf anderen Seiten teilen

Moin Moin,

alsopp zum vergleich meine erste version brauchte für die gleiche seite 6 std.

naja und der HTTRACKER ist in etva genauso schnell (vielleicht 10 min schneller). Nur verhaut der sich gelegentlich beim speichern so das wenn ich auf Link A klicke zu seite B komme. Woraus wieder eine mehr arbeit von ca. 2std entseht da man jede seite kontrollieren und geg. korriegieren muss

Link zu diesem Kommentar
Auf anderen Seiten teilen

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...