Einige Fragen zu BlitzMax
Übersicht

![]() |
AL90Betreff: Einige Fragen zu BlitzMax |
![]() Antworten mit Zitat ![]() |
---|---|---|
Hi Leute,
Hab da mal ein paar fragen zu BMax. 1) Wie kann man Module erstellen ? Ich bekomme immer ne Fehlermeldung oder lassen sich mit der BMX Demo1.09 keine erstellen? 2) Wieso ist BMX eigentlich so langsam? Die portierung meiner ExtracEngine des BBCrunchers läuft ca. 50% lahmer als mit BB. 3) Gibts schon ne Downloadbare Guide (wenn möglich Deutsch) zu BMax? Die originale zu BMax lässt wohl mehr als zu wünschen übrig. So gut wie keine Examples zu den Syntaxes. |
||
Ciao
AL90 www.blitztools.de.vu |
Dreamora |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
1. Kann demo garnicht. sonst braucht man dazu MingW
2. Wie hast du es genau programmiert? Mit oder ohne Grafik? Reine berechnung ist BM um welten schneller solange man net mein man müsse Double nutzen wo Float reicht ![]() 3. Nein gibts nicht. Aber eine englische und deutsche Wiki |
||
Ihr findet die aktuellen Projekte unter Gayasoft und könnt mich unter @gayasoft auf Twitter erreichen. |
![]() |
AL90 |
![]() Antworten mit Zitat ![]() |
---|---|---|
Dreamora hat Folgendes geschrieben: 1. Kann demo garnicht. sonst braucht man dazu MingW
Was ist MingW und wo bekommt man es ? Zitat: 2. Wie hast du es genau programmiert? Mit oder ohne Grafik?
Ohne Grafik. Alles reines Speichermanagement. (Banks, Peek & Poke usw.) Zitat: Reine berechnung ist BM um welten schneller solange man net mein man müsse Double nutzen wo Float reicht
![]() Wie gesagt, 50% lahmer als BB. Ich vermute aber mal es liegt an der Demo. Zitat: 3. Nein gibts nicht. Aber eine englische und deutsche Wiki
Gut dann werde ich halt noch was warten. ![]() |
||
Ciao
AL90 www.blitztools.de.vu |
Dreamora |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
3. Dann wirst noch länger warten denke ich. Am einfachsten nimmt man dazu nämlich die Samples die mit der Vollversion kommen. Zig spiele und kleine projekte mit kommentaren etc.
Peek & Poke etc: hast du in der Hauptschleife oder überall mal wieder Flushmem? Sonst bombst du nämlich deinen Speicher zu, was den Speed drastisch zerlegt. MingW ist ein C/C++ compiler den man im netz herunterladen kann. Er beinhaltet GCC was benötigt wird für den modulecompile. |
||
Ihr findet die aktuellen Projekte unter Gayasoft und könnt mich unter @gayasoft auf Twitter erreichen. |
![]() |
AL90 |
![]() Antworten mit Zitat ![]() |
---|---|---|
Zitat: Peek & Poke etc: hast du in der Hauptschleife oder überall mal wieder Flushmem? Sonst bombst du nämlich deinen Speicher zu, was den Speed drastisch zerlegt
Nein. Ich habe erstmal eine 1:1 portierung vorgenommen. Im moment lerne ich erstnoch den umgang mit BM, da scheinbar einiges anders ist als bei BB. Danke für den Tip mit FlushMem, werde ich bald mal ausprobieren. |
||
Ciao
AL90 www.blitztools.de.vu |
Dreamora |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Hättest du gescheiter den BB importer benutzt ![]() er ist zwar "mist" aber er fügt immerhin die grundlegenden Dinge hinzu ![]() |
||
Ihr findet die aktuellen Projekte unter Gayasoft und könnt mich unter @gayasoft auf Twitter erreichen. |
![]() |
AL90 |
![]() Antworten mit Zitat ![]() |
---|---|---|
Den habe ich ja benutzt. Aber trotzdem ist das ergebniss in sachen speed
mehr als unzufrieden stellend. Der Importer hatte davon abgesehen aber keine grösseren änderungen vorgenommen ausser z.b. ":" durch ";" zu ersetzen und so ne sachen. Wie gesagt, peek & Poke sind Syntax-gleich da ändert der importer eh nicht allzuviel. |
||
Ciao
AL90 www.blitztools.de.vu |
Dreamora |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
hmm jo wenn er flushmem net einfügt bringt er wirklich nix. Wobei as tut er ja eh net, denn er kann einen code net komplett umschreiben und das wird ja für BM benötigt, damits was taugt | ||
Ihr findet die aktuellen Projekte unter Gayasoft und könnt mich unter @gayasoft auf Twitter erreichen. |
![]() |
AL90 |
![]() Antworten mit Zitat ![]() |
---|---|---|
Am besten ich schau mir mal die vorhandenen tuts an, vielleicht kann ich
ja noch was wichtiges dazu in erfahrung bringen bevor ich damit weiter mache. |
||
Ciao
AL90 www.blitztools.de.vu |
![]() |
TheShadowModerator |
![]() Antworten mit Zitat ![]() |
---|---|---|
BBmax unterscheidet sich sehr von ältern BB-Versionen.
Mögliche Verbesserungen: 1) FlushMem benutzen 2) solche Strings vermeiden FOR i=1 to 1000 mystr=mystr+"a" NEXT das ist in BBmax so in der Art ohne FlushMem nicht mehr möglich 3) Strings wie FOR i=1 to LEN(mystr) char=ASC(mid$(mystr,i,1)) NEXT sind auch ohne FlushMem nicht mehr möglich stattdessen macht man FOR i=1 to mystr.length char=mystr[i-1] NEXT 4) außerdem sowas sollte man auch nicht machen LOCAL myimage:Int=LOADIMAGE("image.bmp") sondern LOCAL myimage:TImage=LOADIMAGE("image.bmp") MINGW braucht man nur wenn man alle Module selbstkompilieren will. Oder deine eigene Module die C++/ASM-Codes enthalten. Bei reinen BBmax-Modulen braucht man kein MinGW - Vorkompilierung muss man dann per Kommandozeile machen - indem man explizit nur dein einziges Modul kompiliert... Es gibt ww.blitzwiki.de und blitzwiki.org Ich arbeite noch an etwas - aber das wird englisch... mal sehen ob ich es hinkriege... |
||
AMD64 3500+ | GeForce6600GT 128MB | 1GB DDR | WinXPsp2 |
![]() |
Abrexxes |
![]() Antworten mit Zitat ![]() |
---|---|---|
Ich arbeite grad an einer erweiterten übersetzung davon:
http://www.blitzbasic.com/Comm...opic=42519 D2O hilft beim konvertieren in PDF und als Lektor. Wenn alles klappt sollte das in 2-3 Wochen fertig sein. (Habe nicht jeden Tag Zeit.) Ausserdem sitzt D2O noch hier dran: http://www.blitz.inarie.de/viewtopic.php?t=145 wo mann schon einiges zum ansehen hat. So langsam wird es also auch eine kleine Auswahl in Deutsch geben. cu |
||
![]() |
Suco-XBetreff: ..... |
![]() Antworten mit Zitat ![]() |
---|---|---|
Na bevor ihr da noch Tagelang Schwachsinn erzählt, die Banks in BMax sind wirklich etwas langsamer. Woher ich das weiss? Nein, ich habe nicht geraten oder vermutet, einfach einen Speedtest geschrieben.
Bmax Code: [AUSKLAPPEN] Local bytes = (1024^2)*5 Local TestBank = CreateBank(bytes) Local Time Time = MilliSecs() For i = 0 To BankSize(TestBank) PokeByte(TestBank, i, 128) Next Print MilliSecs()-Time BlitzBasic Code: [AUSKLAPPEN] Local bytes = (1024^2)*5 Local TestBank = CreateBank(bytes) Local Time Time = MilliSecs() For i = 0 To BankSize(TestBank)-1 PokeByte(TestBank, i, 128) Next Print MilliSecs()-Time WaitKey() Debug natürlich aus Bmax = 350 ms BB = 100 ms Es ist wohl eine Alternative zu Banks gefragt. Mfg Suco |
||
Intel Core 2 Quad Q8300, 4× 2500 MHz, 4096 MB DDR2-Ram, GeForce 9600GT 512 MB |
Dreamora |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Siehts mit OO auch so aus?
Übrigens ist 1 Operation ein extrem 0 sagender Test bei verschiedenen möglichen Operationen! |
||
Ihr findet die aktuellen Projekte unter Gayasoft und könnt mich unter @gayasoft auf Twitter erreichen. |
![]() |
Suco-XBetreff: ...... |
![]() Antworten mit Zitat ![]() |
---|---|---|
Zitat: Siehts mit OO auch so aus? Du brauchst ganze 10 Sekunden um das selbst rauszufinden. Zitat: Übrigens ist 1 Operation ein extrem 0 sagender Test bei verschiedenen möglichen Operationen! Wie meinen? Der Test sagt doch das nötigste aus. Aber um deine Frage zu beantworten, OO scheint das ganze wirklich etwas extrem anders auszusehen. Code: [AUSKLAPPEN] Local bytes = (1024^2)*5 Local TestBank:TBank = CreateBank(bytes) Local Time Time = MilliSecs() For i = 0 To TestBank.Size() TestBank.PokeByte(i, 128) Next Print MilliSecs()-Time nurnoch 50 ms. Mfg Suco |
||
Intel Core 2 Quad Q8300, 4× 2500 MHz, 4096 MB DDR2-Ram, GeForce 9600GT 512 MB |
Dreamora |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Was ich mit 1 Operation meinte:
Auf einer Bank führt man mehr als nur Poke oder Peek aus, also muss für ein sinnvolles Benchmark auch alles genutzt werden, sonst ist das Benchmark wertlos. Wir sind hier ja net bei NVIDIA / ATI bzw Intel/AMD die sowas absichtlich machen um miese Chips besser aussehen zu lassen ![]() Aber OO hat ja schon gezeigt, das BM schneller ist. Hätte mich auch gewundert wenn nicht ![]() |
||
Ihr findet die aktuellen Projekte unter Gayasoft und könnt mich unter @gayasoft auf Twitter erreichen. |
![]() |
Suco-XBetreff: ....... |
![]() Antworten mit Zitat ![]() |
---|---|---|
Zitat: Was ich mit 1 Operation meinte: Auf einer Bank führt man mehr als nur Poke oder Peek aus, also muss für ein sinnvolles Benchmark auch alles genutzt werden, sonst ist das Benchmark wertlos. Wir sind hier ja net bei NVIDIA / ATI bzw Intel/AMD die sowas absichtlich machen um miese Chips besser aussehen zu lassen Ich hatte nicht vor Futuremark 2007 zu Coden, einfach nur ein Test. Immerhin habe ich damit innerhalb von 2 Posts AL´s Bankprobleme gelöst, und bin mir auch sicher das die anderen Bankbefehle/Methoden in sachen Speed nicht aus der reihe tanzen werden. Du dagegen hast es wohl nicht für nötig gehalten statt 5 Posts mal sowas in Erwägung zu ziehen und kommst mir jetzt auch noch mit deiner Mainstream Anti Nvidia/Intel Propaganda. Tut mir leid, nicht mein Ding. Mfg Suco |
||
Intel Core 2 Quad Q8300, 4× 2500 MHz, 4096 MB DDR2-Ram, GeForce 9600GT 512 MB |
![]() |
TheShadowModerator |
![]() Antworten mit Zitat ![]() |
---|---|---|
Local TestBank:TBank
macht den Unterschied... |
||
AMD64 3500+ | GeForce6600GT 128MB | 1GB DDR | WinXPsp2 |
![]() |
AL90 |
![]() Antworten mit Zitat ![]() |
---|---|---|
Zitat: Mögliche Verbesserungen:
1) FlushMem benutzen Wann genau sollte man FlushMem denn benutzen? Nach jedem Peek oder Poke? Kann ich mir eigentlich nicht vorstellen. Aber wenns sinn macht, was solls dann würde ich auch das tun ums schneller zu bekommen. Zitat: 2) solche Strings vermeiden FOR i=1 to 1000 mystr=mystr+"a" NEXT das ist in BBmax so in der Art ohne FlushMem nicht mehr möglich Ist in der Hauptschleife bei meinem code nicht vorhanden. Deshalb wundert mich auch der enorme einbruch im speed. Zitat: 4) außerdem sowas sollte man auch nicht machen LOCAL myimage:Int=LOADIMAGE("image.bmp") sondern LOCAL myimage:TImage=LOADIMAGE("image.bmp") Du meinst also in meinem fall (Memory) sollte ich TBank benutzen ? Zitat: Bei reinen BBmax-Modulen braucht man kein MinGW - Vorkompilierung muss man dann per Kommandozeile machen - indem man explizit nur dein einziges Modul kompiliert...
Ich habe es wie im Tut beschrieben gemacht, und bekomme aber immer ne Fehlermeldung. Ich glaube irgendwas mit TList oder so war es. Ich werd's aber nochmal probieren. Zitat: Es gibt ww.blitzwiki.de und blitzwiki.org
Ich arbeite noch an etwas - aber das wird englisch... mal sehen ob ich es hinkriege... Poste doch einfach mal wenns fertig ist. (DownloadLink etc.) ![]() |
||
Ciao
AL90 www.blitztools.de.vu |
![]() |
AL90Betreff: Re: ..... |
![]() Antworten mit Zitat ![]() |
---|---|---|
Suco-X hat Folgendes geschrieben: Bmax = 350 ms
BB = 100 ms Es ist wohl eine Alternative zu Banks gefragt. So ich hab jetzt auch mal ein paar tests gemacht. Die ergebnisse sind durchaus interessannt.: Decrunch 1MB-File. (Decompress) BlitzMax = 3,70 Sec. B3D = 1,30 Sec. PureBasic = 0,66 Sec. Mit FlushMem und TBank unter BM habe ich es allerdings noch nicht getestet. Trotzdem nochmal Danke an alle beteiligten für die Tips. ![]() |
||
Ciao
AL90 www.blitztools.de.vu |
- Zuletzt bearbeitet von AL90 am So, Jul 03, 2005 20:09, insgesamt einmal bearbeitet
![]() |
Suco-XBetreff: ..... |
![]() Antworten mit Zitat ![]() |
---|---|---|
Hi, dann teste es ![]() In Sachen Speed wirst du wohl nicht auf die OOP verzichten können. Flushmem brauchst du während Peek/Poke eigentlich nicht, würde es nur langsamer machen in einer Schleife. Mfg Suco |
||
Intel Core 2 Quad Q8300, 4× 2500 MHz, 4096 MB DDR2-Ram, GeForce 9600GT 512 MB |
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group