Deutsches AutoHotkey Homepage AutoHotkey Community
Wir helfen uns gegenseitig aus der Patsche
 
 FAQFAQ   SuchenSuchen   MitgliederlisteMitgliederliste   RegistrierenRegistrieren 
 ProfilProfil   Einloggen, um private Nachrichten zu lesenEinloggen, um private Nachrichten zu lesen   LoginLogin 

[Threadsplit] Doppelklick
Gehe zu Seite Zurück  1, 2, 3  Weiter
 
Neues Thema eröffnen   Neue Antwort erstellen    AutoHotkey Community Foren-Übersicht -> Smalltalk
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen  
Autor Nachricht
msgbox



Anmeldedatum: 05.05.2007
Beiträge: 727
Wohnort: C:\

BeitragVerfasst am: So Aug 19, 2007 6:18 pm    Titel: Antworten mit Zitat

Ich glaube ich muss gleich wieder einen [Threadsplit] erstellen: [Threadsplit] "[Threadsplit] Doppelklick"
Fang bitte nicht an zu nerven!
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
BoBo¨
Gast





BeitragVerfasst am: So Aug 19, 2007 6:49 pm    Titel: Antworten mit Zitat

Zitat:
Ich glaube ich muss gleich wieder einen [Threadsplit] erstellen: [Threadsplit] "[Threadsplit] Doppelklick"
Warum?
Nach oben
msgbox



Anmeldedatum: 05.05.2007
Beiträge: 727
Wohnort: C:\

BeitragVerfasst am: So Aug 19, 2007 6:57 pm    Titel: Antworten mit Zitat

@BoBo: merkst du nicht das du die ganze zeit von thema ablenkst? Ich will auf deine kommentare nicht weiter eingehen Twisted Evil
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
AGU
Gast





BeitragVerfasst am: So Aug 19, 2007 7:01 pm    Titel: Antworten mit Zitat

Mein PC ist tatsächlich ein älteres Modell. Ich habe ja schon vorher geschrieben, das in dem Fall (zwei Schleifendurchläufe) der Performanceunterschied nicht umbedingt ins Gewicht fallen muss.

Deswegen ist Gapas Code trotzdem performanter als deiner. Wenn der Unterschied auf deinem System so gering ist, kannst du zum Test ja mal hundert Schleifendurchläufe machen. Dann sollte der Performanceunterschied auf alle Fälle sichtbar werden.
___________________
Gruß AGU
Nach oben
msgbox



Anmeldedatum: 05.05.2007
Beiträge: 727
Wohnort: C:\

BeitragVerfasst am: So Aug 19, 2007 7:11 pm    Titel: Antworten mit Zitat

AGU hat Folgendes geschrieben:
#Deswegen ist Gapas Code trotzdem performanter als deiner. Wenn der Unterschied auf deinem System so gering ist, kannst du zum Test ja mal hundert Schleifendurchläufe machen. Dann sollte der Performanceunterschied auf alle Fälle sichtbar werden.


Aber hast du auch beachtet das the_boxer direckt am anfang es auch mit einer loop schleife gemacht hat Question Ich hab ja nur den fehler im loop verbessert Exclamation Wink

Aber der fehler war bei dir, den du auch zugegeben hast...(ich will nicht provozieren)


Wink
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
BoBo¨
Gast





BeitragVerfasst am: So Aug 19, 2007 7:39 pm    Titel: Antworten mit Zitat

Zitat:
merkst du nicht das du die ganze zeit von thema ablenkst?
Nein. Doch das du mich darauf hinweist, hilft mir unendlich. Danke msgbox Very Happy
Nach oben
AGU
Gast





BeitragVerfasst am: So Aug 19, 2007 7:48 pm    Titel: Antworten mit Zitat

Zitat:
Aber hast du auch beachtet das the_boxer direckt am anfang es auch mit einer loop schleife gemacht hat
Natürlich. Aber the_boxers Ansatz ist nicht sehr gut. Das sollten die Performancetests doch inzwischen gezeigt haben. Er ist nun mal Anfänger und weiß es nicht besser.

Deine Aufgabe als Supporter ist, ihm zu zeigen, wie es besser geht. Und nicht einen schlechten Ansatz so hinzubiegen, das es mit Ach und Krach funktioniert.

