Vorheriges Thema anzeigen :: Nächstes Thema anzeigen |
Autor |
Nachricht |
funkeld gesperrt
Anmeldungsdatum: 10.10.2009 Beiträge: 179
|
Verfasst am: 09.03.2010, 23:48 Titel: wo steht diese Routine im Freebasic : mmxcopy |
|
|
Habe diese Sub aus dem Portal.
Wo steht die eigentlich im Freebasic?
Gibt es mehr solcher Wundertüten?
Gruss
Code: |
Declare Sub mmxcopy Cdecl Alias "fb_hMemCpyMMX" _
(ByVal dest As Any Ptr, ByVal src As Any Ptr, ByVal size As Integer)
|
|
|
Nach oben |
|
 |
volta
Anmeldungsdatum: 04.05.2005 Beiträge: 1876 Wohnort: D59192
|
|
Nach oben |
|
 |
28398
Anmeldungsdatum: 25.04.2008 Beiträge: 1917
|
Verfasst am: 10.03.2010, 17:12 Titel: |
|
|
Als Wundertüte würde ich diese Funktion nicht bezeichnen.
Normalerweise dürfte das normale memcpy auch MMX benutzen, sofern es verfügbar ist.
Der Nachteil bei dieser Funktion ist nur eben, dass sie auf nicht-MMX fähigen Rechnern crasht. Die Vorteile entsprechen einer leeren Menge. |
|
Nach oben |
|
 |
funkeld gesperrt
Anmeldungsdatum: 10.10.2009 Beiträge: 179
|
Verfasst am: 10.03.2010, 17:53 Titel: |
|
|
Also ich finde diese Routine klasse schnell.
Gruss |
|
Nach oben |
|
 |
28398
Anmeldungsdatum: 25.04.2008 Beiträge: 1917
|
Verfasst am: 10.03.2010, 21:54 Titel: |
|
|
Hast mein Posting also entweder nur zur Hälfte gelesen oder schlichtweg nicht verstanden. |
|
Nach oben |
|
 |
funkeld gesperrt
Anmeldungsdatum: 10.10.2009 Beiträge: 179
|
Verfasst am: 11.03.2010, 23:33 Titel: |
|
|
Zitat: |
Hast mein Posting also entweder nur zur Hälfte gelesen oder schlichtweg nicht verstanden.
|
Dich versteht....ähh, liest man so schlecht....ähm...
Gruss
Zuletzt bearbeitet von funkeld am 11.03.2010, 23:36, insgesamt einmal bearbeitet |
|
Nach oben |
|
 |
funkeld gesperrt
Anmeldungsdatum: 10.10.2009 Beiträge: 179
|
Verfasst am: 11.03.2010, 23:34 Titel: |
|
|
Wo ist das Buch...?
Gibt es diese Routinen irgendwie gebündelt von freebasic?
Wo liest man da die Struktur der Declare raus?
Gruss |
|
Nach oben |
|
 |
volta
Anmeldungsdatum: 04.05.2005 Beiträge: 1876 Wohnort: D59192
|
Verfasst am: 12.03.2010, 12:24 Titel: |
|
|
funkeld hat Folgendes geschrieben: | Wo ist das Buch...?
Gibt es diese Routinen irgendwie gebündelt von freebasic?
Wo liest man da die Struktur der Declare raus? |
Na, das kannst du nicht ernst meinen
Was für ein Buch? Natürlich sind die im FreeBASIC - Quelltext verstreut,
und meist werden die in Header - Dateien declariert. _________________ Warnung an Choleriker:
Dieser Beitrag kann Spuren von Ironie & Sarkasmus enthalten.
Zu Risiken & Nebenwirkungen fragen Sie Ihren Therapeuten oder Psychiater. |
|
Nach oben |
|
 |
Jojo alter Rang

Anmeldungsdatum: 12.02.2005 Beiträge: 9736 Wohnort: Neben der Festplatte
|
Verfasst am: 12.03.2010, 14:55 Titel: |
|
|
Ach, Peter meint sowas doch nie ernst...  _________________ » Die Mathematik wurde geschaffen, um Probleme zu lösen, die es nicht gäbe, wenn die Mathematik nicht erschaffen worden wäre.
 |
|
Nach oben |
|
 |
28398
Anmeldungsdatum: 25.04.2008 Beiträge: 1917
|
Verfasst am: 12.03.2010, 16:44 Titel: |
|
|
Langsam ist funkeld irgendwie zumindest verwarnreif. Aber das überlasse ich natürlich den Admins. |
|
Nach oben |
|
 |
croco97

Anmeldungsdatum: 04.11.2005 Beiträge: 260
|
Verfasst am: 13.03.2010, 00:11 Titel: |
|
|
28398 hat Folgendes geschrieben: | Als Wundertüte würde ich diese Funktion nicht bezeichnen.
Normalerweise dürfte das normale memcpy auch MMX benutzen, sofern es verfügbar ist.
Der Nachteil bei dieser Funktion ist nur eben, dass sie auf nicht-MMX fähigen Rechnern crasht. Die Vorteile entsprechen einer leeren Menge. |
"Nicht MMX-fähige Rechner" - Kicher. Da reden wir von einer Kiste von 1997 oder so. Wieviel in Europa werden davon noch in Betrieb sein?
VG!
Croco |
|
Nach oben |
|
 |
Jojo alter Rang

Anmeldungsdatum: 12.02.2005 Beiträge: 9736 Wohnort: Neben der Festplatte
|
Verfasst am: 13.03.2010, 00:20 Titel: |
|
|
Mehr als du denkst. _________________ » Die Mathematik wurde geschaffen, um Probleme zu lösen, die es nicht gäbe, wenn die Mathematik nicht erschaffen worden wäre.
 |
