FastLED needs to be faster

I’m working on a project with WS2812B LEDs. I want the following code to be as close to instant on as possible. Right now it is very visible that one LED is coming on at a time. The idea is to use a MSGEQ7 as a VU meter or sorts. In the end this will be stage lighting for a band that I help with. The code will have different modes. The one I want first is to start from the middle of the strip and expand out in both directions based on the db of a given frequency. Lighting up an amount of LEDs based on the value from the MSGEQ7 and the rest to be another color or off. I have something sort of working but it is very slow and it’s because the LEDs are very slow with the following example code.

#include <FastLED.h>
#define LED_PIN     12
#define NUM_LEDS    150
#define LED_TYPE    WS2812B
#define COLOR_ORDER GRB

CRGB leds[NUM_LEDS];

void setup() {
  // put your setup code here, to run once:
  LEDS.addLeds<LED_TYPE, LED_PIN, COLOR_ORDER>(leds, NUM_LEDS);
}

void loop() {
  for (int i; i < NUM_LEDS; i++){
  leds[i].setRGB(0, 0, 255);
  FastLED.show();
  }
}

Need the FastLED.show(); be called inside the for loop or could it be called after the for loop has run ?

WOW! Thank you. Moving the FastLED.show(); outside of the for loop help tremendously. I think I can work with this. Thank you.