amiga-news ENGLISH VERSION
.
Links| Forum| Kommentare| News melden
.
Chat| Umfragen| Newsticker| Archiv
.

amiga-news.de Forum > Programmierung > DTST_Memory [ - Suche - Neue Beiträge - Registrieren - Login - ]

1 -2- [ - Beitrag schreiben - ]

13.12.2008, 13:08 Uhr

Thore
Posts: 2266
Nutzer
Ja es ist schwer zu helfen, wenn keiner weiß um was es überhaupt geht. Für verschiedene Arten von Programmen kann man andere Optimierungsmöglichkeiten finden.
Beispiel: Ein WebCam Tool das Webcam Bilder streamt, hier wär ein http Handler gut, oder per Prefetch sich 1, 2 Bilder immer im Voraus zu schnappen, intern zu rendern und dann anzuzeigen.
Für sowas wie GoogleMaps/Earth wär es sinnvoll mehrere Dateien (auch um die eigentliche Ansicht herum) runterzuladen und direkt auf eine größere Bitmap zu rendern (Tile-Verfahren), wobei Datatypes nicht benutzt werden, um Geschwindigkeitsvorteile zu haben (LZW-Decodieren ist nicht so schwierig, kannst ja ne Lib in assembler basteln und anwenden, ist am schnellsten)
Wenn Du Grafiken, die aus Teilgrafiken bestehen, anzeigen willst, solltest Du erst alle Bilder runterladen, dann auf die Bitmap rendern.
Ein Zeitversatz hast Du aber bei allen Möglichkeiten.
Zusätzlich solltest Du dein Code auf Geschwindigkeitsbremsen prüfen (Shiften statt Mal und Geteilt, Plus statt Mal, loop unrolling, etc pp..., Allgemeine Codeoptimierungen....)

[ - Antworten - Zitieren - Direktlink - ]

13.12.2008, 18:58 Uhr

Holger
Posts: 8038
Nutzer
Zitat:
Original von Thore:
Zusätzlich solltest Du dein Code auf Geschwindigkeitsbremsen prüfen (Shiften statt Mal und Geteilt, Plus statt Mal, loop unrolling, etc pp..., Allgemeine Codeoptimierungen....)

Böse Falle. Er benutzt immer noch MBasic, welches Shift-Operationen als Unterprogramme realisiert, womit sie langsamer als Multiplikationen sind. Wirkliche Geschwindigkeitssteigerungen kann man da nur auf algorithmischer Ebene oder durch Verwendung einer anderen Programmiersprache erreichen.

mfg

--
Good coders do not comment. What was hard to write should be hard to read too.

[ - Antworten - Zitieren - Direktlink - ]

13.12.2008, 19:46 Uhr

Thore
Posts: 2266
Nutzer
Oha MaxonBasic? Wie wärs mit einer Portierung nach BlitzBasic? Oder Pascal? Oder C?
Ok dann versuch Codeblöcke zu optimieren und mach keine Bitorientierten Optimierungen...

[ - Antworten - Zitieren - Direktlink - ]

14.12.2008, 11:52 Uhr

MaikG
Posts: 5172
Nutzer
>Zusätzlich solltest Du dein Code auf Geschwindigkeitsbremsen prüfen >(Shiften statt Mal und Geteilt, Plus statt Mal, loop unrolling, etc >pp..., Allgemeine Codeoptimierungen....)


Es gibt nur ein Vergleich in einer Schleife.
Der Rest sind graphics.library und cgx Operationen.
Das sich durch ASM dort viel rausholen lässt glaube ich nicht.
Meine ASM kenntnisse sind auch sehr beschänkt, sowas wie gif decoding
würde ich wenn überhaupt nur in Basic selbst schaffen.

[ - Antworten - Zitieren - Direktlink - ]

14.12.2008, 13:03 Uhr

Wishmaster
Posts: 140
Nutzer
@MaikG:

Für GIF-Decoding gibt es fertige Bibliotheken.
--
Pegasos MorphOS

[ - Antworten - Zitieren - Direktlink - ]

15.12.2008, 09:50 Uhr