Um es mal mit einem abstrusen Beispiel zu demonstrieren:
Wenn jemand in die Werkstatt kommt, weil ständig zu wenig Kühlwasser im Kühlkreislauf ist, wäre das klügste doch, das Leck zu beseitigen.
Du würdest ihm stattdessen raten, alle paar Kilometer anzuhalten, und neues Kühlwasser nachzufüllen.

Das Ergebnis ist das gleiche. Das Auto fährt weiter. Der Unterschied ist, der eine muss alle paar Kilometer anhalten, während es im anderen Fall mit einer einmaligen Reperatur erledigt ist.
Nun rate mal, in welchem der beiden Fälle man eher am Ziel ist. Wink

EDIT
Die Reperaturlösung ist eindeutig performanter, als ständig Kühlwasser nachzufüllen.
_______________________
Gruß AGU
Nach oben
denick



Anmeldedatum: 15.09.2006
Beiträge: 1087
Wohnort: Berlin

BeitragVerfasst am: Di Aug 21, 2007 9:20 am    Titel: Antworten mit Zitat

Hallo msgbox, hallo AGU,

BoBo" ist in diesem Thread mal wieder sehr präsent, es geht auch um das Thema Performance, da muss wohl auch der denick ins Rampenlicht treten.

Es ist unbestritten, die Lösung mit der Loop ist in keiner Weise falsch, doch es gibt mit ClickCount eine Alternative. Sie verkürzt den Code und verbessert damit die Lesbarkeit, und sie könnte vielleicht auch schneller sein.

Ein Performancevorteil wirkt sich natürlich bei einem einzigen Doppelklick nicht spürbar aus, doch in einem längeren Skript gibt es viele Möglichkeiten, Performancevorteile zu verschenken, und sie summieren sich über die Laufzeit.

Meine ursprüngliche Entscheidung zwischen AutoIt und AutoHotkey habe ich ausschließlich wegen der Performance zugunsten von AHK getroffen. Die Syntax von AutoIt3 gefällt mir wesentlich besser und die Hotkey- und HotString-Funktionalitäten von AHK benötige ich persönlich nur sehr selten.

Nun ist A_TickCount wegen seiner Auflösung von 10 ms nicht wirklich dafür geeignet, kurze Anweisungsfolgen zu messen. Das steht so auch in der Hilfe. Um einen Eindruck von den Laufzeitunterschieden zu erlangen, kann man sich aber damit behelfen, die Anweisungsfolgen in einer Loop mehrfach laufen zu lassen. Dann wird das Ergebnis zuverlässiger.

Ich habe das mal gemacht, um zu prüfen, ob es da wirklich Performanceunterschiede gibt. Auf meinem Rechner mit einem auch nicht mehr ganz aktuellen AthlonXP liefert das Skript das auch für mich überraschende Ergebnis, dass bei 100 Wiederholungen die Laufzeitunterschiede minimal sind (weniger als 1 %), wenn SetBatchLines, -1 verwendet wird.

Code:
#NoEnv
SetBatchlines, -1
SetMouseDelay, 0

Count := 100

StartTime := A_TickCount
Loop, %Count%
{
   Loop, 2 ; führt das zwischen den {} zwei mal aus
   {
      MouseClick, left,  500,  500 ; die sache die ausgeführt wird
   }
}
EndTime := A_TickCount
Time1 := EndTime - StartTime

StartTime := A_TickCount
Loop, %Count%
{
   MouseClick, left,  500,  500, 2 ; die sache die ausgeführt wird
}
EndTime := A_TickCount
Time2 := EndTime - StartTime

Gui, Margin, 20, 20
Gui, Add, Text, , Zeit für %Count% Durchläufe in Millisekunden:
Gui, Add, Text, Section, Loop:
Gui, Add, Text, , Clickcount:
Gui, Add, Text, ys, %Time1%
Gui, Add, Text, , %Time2%
Gui, Add, Button, gGuiClose, OK
Gui, Show, , Performance

Return

GuiClose:
GuiEscape:
Gui, Destroy
ExitApp


Das hätte ich so nicht erwartet, es ist aber so! Shocked
_________________
Hilfe zur Hilfe

(de)nick
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
BoBo¨
Gast





BeitragVerfasst am: Di Aug 21, 2007 10:06 am    Titel: Antworten mit Zitat

