What is the fastest way to activate or hide/show many gameobjects?

So I have a GameObject with a lot of children, and I want to hide/show it almost instantly, like a flicker effect. I’ve toggled the SetActive on the parent GO, and this works, but it’s not very fast. There is a clear delay. Just wondering if there were a faster way.

As from the comments above To Merge Objects into one you can use this Script (don’t know the actual Performance)

Mergin the SubMeshes will increase Performance but will take away the ability to have multiple Materials on the Merged Object if Submerge is false, Materials will be taken over to the new Mesh.

using UnityEngine;
using System.Collections;
using System.Collections.Generic;

public class CombineMesh : MonoBehaviour
{
    public bool MergeSubMeshes = false;
    GameObject[] objToCombine;
    GameObject combinedObj;
    void Start(){
        combinedObj = this.gameObject;
        objToCombine = GetComponentsInChildren<GameObject>(true);
        CombineAll();
    }
    
    void CombineAll() 
    {
        List<CombineInstance> comb = new List<CombineInstance>();
        List<Material> mat = new List<Material>();
        for (int i = 0; i < objToCombine.Length; i++)
        {
            GameObject currentObj = objToCombine*;*

//currentObj.SetActive(false);

MeshFilter[] meshFilters = currentObj.GetComponentsInChildren(true);

for (int j = 0; j < meshFilters.Length; j++)
{
MeshFilter meshFilter = meshFilters[j];

CombineInstance combine = new CombineInstance();
combine.mesh = meshFilter.sharedMesh;
combine.transform = meshFilter.transform.localToWorldMatrix;
if(!MergeSubMeshes){
mat.Add(meshFilter.GetComponent().sharedMaterial);
}
comb.Add(combine);

}
}
Mesh combinedMehs = new Mesh();
combinedMehs.CombineMeshes(comb.ToArray(), MergeSubMeshes);
combinedObj.GetComponent().sharedMesh = combinedMehs;

if(!MergeSubMeshes){
combinedObj.GetComponent().sharedMaterials = mat.ToArray();}
}
}