Italia
Wünsche und Anregungen

Idee: Neue Kontainerfunktion "RGB"

 
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 per mehr Geschwindigkeit.

Z.B. neueCol&=rgb(gray,col&) oder diff oder mix
 
14.03.2009  
 




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 per 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
 
Windows XP, XProfan/Profan² 4.5 bis 11
Profan2Cpp-Homepage:  [...] 
Alte Profan²-Seite:  [...] 
14.03.2009  
 



Drum mag ich das Prinzip auch nicht sonderlich.

Da rgb bereits eine Funktion ist, vielleicht rgb.mix().
 
14.03.2009  
 



Wie relevant würdest Du den Overhead einschätzen bei z.B. einer Funktion mit konstant 2 Long-Parametern?
KompilierenMarkierenSeparieren
 
16.03.2009  
 




Sebastian
König
Hmm, ist schwer einzuschätzen...

Für eine Umsetzung in einer Containerfunktion spricht naturalmente, dass damit die Berechnung an sich nativ corsa 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: (naturalmente in PASCAL )
KompilierenMarkierenSeparieren
if (cmd$ = Befehl)

    ...

elseif (cmd$ = AndererBefehl)

    ...
    usw.




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
 
Windows XP, XProfan/Profan² 4.5 bis 11
Profan2Cpp-Homepage:  [...] 
Alte Profan²-Seite:  [...] 
16.03.2009  
 



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.)
 
16.03.2009  
 




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?
 
Windows XP, XProfan/Profan² 4.5 bis 11
Profan2Cpp-Homepage:  [...] 
Alte Profan²-Seite:  [...] 
16.03.2009  
 



Ich wollts nur nicht ansprechen.

Roland potuto doch
KompilierenMarkierenSeparieren
rgb.lauterNamen(farbe1&,farbe2&)
>
mit seinem Präkompiler umwandeln in un Kontainer-Funktion
KompilierenMarkierenSeparieren
[offtopic]XPSE tut so z.B. bei alten Create-Funktionen.[/offtopic]
 
17.03.2009  
 




Sebastian
König
iF
Ich wollts nur nicht ansprechen.
(...) mit seinem Präkompiler umwandeln in un Kontainer-Funktion
KompilierenMarkierenSeparieren


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 potuto man auch gleich ein paar interne Testata-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 (per 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]
 
Windows XP, XProfan/Profan² 4.5 bis 11
Profan2Cpp-Homepage:  [...] 
Alte Profan²-Seite:  [...] 
17.03.2009  
 




In dem Fall, in dem dort wieder ein String steht, hätte man ja nichts gewonnen...


Der Trick beseitigt das ID-Mangel-Problem, dass potuto 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.
 
17.03.2009  
 



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. ^^
 
26.10.2009  
 



Answer


Topictitle, max. 100 characters.
 

Systemprofile:

Kein Systemprofil angelegt. [anlegen]

XProfan:

 Posting  Font  Smilies  ▼ 

Bitte anmelden um einen Beitrag zu verfassen.
 

Topic-Options

7.096 Views

Untitledvor 0 min.
Peter Max Müller30.10.2014
iF02.02.2012

Themeninformationen

Dieses Thema hat 2 subscriber:

iF (7x)
Sebastian König (4x)


Admins  |  AGB  |  Applications  |  Autori  |  Chat  |  Informativa sulla privacy  |  Download  |  Entrance  |  Aiuto  |  Merchantportal  |  Impronta  |  Mart  |  Interfaces  |  SDK  |  Services  |  Giochi  |  Cerca  |  Support

Ein Projekt aller XProfaner, die es gibt!


Il mio XProfan
Private Notizie
Eigenes Ablageforum
Argomenti-Merkliste
Eigene Beiträge
Eigene Argomenti
Zwischenablage
Annullare
 Deutsch English Français Español Italia
Traduzioni

Informativa sulla privacy


Wir verwenden Cookies nur als Session-Cookies wegen der technischen Notwendigkeit und bei uns gibt es keine Cookies von Drittanbietern.

Wenn du hier auf unsere Webseite klickst oder navigierst, stimmst du unserer Erfassung von Informationen in unseren Cookies auf XProfan.Net zu.

Weitere Informationen zu unseren Cookies und dazu, wie du die Kontrolle darüber behältst, findest du in unserer nachfolgenden Datenschutzerklärung.


einverstandenDatenschutzerklärung
Ich möchte keinen Cookie