limpando um array inteiro pequeno: memset vs. for loop

Existem duas maneiras de zerar um array inteiro / flutuante:

memset(array, 0, sizeof(int)*arraysize);

ou:

for (int i=0; i <arraysize; ++i)
    array[i]=0;

obviamente, memset é mais rápido para grandesarraysize. No entanto, em que ponto a sobrecarga de memset é realmente maior que a sobrecarga do loop for? Por exemplo, para uma matriz de tamanho 5 - qual seria o melhor? A primeira, a segunda ou talvez a versão não rolada:

array[0] = 0;
array[1] = 0;
array[2] = 0;
array[3] = 0;
array[4] = 0;

questionAnswers(4)

yourAnswerToTheQuestion