AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Netzwerke Delphi Vorgehensweise Threads + TIdTCPClient
Thema durchsuchen
Ansicht
Themen-Optionen

Vorgehensweise Threads + TIdTCPClient

Ein Thema von frasch75 · begonnen am 28. Jan 2021 · letzter Beitrag vom 30. Jan 2021
Antwort Antwort
frasch75

Registriert seit: 21. Jan 2012
Ort: Leipzig
3 Beiträge
 
Delphi 10.3 Rio
 
#1

AW: Vorgehensweise Threads + TIdTCPClient

  Alt 29. Jan 2021, 16:57
Vielen Dank für die ausführliche Antwort. Die hat dann gleich mehrere "Anschubser" bewirkt...

Die bisherige Programmversion war wohl mehr eine schnell hingeschluderte Variante, die im Grundsatz macht was sie soll, aber halt ihre Performancegrenzen hat.

Nun geht es halt an die schrittweise Optimierung incl. Prüfung auf Thread-Möglichkeiten:
- Optimierung der xml-Abfragen an sich (Ergebnis geht bislang zeilenweise in eine StringList)
- anschließendes xml-Parsing in eine Datenstruktur (TList of records)
- und Manipulation der Daten für die endgültige Anzeige (da müssen diverse Flags und Randbedingungen aus den xml-Ergebnissen ausgewertet und in weitere Properties geschrieben werden)
- ...

Wer keine Arbeit hat, macht sich halt welche und der Mensch wächst an seinen Aufgaben

Vielen Dank nochmals für die Anregungen!

VG Frank.
  Mit Zitat antworten Zitat
TurboMagic

Registriert seit: 28. Feb 2016
Ort: Nordost Baden-Württemberg
3.076 Beiträge
 
Delphi 12 Athens
 
#2

AW: Vorgehensweise Threads + TIdTCPClient

  Alt 30. Jan 2021, 12:57
Bedeutet dass, dass du das XML Parsen "von Hand" machst?
Es gibt in Delphi nämlich auch XML Parser...
  Mit Zitat antworten Zitat
frasch75

Registriert seit: 21. Jan 2012
Ort: Leipzig
3 Beiträge
 
Delphi 10.3 Rio
 
#3

AW: Vorgehensweise Threads + TIdTCPClient

  Alt 30. Jan 2021, 15:38
ähm, in der ersten Version schon

Bin jetzt gerade dabei, mir das Grundgerüst für die verbesserte Version zusammenzubasteln. Da soll dann auch das Parsen verbessert werden. Deswegen habe ich die Anregungen gerne aufgenommen, auch wenn das jetzt weit über meine ursprüngliche Anfrage hinausgeht. Aber manchmal sieht man den Wald vor Bäumen nicht...

Die API-Abfragen (xml) werde ich normal ohne separate Threads laufen lassen, das scheint mir nach einem ersten Test recht schnell zu gehen. Da kommen dann neu erstmal nur TStringLists raus. Aber die Performance muss ich mir dann erstmal am Lifesystem anschauen, das Testsystem hat nicht so viele Einträge.
Die TStringLists müssten dann geparst werden, wobei ich noch darüber nachdenke, dann nur die letzten Detailabfragen (die als Parameter eine ID aus der Hauptabfrage benötigen, wozu die allerdings schonmal interpretiert sein muss) in jeweils eigenen Threads laufen zu lassen.

Dann hat sich auch das Thema IdTCPClient i.Z. mit Threads erledigt.

Als Ergebnis des xml-Parsers bräuchte ich dann mehrere TLists of record, die eine Kombination der verschiedenen xml-Felder aus den 3 Abfragen darstellen. Allerdings müssen einige der xml-Felder vorher noch manipuliert und anschließend die TLists aktualisiert werden. Letzteres dürfte nicht so lange dauern, die meiste Zeit werde ich wohl bislang beim Auseinanderpflücken und Umarbeiten der xml-Strings verplempern.

Für die Tests lasse ich erstmal den ganzen GUI-Kram weg, will erstmal sehen, wie dann nach den ganzen Änderungen die gesamte Abfrage-/Bearbeitungsperformace aussieht. In der Zwischenzeit kann ich bei Bedarf ganz gut mit der alten Version arbeiten, so dass auch kein Zeitdruck besteht.

VG
Frank.
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 21:41 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz