| |
|
|
| Nur so als Idee (weil ich eben ein kleines Update der rgb.inc lud) eine neue Kontainerfunktion RGB befüllt mit (einfachen?) RGB-Farb-Funktionen für mehr Geschwindigkeit.
Z.B. neueCol&=rgb(gray,col&) oder diff oder mix |
|
|
| |
|
|
|
Sebastian König | iF
Nur so als Idee (weil ich eben ein kleines Update der rgb.inc lud) eine neue Kontainerfunktion RGB befüllt mit (einfachen?) RGB-Farb-Funktionen für mehr Geschwindigkeit.
Z.B. neueCol&=rgb(gray,col&) oder diff oder mix
Mag vielleicht ganz praktisch sein, aber dass es mehr Geschwindigkeit bringen würde, bezweifle ich. Bei solchen Container-Aufrufen muss ja immer ein Stringvergleich zur Laufzeit durchgeführt werden (i.e. Schleife!)... damit sich dieser Overhead lohnt, müssten die Farbfunktionen schon ausreichend aufwendig sein.
MfG
Sebastian |
|
|
| |
|
|
|
| Drum mag ich das Prinzip auch nicht sonderlich.
Da rgb bereits eine Funktion ist, vielleicht rgb.mix(). |
|
|
| |
|
|
|
| |
|
| |
|
|
|
Sebastian König | Hmm, ist schwer einzuschätzen...
Für eine Umsetzung in einer Containerfunktion spricht natürlich, dass damit die Berechnung an sich nativ ausgeführt wird. Dagegen halt die Sache mit dem Stringvergleich. Genauer gesagt: Wenn man nicht der erste ein TRUE ergibt, sind es sogar mehrere, denn eine solche Containerfunktion sieht ja immer etwa so aus: (natürlich in PASCAL ) KompilierenMarkierenSeparieren Ob man also einen Geschwindigkeitsvorteil hat, hängt also wohl nicht nur von der Komplexität der Funktion, sondern womöglich auch noch von der Stelle in der Abfrage-Liste ab...
Für Profan2Cpp zumindest wäre die Container-Variante ziemlich sicher langsamer. Vielleicht hat meine Bewertung zu sehr einen Bias in diese Richtung...
MfG
Sebastian |
|
|
| |
|
|
|
| Könnte man vielleicht, wenn der Parameter eine Stringkonstante ist und kein Argument, den Aufruf vorher in einen statischen Aufruf konvertieren. (Lieber einmalig diese Last des Stringvergleiches als zur Laufzeit.) |
|
|
| |
|
|
|
Sebastian König | iF
Könnte man vielleicht, wenn der Parameter eine Stringkonstante ist und kein Argument, den Aufruf vorher in einen statischen Aufruf konvertieren. (Lieber einmalig diese Last des Stringvergleiches als zur Laufzeit.)
Ja, zur Optimierung von API-Aufrufen gehe ich zum Teil schon in diese Richtung...
Nachtrag: Bei XProfan selbst mag das vielleicht nicht mit dem Grund, warum die Container-Funktionen ursprünglich eingeführt wurden, vereinbar sein. Ging es nicht irgendwie um eine Knappheit von Funktionsnummern? |
|
|
| |
|
|
|
| |
|
| |
|
|
|
Sebastian König | iF
In dem Fall, in dem dort wieder ein String steht, hätte man ja nichts gewonnen... Die Variante mit eineKonstante macht da schon eher Sinn - aber dann könnte man auch gleich ein paar interne Header-Definitionen dafür einbauen und sich die Umwandlung mit dem Präkompiler sparen...
[offtopic] Ich mag irgendwie die Schreibweise mit dem Punkt nicht so... zwar gibt es offiziell (leider!) keine Liste von Zeichen, die in XProfan-Namen (für Funktionen, Prozeduren, Variablen etc.) vorkommen dürfen, aber mit Blick darauf, dass der Punkt im Moment schon zum Zugriff auf Attribute und Methoden benutzt wird, bewegt man sich mit seiner freien Verwendung zumindest in einer Grauzone... [/offtopic] |
|
|
| |
|
|
|
|
In dem Fall, in dem dort wieder ein String steht, hätte man ja nichts gewonnen...
Der Trick beseitigt das ID-Mangel-Problem, dass könnte schon ein Gewinn sein.
Auch ein String ist imho garnicht notwendig - gibt doch genug IDs im Format Long: KompilierenMarkierenSeparierenumwandeln vom in XProfan eingebauten Präkompiler in KompilierenMarkierenSeparierenDanach kann Roland imho neue Funktionsnamen erfinden ohne auf die IDs achten zu müssen. |
|
|
| |
|
|
|
| Weil ich auf lange Sicht weder damit "leben" würde wollen, dass ein Overhead solche Funktionen verlangsamt, noch das solche Funktionen zu realisieren möglicherweise so langwierig wäre, musste eine Lösung her.
Also habe ich mir Deine MemoryModule.Inc [...] geschnappt um mir Inline-Assembler bereitzustellen.
Letztendlich sind ziemlich nette nProcs [...] (alpha) dabei herausgekommen, mal schauen ob mir dies den gewünschten Effekt bereitet - wenn der Tag doch nur 200h hätt. ^^ |
|
|
| |
|
|