AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

programm mit thread langsamer als ohne

Offene Frage von "jaenicke"
Ein Thema von canonmclay · begonnen am 7. Jun 2011 · letzter Beitrag vom 10. Jun 2011
Antwort Antwort
Benutzerbild von ULIK
ULIK

Registriert seit: 25. Sep 2006
Ort: Regensburg
427 Beiträge
 
Delphi 11 Alexandria
 
#1

AW: programm mit thread langsamer als ohne

  Alt 9. Jun 2011, 19:16
so ich gebs auf^^... leider hat keiner der denkansätze mehr was ergeben (ich hab sogar meinen inkompetenten ex-infolehrer gefragt, der hat mich mit fragezeichen in den augen angeschaut, als ich was von Threads erzählt habe...)

fazit: ich versuch dieses Progi mit c++ und werde mich da mal einarbeiten


vielen Danke für eure hilfe

greez McLay
Hast Du denn jetzt schon mal die einzelnen Zeiten gemessen?! Wie lange [ms] z.B. braucht denn die Execute Methode?
Und vor allem: wie oft wird denn der Thread gestartet? Zähl das doch mal mit.


Grüße,
Uli
  Mit Zitat antworten Zitat
canonmclay

Registriert seit: 7. Jun 2011
12 Beiträge
 
#2

AW: programm mit thread langsamer als ohne

  Alt 10. Jun 2011, 00:20
also für einen ganz durchlauf der knacke funktion werden ca. 18 sek benötigt.

die Zeit bis vor dem ersten synchro ist nicht messbar (zu klein, wird 0 ausgegeben)

die zeit für den ersten synchro ist 0,0004 sek

die zeit für das durchlaufen der while schleife (damit man nicht umblättern muss hier nochmal der code... )

Delphi-Quellcode:
 queryperformancecounter(zeit1);
   abc:=' ';//Das sind die ERSTEN Acsii-Zeichen (3x leer) mit denen begonnen wird

   while length(abc)<4 do
     begin
       if suchwort=MD5Print(MD5String(ersterbuchstabe+abc)) then
         begin
           g:=true;
           result:=abc;
           break;
         end; // if suchwort

       abc:=strhoeher(abc);
     end; // while

  queryperformancecounter(zeit2);
  zeitberechnen((zeit2-zeit1),ges);
  showmessage(ges);
dauert ca. 18 sek. also muss hier ja der fehler liegen. Da diese Stelle aber 1 zu 1 übernommen wurde aus dem Programm ohne Threads, weiß ich halt echt nicht mehr weiter.


der thread wird einmal gestartet (hab mit process explorer nochmal nachgeschaut ), also an zu vielen threads wirds eher nicht liegen... und halt sobald er fertig gelaufen ist, wird der nächste angestoßen.


zu dem c++: ich wollt das erstens schon immer mal lernen (hab hier n einführungsbuch rumfliegen^^), und man kann damit auch dann das ganze für die grafikkarten (CUDA) programmieren . Zudem ist das denk ich mal ne ganz gute fingerübung mal n progri in eine andere sprache zu übersetzen . Zuletzt ist c++ in meinem späteren Beruf eher wichtig, als das anwenderorientierte delphi, von daher tue ich mir in dem Bereich direkt einen gefallen . Und außerdem, wenn das mit c++ besser läuft, werde ich versuchen (kA ob das geht, aber heutzutage ist ja alles möglich ), die Rechenroutine mit den threads (wer weiß villt klappts damit ja doch besser ), mit dem Delphi projekt zu verbinden, sodass ich die Server - Client aplikation weiterhin nutzen kann, die ich extreeeeeemst praktisch finde bei delphi . Außerdem keine sorge, ich werde auch weiterhin delphi nutzen, eben aufgrund der einfach zu gestaltenden oberflächen


Lol, du bist lustig.
Du denkst mit c++ wird das anders? Nicht die Programmiersprache ist schuld, sondern der, der sie falsch verwendet!
bevor ich mich auf die Anklagebank setzte und mir anhören muss, das ich zu doof bin das zu programmieren, bitte ich den ankläger um einen evtl. anderen Lösungsvorschlag

PS: JA ich mag smileys
  Mit Zitat antworten Zitat
Benutzerbild von jaenicke
jaenicke

Registriert seit: 10. Jun 2003
Ort: Berlin
9.966 Beiträge
 
Delphi 12 Athens
 
#3

AW: programm mit thread langsamer als ohne

  Alt 10. Jun 2011, 06:03
Ich muss das mal mit Delphi 6 probieren. Denn mit Delphi XE kann ich keine nennenswerten Unterschiede zwischen den Versionen feststellen.

