Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht Das deutsche QBasic- und FreeBASIC-Forum
Für euch erreichbar unter qb-forum.de, fb-forum.de und freebasic-forum.de!
 
FAQFAQ   SuchenSuchen   MitgliederlisteMitgliederliste   BenutzergruppenBenutzergruppen  RegistrierenRegistrieren
ProfilProfil   Einloggen, um private Nachrichten zu lesenEinloggen, um private Nachrichten zu lesen   LoginLogin
Zur Begleitseite des Forums / Chat / Impressum
Aktueller Forenpartner:

wo steht diese Routine im Freebasic : mmxcopy
Gehe zu Seite 1, 2  Weiter
 
Neues Thema eröffnen   Neue Antwort erstellen    Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht -> Allgemeine Fragen zu FreeBASIC.
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen  
Autor Nachricht
funkeld
gesperrt


Anmeldungsdatum: 10.10.2009
Beiträge: 179

BeitragVerfasst am: 09.03.2010, 23:48    Titel: wo steht diese Routine im Freebasic : mmxcopy Antworten mit Zitat

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
Benutzer-Profile anzeigen Private Nachricht senden
volta



Anmeldungsdatum: 04.05.2005
Beiträge: 1876
Wohnort: D59192

BeitragVerfasst am: 10.03.2010, 15:23    Titel: Antworten mit Zitat

hier:
http://fbc.svn.sourceforge.net/viewvc/fbc/trunk/FreeBASIC/src/gfxlib2/x86/libfb_gfx_mmx.s?revision=3878&view=markup
findest du es.
Zitat:
Gibt es mehr solcher Wundertüten?
tausende lachen
_________________
Warnung an Choleriker:
Dieser Beitrag kann Spuren von Ironie & Sarkasmus enthalten.
Zu Risiken & Nebenwirkungen fragen Sie Ihren Therapeuten oder Psychiater.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
28398



Anmeldungsdatum: 25.04.2008
Beiträge: 1917

BeitragVerfasst am: 10.03.2010, 17:12    Titel: Antworten mit Zitat

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
Benutzer-Profile anzeigen Private Nachricht senden
funkeld
gesperrt


Anmeldungsdatum: 10.10.2009
Beiträge: 179

BeitragVerfasst am: 10.03.2010, 17:53    Titel: Antworten mit Zitat

Also ich finde diese Routine klasse schnell.

Gruss
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
28398



Anmeldungsdatum: 25.04.2008
Beiträge: 1917

BeitragVerfasst am: 10.03.2010, 21:54    Titel: Antworten mit Zitat

Hast mein Posting also entweder nur zur Hälfte gelesen oder schlichtweg nicht verstanden.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
funkeld
gesperrt


Anmeldungsdatum: 10.10.2009
Beiträge: 179

BeitragVerfasst am: 11.03.2010, 23:33    Titel: Antworten mit Zitat

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
Benutzer-Profile anzeigen Private Nachricht senden
funkeld
gesperrt


Anmeldungsdatum: 10.10.2009
Beiträge: 179

BeitragVerfasst am: 11.03.2010, 23:34    Titel: Antworten mit Zitat

Zitat:

tausende


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
Benutzer-Profile anzeigen Private Nachricht senden
volta



Anmeldungsdatum: 04.05.2005
Beiträge: 1876
Wohnort: D59192

BeitragVerfasst am: 12.03.2010, 12:24    Titel: Antworten mit Zitat

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 durchgeknallt
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
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
Jojo
alter Rang


Anmeldungsdatum: 12.02.2005
Beiträge: 9736
Wohnort: Neben der Festplatte

BeitragVerfasst am: 12.03.2010, 14:55    Titel: Antworten mit Zitat

Ach, Peter meint sowas doch nie ernst... zwinkern
_________________
» Die Mathematik wurde geschaffen, um Probleme zu lösen, die es nicht gäbe, wenn die Mathematik nicht erschaffen worden wäre.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
28398



Anmeldungsdatum: 25.04.2008
Beiträge: 1917

BeitragVerfasst am: 12.03.2010, 16:44    Titel: Antworten mit Zitat

Langsam ist funkeld irgendwie zumindest verwarnreif. Aber das überlasse ich natürlich den Admins.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
croco97



Anmeldungsdatum: 04.11.2005
Beiträge: 260

BeitragVerfasst am: 13.03.2010, 00:11    Titel: Antworten mit Zitat

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
Benutzer-Profile anzeigen Private Nachricht senden
Jojo
alter Rang


Anmeldungsdatum: 12.02.2005
Beiträge: 9736
Wohnort: Neben der Festplatte

BeitragVerfasst am: 13.03.2010, 00:20    Titel: Antworten mit Zitat

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
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
funkeld
gesperrt


Anmeldungsdatum: 10.10.2009
Beiträge: 179

BeitragVerfasst am: 13.03.2010, 12:41    Titel: Antworten mit Zitat

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. lächeln , auch hier arbeitet die Zeit...

Gruss
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
nemored



Anmeldungsdatum: 22.02.2007
Beiträge: 4704
Wohnort: ~/

BeitragVerfasst am: 13.03.2010, 13:03    Titel: Antworten mit Zitat

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
Benutzer-Profile anzeigen Private Nachricht senden
28398



Anmeldungsdatum: 25.04.2008
Beiträge: 1917

BeitragVerfasst am: 13.03.2010, 13:33    Titel: Antworten mit Zitat

Das Standard memcpy() der CRT wird mit 100%iger Wahrscheinlichkeit auf MMX fähigen Rechnern auch MMX benutzen.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
darkinsanity
aka sts


Anmeldungsdatum: 01.11.2006
Beiträge: 456

BeitragVerfasst am: 13.03.2010, 23:29    Titel: Antworten mit Zitat

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 zwinkern

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
Benutzer-Profile anzeigen Private Nachricht senden
funkeld
gesperrt


Anmeldungsdatum: 10.10.2009
Beiträge: 179

BeitragVerfasst am: 14.03.2010, 00:50    Titel: Antworten mit Zitat

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. lächeln

Da FreeBasic in "C" programmiert ist, müsste es kontrollierbar sein.

Gruss
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
darkinsanity
aka sts


Anmeldungsdatum: 01.11.2006
Beiträge: 456

BeitragVerfasst am: 14.03.2010, 01:16    Titel: Antworten mit Zitat

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
Benutzer-Profile anzeigen Private Nachricht senden
Jojo
alter Rang


Anmeldungsdatum: 12.02.2005
Beiträge: 9736
Wohnort: Neben der Festplatte

BeitragVerfasst am: 14.03.2010, 02:53    Titel: Antworten mit Zitat

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
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
28398



Anmeldungsdatum: 25.04.2008
Beiträge: 1917

BeitragVerfasst am: 14.03.2010, 04:35    Titel: Antworten mit Zitat

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
Benutzer-Profile anzeigen Private Nachricht senden
Beiträge der letzten Zeit anzeigen:   
Neues Thema eröffnen   Neue Antwort erstellen    Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht -> Allgemeine Fragen zu FreeBASIC. Alle Zeiten sind GMT + 1 Stunde
Gehe zu Seite 1, 2  Weiter
Seite 1 von 2

 
Gehe zu:  
Du kannst keine Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum nicht antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.

 Impressum :: Datenschutz