INFO: Dieses Forum nutzt Cookies...
Cookies sind für den Betrieb des Forums unverzichtbar. Mit der Nutzung des Forums erklärst Du dich damit einverstanden, dass wir Cookies verwenden.

Es wird in jedem Fall ein Cookie gesetzt um diesen Hinweis nicht mehr zu erhalten. Desweiteren setzen wir Google Adsense und Google Analytics ein.


Antwort schreiben 

3.LVF-Rätsel



Wenn dein Problem oder deine Frage geklärt worden ist, markiere den Beitrag als "Lösung",
indem du auf den "Lösung" Button rechts unter dem entsprechenden Beitrag klickst. Vielen Dank!

03.04.2007, 18:14 (Dieser Beitrag wurde zuletzt bearbeitet: 03.04.2007 19:33 von jg.)
Beitrag #11

jg Offline
CLA & CLED
LVF-Team

Beiträge: 15.864
Registriert seit: Jun 2005

20xx / 8.x
1999
EN

Franken...
Deutschland
3.LVF-Rätsel
Hallo, Leute,

hier die Ergebnisse (Tests mit verschieden langen Strings, verschiedenen Ausschnittslängen) haben ein Unentschieden ergeben. Der Unterschied zwischen ABCCAS4.vi, ABCCAS5.vi und Rätsel3.vi lag selbst nur im Millisekundenbereich und war auch nicht immer gleich. Um Unterschiede aufzuspüren, habe ich den Sourcecode jeweils in eine For-Schleife mit 50000 Wiederholungen gelegt und blind mal einen langen (80 Zeichen) String eingegeben. Ausführungszeit lag auf meinem Rechner bei allen VI's ungefähr bei 500 ms.

Speichermäßig braucht Raetsel3.vi aber etwas mehr.

Jetzt aber die erste kleine Verbesserung von Eugens Vorschlag:

   

Interessanterweise bringt die Build-Array Funktion nach ersten Versuchen einen Geschwindigkeitsgewinn von ca. 10%, Ausführungszeit lag hier bei ca. 450 ms.

Hiermit genug fürs Erste.

MfG, Jens

So, doch noch ein Nachtrag:
Habe gerade noch mal als Extremfall einen Suchstring der Art "AAA...AAA", also viele A's getestet. Bei so einem String fällt Eugens Version doch deutlich ab. Hier kann offensichtlich die "Search and Replace String"-Funktion durch die Option ReplaceAll einen Vorteil ausspielen.

Wer die erhabene Weisheit der Mathematik tadelt, nährt sich von Verwirrung. (Leonardo da Vinci)

!! BITTE !! stellt mir keine Fragen über PM, dafür ist das Forum da - andere haben vielleicht auch Interesse an der Antwort!

Einführende Links zu LabVIEW, s. GerdWs Signatur.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Anzeige
03.04.2007, 20:00
Beitrag #12

eg Offline
LVF-SeniorMod


Beiträge: 3.868
Registriert seit: Nov 2005

2016
2003
kA

66111
Deutschland
3.LVF-Rätsel
@Jens, vielen Dank für deine Bemühungen.

Eugen

Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
03.04.2007, 20:27 (Dieser Beitrag wurde zuletzt bearbeitet: 03.04.2007 20:30 von Mr.T.)
Beitrag #13

Mr.T Offline
LVF-SeniorMod


Beiträge: 1.007
Registriert seit: Jun 2005

2009
2005
kA

88400
Deutschland
3.LVF-Rätsel
Ja, echt Jens Danke!

Vielleicht hast Du noch Lust, mit ein paar gezippten Bildern zu zeigen, wie Du diesen Montor in Verbindung mit Forschleife verwendet hast - für mich und alle interessierten! THX.

Hmmm, mich wundert, dass das "heraussetzen" der Konstanten aus der Schleife nichts bringt... Man hat mir mal gesagt - und ich finde es immernoch einleuchtend - wenn die Konstanten "draussen" sind, müssen sie nicht bei jedem Schleiendurchlauf neu erstellt werden, also muss es performance bringen.
Ich habe mir das dan in C so vorgestellt:

for(int i=0;i<300;i++)
{
Rueckgabe=myfunc();
}

myfunc()
{
int k=30;
int j=21;
...
//tu was
...
}

als "schlecht" Variante und:

int k=30;
int j=21;
for(int i=0;i<300;i++)
{
Rueckgabe=myfunc(k,j);
}

myfunc(int k, int j)
{
...
//tu was
...
}

als "gute" ...hmmmmm....mir fällt gerade nicht ein, wie man nochmal die Variablen im Funktionsaufruf speichert, ich klaube das gingmit static...oder war´s const...egal, Ihr wisst, was ich meine..gelle?

Warum bringt´s nichts???
Gruß!

Mit einem freundlichen Wort und etwas Gewalt erreicht man viel mehr als nur mit einem freundlichen Wort. [...Marcus zu Lennier, B5]
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
03.04.2007, 20:43 (Dieser Beitrag wurde zuletzt bearbeitet: 03.04.2007 20:45 von eg.)
Beitrag #14

eg Offline
LVF-SeniorMod


Beiträge: 3.868
Registriert seit: Nov 2005