Kannst du das bitte einmal inkl. deiner Zeitmessung anhängen? Ich würde dann einmal einen virtuellen PC mit Delphi 6 nehmen und es heute Abend dort testen, vielleicht liegt es ja an der Delphiversion...
Sebastian Jänicke
AppCentral
  Mit Zitat antworten Zitat
Jumpy

Registriert seit: 9. Dez 2010
Ort: Mönchengladbach
1.740 Beiträge
 
Delphi 6 Enterprise
 
#4

AW: programm mit thread langsamer als ohne

  Alt 10. Jun 2011, 08:09
Zitat:
der thread wird einmal gestartet (hab mit process explorer nochmal nachgeschaut ), also an zu vielen threads wirds eher nicht liegen... und halt sobald er fertig gelaufen ist, wird der nächste angestoßen.
Ich hab mich in Threads bisher erst eingelesen und warte noch auf eine sinnvolle Aufgabe, das mal einzusetzen, aber obige Aussage kommt mir komisch vor.

Wenn (ausser dem Hauptthread) nur ein Thread da ist: Wo ist da der Sinn (außer man will Fortschrittsbalken steuern oder ähnl.) Müsste man denn nicht mindestens zwei machen, die parallel Arbeiten? Wie rechenintensiv müssen Aufgaben sein (nicht sehr, ich weiß, aber e bissle doch schon, oder?), dass Programmierung mit Threads trotz es Overheads effektiver wird als ohne?
Ralph
  Mit Zitat antworten Zitat
Benutzerbild von jaenicke
jaenicke

Registriert seit: 10. Jun 2003
Ort: Berlin
9.966 Beiträge
 
Delphi 12 Athens
 
#5

AW: programm mit thread langsamer als ohne

  Alt 10. Jun 2011, 12:30
Also erstens geht es auch darum, dass die GUI noch reagiert, aber in diesem Fall ist es nur ein Thread, weil er es damit erst einmal testen wollte, das hatte er glaube ich irgendwo schon geschrieben.
Sebastian Jänicke
AppCentral
  Mit Zitat antworten Zitat
canonmclay

Registriert seit: 7. Jun 2011
12 Beiträge
 
#6

AW: programm mit thread langsamer als ohne

  Alt 10. Jun 2011, 13:23
du nimmst mir die worte aus dem mund jaenike, besser hätte ichs nicht ausdrücken können

Ich hab jetzt mal eine Version mit den Zeitmessungen um die while schleife angehangen. Wenn die Zeitmessung woanders stattfinden soll, einfach

Delphi-Quellcode:
queryperformancecounter(zeit1);

//...code...

queryperformancecounter(zeit2);
zeitberechnen((zeit2-zeit1),ges);
showmessage(ges); //Anzeige
benutzen

könnte das villt auch ein betriebssystem Problem sein? Also ein mit Delphi 6 kompiliertes Projekt auf einer Win 7 64 Maschine...
Angehängte Dateien
Dateityp: rar Client + Server(zeitmessung).rar (768,6 KB, 10x aufgerufen)

Geändert von canonmclay (10. Jun 2011 um 13:23 Uhr) Grund: hoppla anhang vergessen x)
  Mit Zitat antworten Zitat
Benutzerbild von ULIK
ULIK

Registriert seit: 25. Sep 2006
Ort: Regensburg
427 Beiträge
 
Delphi 11 Alexandria
 
#7

AW: programm mit thread langsamer als ohne

  Alt 10. Jun 2011, 14:40
Also, hab es gerade mal in einer VM mit Delphi 7 und unter Windows 2000 laufen lassen: Große Unterschiede haben beide Varianten nicht gezeigt: beides dauerte pro Durchlauf so um die 11 Sekunden.
Was das Ganze aber auf Clientseite sehr beschleunigt hat: FastMM einbinden! Dadurch ist die Laufzeit auf knapp 6 Sekunden runter. Und nachdem ich das Ganze auch noch durch den Profiler gejagt hab: die MD5 Unit ist diejenige, wo die Zeit verbraten wird (in den Stringoperationen dort).

Was die unterschiedlichen Laufzeiten betrifft: stopp auf deinem Rechner doch mal alle Rechenzeitfresser: MP3 und Videosoftware oder Chats (oder was Du sonst noch so am Laufen hast). Hat das denn eine Auswirkung?


Grüße,
Uli
  Mit Zitat antworten Zitat
canonmclay

Registriert seit: 7. Jun 2011
12 Beiträge
 
#8

AW: programm mit thread langsamer als ohne

  Alt 10. Jun 2011, 15:20
kannst du villt die von dir Kompilierten dateien hochladen? fänd ich super, dann kann ich das mal hier ausprobieren... dann sollte ich mir mal ggf. ne neue delphi version zulegen ... gibt es sowas für schüler für lau ?
  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 07:09 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