fillRect in nur 0.08 ms

Wie macht der Google Chrome das? Ein fillRect 1920 x 1080 in eine Canvas in nur 0.08 ms? Wird dabei die GPU benutzt?

Danke für jegliche Hinweise, Franz.

Das macht jeder Browser, indem er kein Java dafür verwendet.

Hi!

0,68 Sekunden Sir, für einen Androiden ist das fast eine Ewigkeit.

Wenn man mal stupide davon ausgeht, daß in den 0,08ms 2Mio Pixel gesetzt werden, dann wäre das eine Pixel-Rate von 25GHz. Das ist schon SEHR schnell, und es wird kaum weniger, wenn man über allerlei Tricks der CPU nachdenkt.

Eine Grafikkarte taktet nicht so schnell wie eine CPU, hat dafür aber sehr viele Rechenkerne. Da ist das durchaus drin.

ABER: Wer sagt denn, daß diese 0,08ms wirklich die Zeit vom Absetzen des Befehls bis zum vorhandensein der gewünschten Farbe in jeder der Speicherstellen für die 2Mio Pixel ist? Das kann durchaus gepufftert sein, d.h. die CPU kann bereits weiter machen, während die Grafikkarte noch am Füllen ist.

Danke für die Antworten,
ich habe eine GPU mit 1000 Cores, die werden dabei wohl eine Rolle spielen. Die GPU hat wahrscheinlich spezielle Hardware für das Füllen von Speicher, braucht sie auch um den Z-Buffer in DirectX zu löschen. Die CPU wäre damit jedenfalls überfordert. Die CPU arbeitet weiter und die 0.08ms sind nur der Aufruf einer kernel-Funktion. Wie lange dann das Füllen tatsächlich dauert, wissen nur die Androiden.
Auch das Zeichnen von Linien in eine Canvas geht sehr schnell, falls man nicht zuviele Stroke-Aufrufe benutzt. Benutzt man zuviele, dann dauert ein anschließender setTimeout(…,1)plötzlich auch mal 30 ms.
Gruß Fra2