Array of union causing 10x slowdown

maybe Allocation and slow down when # of types involved increase (slower than C++ virtual methods)