Fade In/Fade Out with multiple LED strips

I want to make a strip led application(Fade In/Fade Out).Each strip has 48 pixels.One of the strips should be red and the other should be blue.Using the for loop, I managed to fade in-fade out a small number of strips (eg 10).But when I fade in / fade out all of the 48 leds, the code behaves as if there is a "delay".I guess that's because there's a lot of data in the for loop.Is there a way to do fade in / fade out without using a for loop?

#include "FastLED.h"
#define NUM_LEDS_PER_STRIP 48
CRGB redLeds[NUM_LEDS_PER_STRIP];
CRGB blueLeds[NUM_LEDS_PER_STRIP];
void setup() {
FastLED.addLeds<NEOPIXEL, 6>(redLeds, NUM_LEDS_PER_STRIP);
FastLED.addLeds<NEOPIXEL, 7>(blueLeds, NUM_LEDS_PER_STRIP);
FastLED.setBrightness(0); 
}

void loop() {
//fade in
for(int i=0;i<256;i=i+5) {
for(int j=0;j<NUM_LEDS_PER_STRIP;j++) {
FastLED.setBrightness(i); 
redLeds[j] = CRGB(255,0,0); 
blueLeds[j] = CRGB(0,0,255); 
FastLED.show(); 
}}
//fade out
for(int i=255;i>=0;i=i-5) {
for(int j=0;j<NUM_LEDS_PER_STRIP;j++) {
FastLED.setBrightness(i);  
redLeds[j] = CRGB(255,0,0); 
blueLeds[j] = CRGB(0,0,255); 
FastLED.show(); 
}}
}

I guess you're using NeoPixels/WS2812? I've never used 'em, but...

the code behaves as if there is a "delay".

What exactly does that mean?

A "fade" isn't really a fade without some timing/delay... If it fades instantly it's not a fade! (But, I don't see any timing or fade-rate in your code.)

The data is written serially to a NeoPixel strip, but it's not like a regular shift register where you write the data serially and then "latch" the data at once (in parallel). In order to write to the last NeoPixel in the chain, you have to write to/through all of the other NeoPixels in the string. You can't write to all of them simultaneously so is a question of writing fast-enough that it appears to be simultaneous.

It's a ship-load of data but someone with more experience will have to tell you how many NeoPixels you can write to before you perceive a delay. I just don't know.

Is it really necessary to keep setting the pixels to the same value every time?