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:

Suche ein 32bit to 64 bit Subsystem - Wow64shit

 
Neues Thema eröffnen   Neue Antwort erstellen    Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht -> Windows-spezifische Fragen
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen  
Autor Nachricht
MarkNEW
Gast





BeitragVerfasst am: 02.10.2021, 11:46    Titel: Suche ein 32bit to 64 bit Subsystem - Wow64shit Antworten mit Zitat

Hallo Forum,

Ich habe doch einigen Code in Fortran 77 und damit 32bit DLLs erstellt, die ich eigentlich fortführen möchte.

Nun stelle ich fest, dass die unter Win10 vielleicht noch mit 10% der möglichen Speed laufen ... trotz WoW64, was wie immer irgendein halbgares Microsoftgewächs ist.

Gibt es da etwas Besseres ?


FreeBasic scheint relativ gut unter 64 bit zu laufen

Ich konnte das nicht umfangreich testen, weil ich mich mit den Synthax nicht gut auskenne - aber irgendwer hat ja auch das 32bit Freebasic in ein 64bit Freebasic umgebaut.

Ich könnte mir vorstellen, dass mein alter 32bit Fortran Compiler an dem ich irgendwie hänge sich auch dazu bewegen lässt etwas mehr Speed unter 64bit zu erzeugen.

Leider komme ich aber nicht an den Assemblercode von dem Compiler.

Gibt es vielleicht generell etwas Besseres wie WoW64 ? ... also so etwas wie ein 32to64 Subcompiler, der 32bit Befehle optimal auf multicore 64bit Systeme verteilt ?


Zuletzt bearbeitet von MarkNEW am 02.10.2021, 15:52, insgesamt einmal bearbeitet
Nach oben
MarkNEW
Gast





BeitragVerfasst am: 02.10.2021, 13:14    Titel: Ich hänge gleich noch ein Gesuch dran ... Antworten mit Zitat

sollte es das nicht geben, dann wäre ich an einem Austausch interessiert, wie sich das schleunigst umsetzen ließe.

1. WoW64 ist imho nicht zu trauen.

2. Es wird damit immer Probleme geben

3. Es muss nicht gleich alles perfekt sein

Es würde wahrscheinlich zunächst reichen, wenn man 32bit Anwendungen einfach mit Hilfe einer zusätzlichen DLL beschleunigen könnte.

Klar .. optimal wäre es, wenn es multicore erkennt und 32bit code wirklich optimal auf die vorhandenen Ressourcen verteilt.

Vielleicht könnte man so etwas mit dem 64bit BASIC und ein bischen INLINE Assembler entwicken.

Wie man den 32bitSTREAM, der an WoW64 gesendet wird abfängt, weiß ich nicht.

Aber Hexenwerk kann das ja nicht sein lächeln .. vielleicht laufen in diesem Thread ein paar Ideen zusammen ?

... oder .. vielleicht gibt es das was ich suche schon - und ich habe es nicht richtig analysiert ?
Nach oben
grindstone



Anmeldungsdatum: 03.10.2010
Beiträge: 1208
Wohnort: Ruhrpott

BeitragVerfasst am: 02.10.2021, 15:18    Titel: Antworten mit Zitat

Hallo MarkNEW und willkommen im Forum. lächeln

Um es vorwegzuschicken: Ich arbeite (immer noch) mit WinXP auf einem 32bit - System, und solange ich damit alle anfallenden Aufgaben bewältigen kann, werde ich daran auch nichts ändern. Aber ich verfolge natürlich die 32/64bit/Win10 - Problematik, hauptsächlich im internationalen Forum, vielleicht solltest du dort auch einmal nachfragen.

Die sauberste Lösung wäre sicherlich, die Fortran - Programme nach FreeBASIC zu portieren und dann mit 64 bit zu compilieren.

Gruß
grindstone
_________________
For ein halbes Jahr wuste ich nich mahl wie man Proggramira schreibt. Jetzt bin ich einen!
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden
MarkNEW
Gast





BeitragVerfasst am: 02.10.2021, 15:47    Titel: ja Antworten mit Zitat

darüber denke ich auch nach.
Ich habe ohnehin zunehmend Probleme mit den Leutchen in Foren - vielleicht bin ich einfach zu alt ? ;o)

Mir persönlich würde reichen: 32bit Frontend und 64bit DLLs

Was sagt Dein Bauchgefühl dazu ? .. auf was ich wirklich ungern verzichten würde ist COM (Component Object Model) .. und das ist auch 32bit .
Aber SPEED brauche ich dort letztendlich nicht
.. sondern nur in den Algos.

Es gibt eine Freebasic Version für 32 bit und eine für 64 bit ... richtig ?

Ist das exakt der gleiche Code ? ... oder gibt es da schon vom Code Unterschiede ?

So ganz will ich die Idee nicht verwerfen einfach WoW64 zu ersetzen durch einen 32bit/64bit Subcompiler.

So wie ich die Lage weitblickend einschätze wird WoW64 auch an anderen Stellen zum Flaschenhals werden.

Ich habe mich an so etwas noch nie heran gewagt ... aber ich meine, dass es vielleicht kein Hexenwerk ist.
Was Du brauchst ist also so etwas wie eine CPUerkennung und dann optimiertes Multithreading von 32bit ASM auf 64bit ASM

so in etwa stelle ich mir das vor - ich kann mich aber auch irren und es ist komplex

grüße zurück lächeln .. andere Meinungen ?
Nach oben
MarkNEW
Gast





BeitragVerfasst am: 02.10.2021, 16:02    Titel: Antworten mit Zitat

Wahrscheinlich wird es darauf hinaus laufen, dass ich damit lebe, dass COM (=Component Object Model) mit wow64 interpretiert wird und ich rechenintensive Operationen in 64bit DLLs auslagere

...aber vielleicht kommen ja noch andere Ideen

Ich habe bspweise auch erheblich Arbeit in ein selbst gestricktes COM Framework rein gesteckt auf das ich ungern verzichten würde.
Nach oben
grindstone



Anmeldungsdatum: 03.10.2010
Beiträge: 1208
Wohnort: Ruhrpott

BeitragVerfasst am: 02.10.2021, 18:35    Titel: Antworten mit Zitat

MarkNEW hat Folgendes geschrieben:
vielleicht bin ich einfach zu alt ?
Unwahrscheinlich. Die weitaus meisten FreeBASICer sind Generation 50+

Zitat:
Es gibt eine Freebasic Version für 32 bit und eine für 64 bit ... richtig ?
Richtig. Und die sollten auch in unterschiedlichen Verzeichnissen untergebracht werden.
Zitat:
Ist das exakt der gleiche Code ? ... oder gibt es da schon vom Code Unterschiede ?
Der Quellcode ist im Prinzip der gleiche, nur bei den Datentypen gibt es einige Unterschiede. So ist INTEGER in der 32bit-Version 32 bit lang, in der 64bit-Version 64 bit. Daher ist es eventuell erforderlich, INTEGER durch LONG zu ersetzen (32 bit in beiden Versionen). Und natürlich sind auch Pointer unterschiedlich lang. Außerdem scheint es in der 64bit-Version noch einige Probleme mit dem Inlineassembler zu geben.

Zitat:
Ich habe bspweise auch erheblich Arbeit in ein selbst gestricktes COM Framework rein gesteckt auf das ich ungern verzichten würde.
Ich habe so ganz auf die Schnelle einen Link dazu gefunden, vielleicht hilft dir das weiter. Die richtigen Experten für solche Fragen findest du im internationalen Forum. Und keine Angst, ich habe noch nie gesehen, daß sich dort jemand über schlechtes Englisch beschwert hätte. grinsen

Gruß
grindstone
_________________
For ein halbes Jahr wuste ich nich mahl wie man Proggramira schreibt. Jetzt bin ich einen!
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden
MarkNEW
Gast





BeitragVerfasst am: 02.10.2021, 21:02    Titel: Antworten mit Zitat