2016
2003
kA

66111
Deutschland
3.LVF-Rätsel
@Mr.T. habe ich am Anfang auch gedacht, aber dann habe ich mehrere Beispiele von NI angescahut, da sind die Konstanten oder Controls, die sich nicht ändern nicht ausserhalb der Schlefe platziert. Also habe ich gedacht, es hat evtl. seine Gründe(sieht auch übersichtlich aus). Also mache ich es nicht mehr, ich mache meine in die Schleife.

Eugen

P.S. es ist kein C, sondern C++. In C müssen Funktionen vor dem Aufruf definiert werden.

Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
03.04.2007, 20:50
Beitrag #15

Mr.T Offline
LVF-SeniorMod


Beiträge: 1.007
Registriert seit: Jun 2005

2009
2005
kA

88400
Deutschland
3.LVF-Rätsel
' schrieb:P.S. es ist kein C, sondern C++. In C müssen Funktionen vor dem Aufruf definiert werden.

Hehe, ja hast recht - aber nicht, weil ich die nicht vorher deklariert habe, sondern weil ich in der for(hier;Wink eine Variable definiert habe.
Soweit ich weiss, muß der Funktionsprototyp auch in C++ voer dem Aufruf bekanntgegeben werden - wenn ich drüber nachdenke bin ich mir sogar 100%-ig sicher.

Gruß

Mit einem freundlichen Wort und etwas Gewalt erreicht man viel mehr als nur mit einem freundlichen Wort. [...Marcus zu Lennier, B5]
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
03.04.2007, 21:07 (Dieser Beitrag wurde zuletzt bearbeitet: 03.04.2007 21:09 von jg.)
Beitrag #16

jg Offline
CLA & CLED
LVF-Team

Beiträge: 15.864
Registriert seit: Jun 2005

20xx / 8.x
1999
EN

Franken...
Deutschland
3.LVF-Rätsel
Danke für das LobRolleyes

@Mr.T: Nur zum Verständnis (auch wenn ich glaube, dass du schon verstanden hast), ich habe bei allen Test noch im BD eine FOR-Schleife eingefügt:
   

Sonst könnte man in Windows gar keinen Zeitverlauf messen. Viele Schleifendurchläufe, um ein passablen Durchschnitt zu erhalten. Bin übrigens zuletzt auch auf deinen ersten Vorschlag mit Sequenz und Tick-Count-Befehlen zurückgekommen, ist ja auch die Standard-Möglichkeit, um Zeitdauern in LV abzuschätzen.

Zum "Profile Performance and Performance" Manager gibt's aus meiner Sicht nicht viel zu erzählen. Einfach über das Pulldown-Menü öffnen, gewünschte Häckchen setzen, dann Start-Button drücken. Dann habe ich die zu untersuchenden VI's einfach mehrfach ausgeführt, teilweise auch über den Button "Run continously". Am Schluss Stop Button drücken.

Ach ja, zu den Konstanten ausserhalb der Schleife, vielleicht ist der LV-Compiler besser geworden. Aber dein Vorschlag müßte auf jeden Fall Vorteile bringen, wenn statt einer Konstanten ein Frontpanel-Element wäre, also im Prinzip hast du schon recht. (Edit: Jetzt war Eugen mal wieder schneller mit der Antwort).
Ich konnte aber einfach keine signifikanten Unterschiede feststellen.

Ach ja, durch aufwendige Abbruchbedingungen kann die Performance der hier vorgestellten Lösungen in Spezialfällen noch verbessert werden. Eugens Version lässt sich besonders bei der Suche nach nur wenigen Buchstaben deutlich beschleunigen. Die For-Schleife muss dann natürlich durch eine While-Schleife ersetzt werden. Auch mein Vorschlag kann durch komplizierte Abbruchbedingungen in Sonderfällen noch etwas beschleunigt werden, aber der Source-Code wird dann schon sehr unübersichtlich. Also deshalb mal keine Screenshots.

MfG, Jens

Wer die erhabene Weisheit der Mathematik tadelt, nährt sich von Verwirrung. (Leonardo da Vinci)

!! BITTE !! stellt mir keine Fragen über PM, dafür ist das Forum da - andere haben vielleicht auch Interesse an der Antwort!

Einführende Links zu LabVIEW, s. GerdWs Signatur.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Antwort schreiben 


Möglicherweise verwandte Themen...
Themen Verfasser Antworten Views Letzter Beitrag
  LVF-Bilder-Rätsel jg 856 506.418 05.06.2014 06:01
Letzter Beitrag: Kasi
  Programmier-Rätsel Mr.T 9 10.493 07.05.2007 11:05
Letzter Beitrag: Lucki
  5. LVF Rätsel mit Gewinnspiel Mr.T 33 28.721 30.04.2007 08:28
Letzter Beitrag: jg
  4.LVF-Rätsel Mr.T 200 117.890 20.04.2007 10:39
Letzter Beitrag: Y-P
  2.LVF-Rätsel Mr.T 35 28.018 12.04.2007 13:06
Letzter Beitrag: Y-P
  1. LVF-Rätsel Mr.T 24 22.227 19.03.2007 12:10
Letzter Beitrag: Mr.T

Gehe zu: