Mid() vs Mid$()
Entsprechend der Dokumentation in VB6 die Mid () - Funktion gibt eine Variante, aber Mid$() gibt einen string zurück, und anscheinend effizienter ist.
Meine Fragen sind :
-
Was einfacher test kann ich verwenden, um zu erkennen, dass der Unterschied in der Leistung ? Ich habe versucht, monitoring-eine einfache app, die Durchführung von ein paar string-Operationen mit Perfmon, aber es gab keine
erkennbaren Unterschied. -
Lohnt es sich, sich Gedanken über? Ich habe bekommen in die Gewohnheit, mit dem $-zentrale Funktionen,
aber soll ich jeden empfehlen, der auf mein team, es auch zu benutzen?
- Jetzt können Sie up-Abstimmung. 😉
- Nichts falsch mit ein bisschen quid pro quo. 🙂
Du musst angemeldet sein, um einen Kommentar abzugeben.
Nicht Wert ist sich Gedanken über. Es ist ein überbleibsel aus Microsoft Basic von vor 15-20 Jahren, wenn ein schneller Prozessor war um Größenordnungen langsamer als alles, was heute.
Es hat einen gewissen ästhetischen Reiz zu verwenden, Mid$, anstatt lassen Sie VB, festzustellen, was Ihre Datentypen sind, obwohl. Und wenn Sie irgendwelche Schleifen, die ausgeführt es, sagen wir, Tausende von tiems eine Sekunde, dann Ihre Neugier-Faktor erhöhen könnte. Ansonsten, neh.
Hier ist ein link jemandem gemessen, der Unterschied. Mid$ war etwa 2,5-mal so schnell wie Mid. Einschließlich tests geht zurück auf VB4.
Während sich die Leistung zwischen Ihnen vernachlässigbar ist, es ist nicht wirklich ein Unterscheidungsmerkmal, welche zu verwenden, sowieso.
Kann es einige Nuancen, die bei einer Variante, wenn ein starker Typ ist erforderlich. Zum Beispiel, was passiert, wenn Sie übergeben eine Variante von einem parameter erwartet einen ByRef-string? Nichts schlimmes, aber etwas ein wenig mehr als die übergabe einer Adresse passiert.
Daher, wenn Sie wissen, dass Sie wollen, um die Arbeit mit strings, dann gehen Sie vor und verwenden Sie das $ - Versionen dieser Funktionen, die das Verhalten von Ihnen und Ihrer Verwendung in anderen Ausdrücken ist einfacher und besser zu verstehen. Wenn Sie wissen, Sie müssen eine Variante und Ihre Eingänge sind Varianten dann sicher, dass die nicht $ - Versionen.
Ehrlich gesagt, finde ich es vernachlässigbar.
Vielleicht können Sie versuchen, so etwas wie dieses. Laden Sie die "High-Performance-Timer-Objekt" aus http://ccrp.mvps.org/, machen eine lange Schleife (1.000.000 Iterationen oder so) von string-Operationen, und Messen die Laufzeit Unterschied. Von "Operationen" meine ich: Verkettung von
Variant
s im Gegensatz zur Verkettung vonString
s.Mid()
undMid$()
sehr wahrscheinlich, führen die gleichen. OTOH - test können Sie , dass als gut.Wenn du hast, ich wäre daran interessiert, wenn Sie veröffentlicht die Ergebnisse.