Ah, compared to C. Well, let's get some numbers.
$ cat a.pl
my @a = 1..1_000_000;
$ time perl a.pl
real 0m0.372s
user 0m0.276s
sys 0m0.092s
$ cat a.c
#include <malloc.h>
int main() {
int ** array = (int**)malloc(1000000 * sizeof(int*));
int i;
for (i = 100000; i--; ) {
array[i] = (int*)malloc(sizeof(int));
}
for (i = 100000; i--; ) {
free(array[i]);
}
free(array);
return 0;
}
$ time a
real 0m0.014s
user 0m0.012s
sys 0m0.000s
(Did a couple of runs of both and picked a representative time.)
Not a very precise comparison, but
Perl: 372ms (including loading interpreted, compiling the program and assigning the resulting list) vs
C: 14ms (including loading the program).
(For one million.)
Where do you get 15s?! I don't see this slowdown.
|