prod = Compile[{{a, _Real, 1}}, Fold[Times, a]];
SeedRandom[1];
foo = RandomReal[{1/10, E^(1 + ProductLog[(-1 - Log[2] - Log[5])/(10 E)])}, 2000000];
Fold[Times]@foo // AbsoluteTiming
Apply[Times]@foo // AbsoluteTiming
Tr[#, Times] &@foo // AbsoluteTiming
prod@foo // AbsoluteTiming
(*
{0.18105, 0.}
{0.338381, 2.81742*10^229}
{0.384251, 2.81742*10^229}
{0.176814, 0.}
*)