Suchergebnisse
Suchergebnisse 1-6 von insgesamt 6.
Hier erfahren Sie, wie einfach Sie Ihren Browser aktualisieren können.
-
Scanline-Algorithmus
Beitragmsdn.microsoft.com/en-us/libra…lattribute(v=vs.110).aspx Damit solltest das auch auslagern können, ich glaub das bekommt er schön geinlined... Dann wärs vlt. nicht schlecht wenn du System.Numerics vektoren verwendest(falls du das nicht schon tust) und evtl. auch noch an anderen stellen anwendest um bisschen SIMD auszunutzen... Das setzen der Pixel bei Lockbits ist bestimmt nicht das Problem, denn das ist einfach setzen von Memory. Klar Lock/Unlock kostet bissl Zeit, aber das ist erstmal nicht da…
-
Scanline-Algorithmus
BeitragDas caching in diesem Fall ist ein positiver Nebeneffekt wenn man für den Prozessor vorhersehbare Datenzugriffe macht und dazu gehört auch eben Memory kontinuirlich durchzugene, aber wenn du das schon machst ist das grundsätzlich schonmal gut, wobei für Scanline es anders auch nicht wirklich Sinn ergibt^^ Statt C#-Quellcode (3 Zeilen) eben so: C#-Quellcode (3 Zeilen) Früher hat das zumindest mal Zeit gespart, da unnötige Array-Range checks gespart werden, was aber ok ist, wenn wir genau Wissen, …
-
Scanline-Algorithmus
Beitragja die DirectBitmap hat nen paar unnötige Dinge drinne. Geh lieber direkt hin und nutze den _data.Scan0 ptr, die Daten darin sind bereits quasi gepinnt(weil es natives memory ist), also kein stress mit dem anpinnen -> somit performanter. Außerdem kann man sich das unnötige Copy der Daten komplett sparen und direkt bearbeiten. Das ganze geht sehr schön mit C# Pointern. Nächste Optimierung dabei ist, du kannst direkt int Pointer verwenden und deine Farben als int angeben, das nutzt nämlich dann au…
-
Scanline-Algorithmus
BeitragHatte mich verguckt und Hauptsächlich LoadFromBitmap angeguckt... Sorry Das ab dem zweiten Absatz gilt trotzdem weiterhin und wären eben Optimierungen für SetPixel/Getpixel. Etwas für den Zugriff mit flachem Index wäre bestimmt auch hilfreich, denn ein inkrement ist schneller als eine Multiplikation und eine addition^^ Achja wie immer für so kleine funktionen(wenns um perf geht): Inlining
-
Scanline-Algorithmus
BeitragNaja einfach ein GetColor(int index) anstatt x/y. Manchmal ist x/y nicht so wichtig, oder man hat einfach index++. Wenn das ganze dann geinlined wird sollte das bei zumindest einer eindimensionalen Schleife zu einer Boundary-Check-Optimierung führen, sodass eben nicht bei jedem Aufruf überprüft wird obs innerhalb des Arrays ist oder nicht. Abgesehen von der Optimierung von * kombiniert mit + zu einem inkrement
-
Scanline-Algorithmus
BeitragNeue berechnen ist wesentlich schneller als Dictionary^^ Im Dictionary wird ja auch alles in buckets unterteilt und über die GetHashCode funktion in die Buckets aufgeteilt, das ist wesentlich komplizierter als die Multiplikation und Addition, mal abgesehen davon, dass es ein Methoden Call ist, .Net Core inlined es(so vermute ich, da eine struct nicht weiter vererbt werden kann, zumindest sealed class kann er viel inlinen - von interfaces) bei .Net Framework wäre ich mir aber tatsächlich nicht si…