Tachchen,
leider gibs noch
keine neue Version des Decimal-Include, trotzdem will ich euch aber auf dem Laufenden halten:
Wie ihr vllt selber schon gemerkt habt, sind meine Prozeduren zwar schneller als viele andere Beispiel beim rechnen von großen Zahlen, jedoch können sie immer noch nciht mit "großen" Programmen mithalten.
Darum führe ich nun intensive Geschwindigkeits-Tests durch, welche schon in den Grundrechenarten anfangen.
Gundlegende Sachen, wie die Doppelschleife beim Multiplizieren, werde ich kaum wegbekommen.
Somit wird es dort weiterhin einen Quadratischen anstieg der Rechnezeit geben, wenn die beiden Faktoren linear steigende Längen haben.
Trotzdem konnte ich die Rechenzeit von TimesDecimal
halbieren, indem ich den Übertrag beim Addieren besser "eingebunden habe".
Desweiteren muss ich mir übenlegen, ob und wieviel Speicher ich reservieren könnte, um Prozeduren in denen viele neue zwischen Speicher erstellt werden, zu beschleunigen, indem ich ein großen erstelle in dem ich mich dann bewege.
Auch habe ich überlegt nun nicht mehr mit AllocateMemory speicher für Dezimalzahlen zu reservieren, sonden eine Structure mit einem Array zu nehmen.
Leider habe ich dabei festgestellt das dort ein Array langsammer "ReDim't" als ein Speicher "ReAllocate't"
Leider habe ich auch noch keinen Weg gefunden, der es mit erlaubt "einfacher" mit errechneten Dezimalen zu hantieren.
Denn wenn man hier die Prozeduren falsch nutzt, kommt es sehr schnell zu Speicherüberfüllung.
Wenn man sowas hier macht:
Dann würde hier bei normalen Integers "c" immer wieder überschrieben werden.
bei meinem Code.
würde zwar immer wieder *Decimal selber überschrieben werden, jedoch würde der Speicher der alten Zahlen weiterhin im Speicher bleiben.
Es wäre immer "nerviges mitschleifen" von FreeDecimal() nötig.
Vllt werde ich das nun so lösen, indem ich keine Rückgabe von Dezimalzahlen mehr erlaube.
Stattdessen muss man die "Result-Varable" immer mit in den Parametern angeben.
Falls dann dort *ResultDecimal bereits einene SpeicherAdresse hat, wird diese automatisch freigegeben.
Eine andere Variante wäre, wenn ich mit
Interface arbeite
Wäre nett, wenn der eine Oder andere dazu ein paar Tips/Ideen hätte.