Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > de.comp.lang.iso-c++ > #2040

Re: Floyd-Steinberg - geht das nicht noch schneller?

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>

Show all headers | View raw


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 | NextPrevious in thread | Next in thread | Find similar | Unroll thread


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