Speed problems with st7735

I will look at it later.

You appear to setClockDivider() etc for every spiwrite().

It is only necessary at the start of a sequence. e.g. with SPI.beginTransaction()
You can make the display() function more efficient.

As a general rule, you draw a graphic only when eeded. You do NOT keep a mirror buffer in SRAM.
That technique is used for Monochrome displays like KS0108 or SSD1306 because it avoids Read-Modify-Write sequences. i.e. you manipulate a SRAM buffer and then copy the whole buffer in one go.

David.