|
Nach oben |
|
 |
funkeld gesperrt
Anmeldungsdatum: 10.10.2009 Beiträge: 179
|
Verfasst am: 13.03.2010, 12:41 Titel: |
|
|
Warum soll man deshalb die Minderheit verschrotten.
Die Zeit arbeitet dafür.
Die MMX-Routine ist spitze.
Nach 20 Jahren Mauerfall gibt es immer noch Stasinachwuchs. , auch hier arbeitet die Zeit...
Gruss |
|
Nach oben |
|
 |
nemored

Anmeldungsdatum: 22.02.2007 Beiträge: 4704 Wohnort: ~/
|
Verfasst am: 13.03.2010, 13:03 Titel: |
|
|
Wieso Stasinachwuchs? Da muss man nicht groß nachforschen, um seine Schlüsse zu ziehen ... _________________ Deine Chance beträgt 1:1000. Also musst du folgendes tun: Vergiss die 1000 und konzentriere dich auf die 1. |
|
Nach oben |
|
 |
28398
Anmeldungsdatum: 25.04.2008 Beiträge: 1917
|
Verfasst am: 13.03.2010, 13:33 Titel: |
|
|
Das Standard memcpy() der CRT wird mit 100%iger Wahrscheinlichkeit auf MMX fähigen Rechnern auch MMX benutzen. |
|
Nach oben |
|
 |
darkinsanity aka sts

Anmeldungsdatum: 01.11.2006 Beiträge: 456
|
Verfasst am: 13.03.2010, 23:29 Titel: |
|
|
28398 hat Folgendes geschrieben: | Das Standard memcpy() der CRT wird mit 100%iger Wahrscheinlichkeit auf MMX fähigen Rechnern auch MMX benutzen. |
Vorsicht, wir reden hier immerhin von Microsoft
Da memcpy dafür logischerweise erstmal nachsehen muss, ob der Rechner MMX hat, und erst dann den passenden Code aufruft, wird mmxcopy (das scheinbar nicht überprüft) einen Tick schneller sein.
Aber der Unterschied ist vernachlässigbar, ich selbst nehm auch einfach memcpy. _________________ Traue keinem Computer, den du nicht aus dem Fenster werfen kannst -- Steve Wozniak |
|
Nach oben |
|
 |
funkeld gesperrt
Anmeldungsdatum: 10.10.2009 Beiträge: 179
|
Verfasst am: 14.03.2010, 00:50 Titel: |
|
|
Zitat: |
Das Standard memcpy() der CRT wird mit 100%iger Wahrscheinlichkeit auf MMX fähigen Rechnern auch MMX benutzen.
|
Ist doch einfach, du schaltest die Ausgabe von Freebasic auf ASM um und schon kannst du sehen wie der ASM-Code aussieht auf einem alten ohne MMX oder einen mit MMX.
Da FreeBasic in "C" programmiert ist, müsste es kontrollierbar sein.
Gruss |
|
Nach oben |
|
 |
darkinsanity aka sts

Anmeldungsdatum: 01.11.2006 Beiträge: 456
|
Verfasst am: 14.03.2010, 01:16 Titel: |
|
|
Oha, Vorsicht: FreeBASIC ist die Sprache. fbc ist der Compiler, und der ist nicht in C, sondern in FreeBASIC geschrieben - er kompiliert sich selbst. Nur fbgfx2 und die runtime-lib sind in C geschrieben. _________________ Traue keinem Computer, den du nicht aus dem Fenster werfen kannst -- Steve Wozniak |
|
Nach oben |
|
 |
Jojo alter Rang

Anmeldungsdatum: 12.02.2005 Beiträge: 9736 Wohnort: Neben der Festplatte
|
Verfasst am: 14.03.2010, 02:53 Titel: |
|
|
Die Funktionen kommen, wie darkinsanity schon sagt, aus der CRT - und Bibliothekscode wird nicht mit deinem eigenen Code vermischt. _________________ » Die Mathematik wurde geschaffen, um Probleme zu lösen, die es nicht gäbe, wenn die Mathematik nicht erschaffen worden wäre.
 |
|
Nach oben |
|
 |
28398
Anmeldungsdatum: 25.04.2008 Beiträge: 1917
|
Verfasst am: 14.03.2010, 04:35 Titel: |
|
|
Die CRT wird doch eh dynamisch gebunden. Unter Windows dürfte FB einfach die MSVCRT in einer recht alten Version (z.B. 7) benutzen. Und jetzt kommts: Ich behaupte einfach mal, dass der Redistributableinstaller so schlau ist eine möglichst gut zum Prozessor passende CRT zu installieren. Und außerdem sollte man immer die vom zugrundeliegenden System bereitgestellte Funktion einer eigenen vorziehen. Allein schon, weil das System in Zukunft evtl. noch anders / besser optimieren kann.
Ich würde schlichtweg davon abraten mmxcopy zu benutzen. Der Geschwindigkeitsunterschied ist - wenn überhaupt vorhanden (u.U. ist auch memcpy schneller. Das ist von den Besten der Besten geschrieben, und nicht von irgendjemanden der eine kleine C-Grafikbibliothek schreibt und Assembler in seiner Freizeit programmiert!) - so marginal, dass man es sowieso nur bei Datenmengen >100 MB wirklich Auswirkungen messen kann. Und ganz nebenbei kann FB ja eh nicht mehr als 2048 MB Speicher addressieren.
Lasst die Finger davon, bei 100%* der Programme lohnt sich es nicht!
* 10e-10 Rundungsfehler |
|
Nach oben |
|
 |
|