@ denick
Zitat:
BoBo" ist in diesem Thread mal wieder sehr präsent
Soll keiner sagen das ich nicht vorab gewarnt hätte ... Laughing
Zitat:
Deine Beratungsresistenz scheint doch ausreichend resistent zu sein - damit stehen uns sicher noch viele unterhaltsame (philosophische) Stunden bevor ...
Nach oben
msgbox



Anmeldedatum: 05.05.2007
Beiträge: 727
Wohnort: C:\

BeitragVerfasst am: Di Aug 21, 2007 11:36 am    Titel: Antworten mit Zitat

denick hat Folgendes geschrieben:
Laufzeitunterschiede minimal sind (weniger als 1 %)...


Da hab ich wohl recht Laughing
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
BoBo¨
Gast





BeitragVerfasst am: Di Aug 21, 2007 11:46 am    Titel: Antworten mit Zitat

@ msgbox
Dann eben noch mal. Aber, 8ung! Langsam lesen.
Zitat:
AGU als Gast - Verfasst am: So Aug 19, 2007 3:00 pm
--------------------------------------------------------------------------------
Du hast Recht und ich meine Ruh.
_____________________
Gruß AGU
Nach oben
msgbox



Anmeldedatum: 05.05.2007
Beiträge: 727
Wohnort: C:\

BeitragVerfasst am: Di Aug 21, 2007 11:48 am    Titel: Antworten mit Zitat

8ung L8ter sk8 witzig

Naja, das heist wohl das ein moderator einen fehler gemacht hat Razz
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
AGU
Gast





BeitragVerfasst am: Di Aug 21, 2007 12:51 pm    Titel: Antworten mit Zitat

Hallo denick,

Zitat:
Nun ist A_TickCount wegen seiner Auflösung von 10 ms nicht wirklich dafür geeignet, kurze Anweisungsfolgen zu messen.
Das ist mir bekannt. Deswegen auch mein Hinweis, das bei zwei Schleifendurchläufen der Performanceunterschied vernachlässigbar ist.

Zitat:
Auf meinem Rechner mit einem auch nicht mehr ganz aktuellen AthlonXP liefert das Skript das auch für mich überraschende Ergebnis, ...
Hast du das Skript mehr als einmal laufen lassen? Ich habe dein Skript so 20 mal durchlaufen lassen. Auf meinem alten AthlonXP zeigen sich zwischen 1% und 5%. In einigen Fällen sogar über 10%. Da das aber ungewöhnliche Ausschläge sind, lasse ich die mal außen vor.

Ich habe die Maus nicht bewegt. Nur das Skript laufen gelassen und auf den GUI gewartet. Ein paar Ergebnisse waren.

Code:
Loop - Clickcount

1082 - 1071
1071 - 1062
1091 - 1052
1072 - 1071
1092 - 1042

____________________
Gruß AGU
Nach oben
BoBo¨
Gast





BeitragVerfasst am: Di Aug 21, 2007 12:55 pm    Titel: Antworten mit Zitat

Zitat:
Naja, das heist wohl das ein moderator einen fehler gemacht hat
Ne, in der Hauptsache hat es gezeigt das du unbelehrbar bist, denn dein Versuch AGUs anspruchvolleren Lösungsansatz als Themaverfehlung zu outen, ist eben nur noch doppelt gaga.

Altersstarsinn wäre ein anrechenbarer mildernder Umstand, doch der lässt sich, AFAIK, bei einem 15jährigen in der Regel kaum rechtfertigen. Wink
Nach oben
msgbox



Anmeldedatum: 05.05.2007
Beiträge: 727
Wohnort: C:\

BeitragVerfasst am: Di Aug 21, 2007 1:14 pm    Titel: Antworten mit Zitat

Also mein PC ist recht neu. Nicht so wie bei AGU(nicht böse gemeint)! Bei mir sind die werte immer fast gleich...

@BoBo: Geh nochmal an den flughafen und such die 00 ab Razz Und sag anschliesend wie viel zu gezählt hast Laughing Wink
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Beiträge der letzten Zeit anzeigen:   
Neues Thema eröffnen   Neue Antwort erstellen    AutoHotkey Community Foren-Übersicht -> Smalltalk Alle Zeiten sind GMT
Gehe zu Seite Zurück  1, 2, 3  Weiter
Seite 2 von 3

 
Gehe zu:  
Du kannst Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum antworten.


Powered by phpBB © 2001, 2005 phpBB Group
Deutsche Übersetzung von phpBB.de