Ich wollte gerade auf einen Beitrag antworten, als ich das sah @txnelson hatte bereits die gleiche Antwort gegeben (es gibt eine Überraschung!). Ich wollte der Antwort ein großes Lob aussprechen, aber es gibt keine Option. Es gibt eine Option, dem „Beitrag“ (also der Frage) ein großes Lob zu erteilen, aber das ergibt für mich weniger Sinn. Vermisse ich etwas?
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />Das Speichern in der Datenbank ist zu langsam (10.000 Datensätze pro Minute). hat eine Antwort von msharp Das erinnerte mich an eine für JMP 13 geplante Leistungsverbesserung. (Danke, Jeff Polzin!)
Msharp erwähnt, dass die Datenbankaktualisierungsfunktion schneller als eine andere Technik, aber immer noch nicht großartig ist.(Und sehen bryan.boone Antwort auf die ursprüngliche Frage auch ... eine weitere Leistungsverbesserung von JMP 13.) Ich habe mir das Skript angesehen (was eine clevere Möglichkeit ist, JSL und SQL zu verwenden) und gesehen, dass es Elemente am Ende einer Liste hinzufügt, etwa so:
// vorwärts bauen
vorwärtsList = {};
starttime = Tick Seconds();
For( i = 0, i < 30000, i++,
Einfügen in (forwardList, i)
);
stoptime = Tick Seconds();
Show( Stoppzeit - Startzeit );
Stoppzeit - Startzeit = 1,68333333334886; // JMP 12 Mal
Das ist in JMP 12 und früher sehr langsam.Die Liste wird intern von ihrem ersten Element gespeichert, und das letzte Element muss durch Durchlaufen der Liste entdeckt werden.InsertInto() fügt standardmäßig am Ende der Liste hinzu. Das führt zu einer N^2-Leistung: Eine Verdoppelung der Länge der Liste vervierfacht die Zeit.Es gibt eine Möglichkeit, dies zu vermeiden:
// umgekehrt erstellen
reverseList = {};
starttime = Tick Seconds();
For( i = 0, i < 30000, i++,
Einfügen in( reverseList, i, 1 )
);
reverseList = Reverse( reverseList );
stoptime = Tick Seconds();
Show( Stoppzeit - Startzeit );
Stoppzeit - Startzeit = 0,0333333334419876;
das ist besser.Die Funktion insertinto() wird mit dem dritten Argument 1 aufgerufen, um sie am Anfang der Liste einzufügen.Beachten Sie, dass auch der Aufruf der Funktion „reverse()“ in der gemeldeten Zeit berücksichtigt wird.Und die Antwort ist dieselbe:
show( ReverseList == ForwardList);
ReverseList == ForwardList = 1; // gut, in beiden Fällen die gleiche Antwort
Freuen Sie sich auf JMP 13?Hier ist es:
// vorwärts bauen
vorwärtsList = {};
starttime = Tick Seconds();
For( i = 0, i < 30000, i++,
Einfügen in (forwardList, i)
);
stoptime = Tick Seconds();
Show( Stoppzeit - Startzeit );
Stoppzeit - Startzeit = 0,0166666668374091; // Jeff ist großartig!
Um es kurz zu machen: Wenn Sie ein JMP 12-Skript haben, das eine Liste mit mehr als 100 Elementen erstellt, fügen Sie es am Anfang ein und kehren Sie es dann um.JMP 13 wird so oder so schnell sein.
Ich sehe die Kudos-Schaltfläche für Antworten im Diskussionsbereich nicht. Nur für den ersten Beitrag. Dies ist die letzte Antwort, die am 3.11. gepostet wurde:

Der Kudos-Button ist jetzt wieder für Antworten verfügbar. Ich entschuldige mich für die kurze Abwesenheit. 
Ich bemerke das seltsame Zählverhalten nicht @pmroz Berichte. Bitte lassen Sie mich wissen, ob es weiterhin so bleibt.
Das ist mir auch aufgefallen. Ich möchte jemandem Anerkennung zollen, der eine Lösung gepostet hat, aber das ist derzeit nicht möglich, da die Kudos-Schaltfläche nicht angezeigt wird.
Noch etwas: Die Kudos-Schaltfläche verhält sich inkonsistent:
0 Kudos: Klicken Sie und 1 erscheint
2 Kudos: klicken und 1 erscheint(??)