hmmh .. danke Dir .. liest sich nach probs

32bit COM & 64bit DLLs ist wahrscheinlich der Weg um von 64bit ein bischen Nutzen zu haben ohne mal wieder bei Null anfangen zu müssen
Nach oben
Sebastian
Administrator


Anmeldungsdatum: 10.09.2004
Beiträge: 5969
Wohnort: Deutschland

BeitragVerfasst am: 02.10.2021, 21:45    Titel: GFortran / G77 Antworten mit Zitat

Hallo,

hast du schon mal Richtung GNU GFortran- oder G77-Compiler geschaut? Ggf. mit MingW unter Windows?

https://fortran-lang.org/learn/os_setup/install_gfortran

Vielleicht kann man für "g77" auch "-m64" angeben wie beim "gcc"?

https://gcc.gnu.org/onlinedocs/gcc-3.4.6/g77/Invoking-G77.html
https://gcc.gnu.org/onlinedocs/gcc/x86-Options.html

Mit FORTRAN hab ich bisher aber selber nix gemacht. zwinkern

Viele Grüße!
Sebastian
_________________

Der Markt regelt das! | Opas Leistung muss sich wieder lohnen - für 6 bis 10 Generationen!
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
MarkNEW
Gast





BeitragVerfasst am: 03.10.2021, 12:56    Titel: ich denke immer,wir sollten das auch mal ohne internationale Antworten mit Zitat

Unterstützung lösen

Editiert durch Moderator: Offtopic und Werbung für Appartment-Vermietung entfernt.

Sind hier Musiker ?

my English is quite perfect
Nach oben
MarkNEW
Gast





BeitragVerfasst am: 03.10.2021, 13:50    Titel: ... hmmmmmhh..... Antworten mit Zitat

Zitat:
Vielleicht kann man für "g77" auch "-m64" angeben wie beim "gcc"?

Hmmh ....

Kannst Du das auch bei "FreeBasic32" machen ?

Kann man "FreeBasic32bit"-Code mit GCC64 compilieren ???
======================================

Weiß das zufällig Jemand ?

Eigentlich brauche ich die "langen Datentypen" nicht, sondern einfach mehr Speed unter 64bit
Nach oben
nemored



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

BeitragVerfasst am: 03.10.2021, 19:25    Titel: Antworten mit Zitat

Cross Compiling ist möglich, du brauchst aber die richtigen Bibliotheken. Sagen kann ich dazu nicht viel; vielleicht hilft dir diese Seite weiter, inhaltlich kann ich sie aber nicht beurteilen.
https://documentation.help/FreeBASIC/DevCrossCompiling.html

Hier ganz allgemein die Compiler-Optionen:
https://www.freebasic-portal.de/befehlsreferenz/der-compiler-458.html
_________________
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
MarkNEW
Gast





BeitragVerfasst am: 03.10.2021, 19:56    Titel: Antworten mit Zitat

Zitat:
Deine Chance beträgt 1:1000. Also musst du folgendes tun: Vergiss die 1000 und konzentriere dich auf die 1


Ich bin dabei genau das zu tun <3

Danke für den HINWEIS


Zuletzt bearbeitet von MarkNEW am 05.10.2021, 15:07, insgesamt einmal bearbeitet
Nach oben
nemored



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

BeitragVerfasst am: 03.10.2021, 21:11    Titel: Antworten mit Zitat

MarkNEW hat Folgendes geschrieben:
Zitat:
Deine Chance beträgt 1:1000. Also musst du folgendes tun: Vergiss die 1000 und konzentriere dich auf die 1


Ich bin dabei genau das zu tun <3

Das Zitat stammt (nur leicht angepasst) aus Dr. Who, The Magician's Apprentice. happy
_________________
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
Beiträge der letzten Zeit anzeigen:   
Neues Thema eröffnen   Neue Antwort erstellen    Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht -> Windows-spezifische Fragen Alle Zeiten sind GMT + 1 Stunde
Seite 1 von 1

 
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