Holger
Posts: 8038
Nutzer
Zitat:
Original von MaikG:
Man beachte die Architecture!!!

Ich dachte, es gäbe auch eine AOS3-Version. Mmh
Zitat:
Nein das speichern auf platte ist trotz DMA langsamer als in Ram,
das habe ich bereits gemessen.

Die Betonung lag ja auch auf wenn man's richtig macht.
Zitat:
Ursprünglich wollte ich nur wissen warum DTST_Memory nicht will,
das wäre eine einfache art der Optimierung gewesen.
Nach einer komplizierten hab ich gar nicht gesucht, deswegen wird
es keine weitere änderung am Programm geben.
Das Aufwand/Nutzen Verhältniss muss schon stimmen.

Na, das ist doch mal eine vernünftige Aussage.
Ich hätte Dir sowieso nicht vorgeschlagen, den http-handler in MBasic nachzuprogrammieren ;)

mfg

--
Good coders do not comment. What was hard to write should be hard to read too.

[ - Antworten - Zitieren - Direktlink - ]

15.12.2008, 13:23 Uhr

MaikG
Posts: 5172
Nutzer
>Für GIF-Decoding gibt es fertige Bibliotheken.

Normalerweise aber ohne includes usw. für MBasic.

>> Zitat:Nein das speichern auf platte ist trotz DMA langsamer als in >>Ram,
>> das habe ich bereits gemessen.

>Die Betonung lag ja auch auf wenn man's richtig macht.

Datei$="HD2:test.gif"
statt
Datei$="Ram:test.gif"

was soll man dabei groß anders machen können.
Das ist ein ganz normales Dos/Open Dos/Write und Dos/Close,
mehr nicht.

[ - Antworten - Zitieren - Direktlink - ]

15.12.2008, 13:30 Uhr

Thore
Posts: 2266
Nutzer
Da muss ich Dir recht geben, BASIC ist, was Dateizugriffe macht, nicht sonderlich flexibel.
Du kannst aus vorhandenen fd und h Dateien Dir die BASIC Includes selbst zusammenbasteln, das hab ich früher bei AmigaBASIC auch gemacht (da eben das fd selbst geschrieben und die bmap Datei erzeugt).
BASIC ist sicher für solche Aufgaben auch nicht die optimalste Lösung, aber wenn du mit anderen Programmiersprachen nicht so wirklich zurechtkommst, ist das schon ok soweit, denke ich.

[ - Antworten - Zitieren - Direktlink - ]

15.12.2008, 17:22 Uhr

Holger
Posts: 8038
Nutzer
Zitat:
Original von MaikG:
was soll man dabei groß anders machen können.
Das ist ein ganz normales Dos/Open Dos/Write und Dos/Close,
mehr nicht.

Siehst Du, und genau das ist falsch.
Die Rede war von paralleler I/O, bei der ein Datenblock auf die Festplatte geschrieben und schon der nächste aus dem Netzwerk geladen wird, während die unterbeschäftigte CPU das tut, was auch immer Deine Anwendung will. Das kannst mit "ganz normales Dos"-Funktionen nicht hinbekommen, jedenfalls nicht auf vernünftige Weise.

Aber Du weißt ja schon längst, wohin der Hase läuft, das hatten wir nämlich alles hier schon einmal. Und wer den Thread nicht kennt, weiß jetzt auch, wo unter anderem die ganze CPU-Zeit verbraten wird: bei sechs Subtasks, die alle über polling miteinander kommunizieren.

Faszinierend, was dabei rauskommt, wenn man alles komplizierte vermeiden will...

mfg

--
Good coders do not comment. What was hard to write should be hard to read too.

[ - Antworten - Zitieren - Direktlink - ]


1 -2- [ - Beitrag schreiben - ]


amiga-news.de Forum > Programmierung > DTST_Memory [ - Suche - Neue Beiträge - Registrieren - Login - ]


.
Impressum | Datenschutzerklärung | Netiquette | Werbung | Kontakt
Copyright © 1997-2019 by amiga-news.de - alle Rechte vorbehalten.
.