Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > de.comp.lang.iso-c++ > #2040
| From | Stefan Reuther <stefan.news@arcor.de> |
|---|---|
| Newsgroups | de.comp.lang.iso-c++ |
| Subject | Re: Floyd-Steinberg - geht das nicht noch schneller? |
| Date | 2017-03-22 19:43 +0100 |
| Organization | A noiseless patient Spider |
| Message-ID | <oauk51.2v0.1@stefan.msgid.phost.de> (permalink) |
| References | <o8fcfi$am$1@news.albasani.net> <o8i24h.4ug.1@stefan.msgid.phost.de> <o8kapt$3iv$1@news.albasani.net> <o8kni7.5i4.1@stefan.msgid.phost.de> <oasjnr$luv$1@news.albasani.net> |
Am 22.03.2017 um 02:23 schrieb Jörg "Yadgar" Bleimann: > On 22.02.2017 19:07, Stefan Reuther wrote: >> Am 22.02.2017 um 16:29 schrieb Jörg "Yadgar" Bleimann: >> Dann könntest du schon einen Gewinn daraus ziehen, dass du diese Klasse >> von "drei unsigned char" auf "ein uint32_t" umbaust. "get_red" ist dann >> "return (pixel >> 16)", "set_red" ist "pixel = (pixel & 0x00FFFF) | >> (value << 16)", und so weiter. > > Wieso uint32_t und nicht einfach unsigned int - ist doch üblicherweise > auch 4 Byte groß! Während der 'unsigned int' heutzutage *üblicherweise* 4 Byte a 8 Bit groß ist, ist der uint32_t *immer* (sofern er denn existiert) 32 Bit groß. In sehr vielen Fällen ist daher uint32_t die bessere Wahl. Einen Compiler, in dem 'unsigned int' 2 Byte a 8 Bit groß ist, und einen Compiler, in dem 'unsigned int' 1 Byte a 24 Bit groß ist, kann ich noch mühelos auftreiben (zugegebenermaßen nicht nach neuestem Sprachstandard). >>>> Pixel >>>> werden dann nach Möglichkeit nicht in einer Klasse dargestellt, sondern >>>> in einem Datentyp, der es erlaubt, die SIMD-Instruktionen >>> >>> SIMD? Kann das mein Hexacore? >> >> Das kann sogar ein 20 Jahre alter Pentium MMX. >> >> SIMD ist der Oberbegriff für MMX, SSE, AltiVec, NEON, und wie das alles >> heißt. Voraussetzung dafür ist aber meistens speziell geschriebener Code >> und die Verwendung spezieller Datentypen, und dann kann der Prozessor >> halt in einem Zyklus 8 Integer auf einmal addieren. > > Wenn Klassen das Programm ausbremsen, wäre es dann nicht besser, das > alles in reinem C zu schreiben? Um die Speicherverwaltung müsste ich > mich dann zwar selbst kümmern, aber C dürfte doch immer noch schneller > sein als selbst C++ ohne Klassen, oder? Man kann C++ so schreiben, dass es so effizient wie C ist. Und vor allem: man kann das so tun, dass es deutlich weniger Mühe macht als in C. Ein Programm, das die Farbkomponenten per Funktionsaufruf aus einer Struktur holt, ist in C genauso ineffizient wie in C++. Eine Klasse, die einen uint32_t mit ein paar Inline-Methoden dekoriert, ist hingegen genauso schnell wie ein Sack C-Makros, der das gleiche tut. Stefan
Back to de.comp.lang.iso-c++ | Previous | Next — Previous in thread | Next in thread | Find similar | Unroll thread
Floyd-Steinberg - geht das nicht noch schneller? Jörg "Yadgar" Bleimann <yazdegird@gmx.de> - 2017-02-20 19:27 +0100
Re: Floyd-Steinberg - geht das nicht noch schneller? ram@zedat.fu-berlin.de (Stefan Ram) - 2017-02-21 16:23 +0000
Re: Floyd-Steinberg - geht das nicht noch schneller? Stefan Reuther <stefan.news@arcor.de> - 2017-02-21 18:49 +0100
Re: Floyd-Steinberg - geht das nicht noch schneller? Markus Schaaf <mschaaf@elaboris.de> - 2017-02-21 21:47 +0100
Re: Floyd-Steinberg - geht das nicht noch schneller? Jörg "Yadgar" Bleimann <yazdegird@gmx.de> - 2017-02-22 16:29 +0100
Re: Floyd-Steinberg - geht das nicht noch schneller? Stefan Reuther <stefan.news@arcor.de> - 2017-02-22 19:07 +0100
Re: Floyd-Steinberg - geht das nicht noch schneller? ram@zedat.fu-berlin.de (Stefan Ram) - 2017-02-23 01:14 +0000
Re: Floyd-Steinberg - geht das nicht noch schneller? Stefan Reuther <stefan.news@arcor.de> - 2017-02-23 18:58 +0100
Re: Floyd-Steinberg - geht das nicht noch schneller? Jörg "Yadgar" Bleimann <yazdegird@gmx.de> - 2017-03-22 02:23 +0100
Re: Floyd-Steinberg - geht das nicht noch schneller? Stefan Reuther <stefan.news@arcor.de> - 2017-03-22 19:43 +0100
Re: Floyd-Steinberg - geht das nicht noch schneller? Bonita Montero <Bonita.Montero@gmail.com> - 2017-02-23 18:27 +0100
Re: Floyd-Steinberg - geht das nicht noch schneller? Stefan Reuther <stefan.news@arcor.de> - 2017-02-24 18:34 +0100
csiph-web