My ILI9341 display working very slow

This is probably excessive. Setting it to 30 (the default) should be more than fast enough.

As @kisvegabor mentioned above, you’ll get better performance if you inline the drawPixel routine into your code, and optimize it to send as little through SPI as possible.

For example, many drawPixel routines send a command to set the X and Y cursor/window, then send one pixel’s color value, then return. That means you end up setting the cursor for every pixel.

This is grossly inefficient compared to a fillRect function, which would set the cursor/window once and then send many pixels (at least one row, possibly more).

It depends on the number of commands your particular display controller needs, but using my simplified example, I think you could easily cut your total number of SPI transfers in half, which should be a significant boost to performance.