in reply to Re^6: Why it takes so much time here?
in thread Why it takes so much time here?

The same number of int takes less than 1 second to initialize

What does that mean?

Replies are listed 'Best First'.
Re^8: Why it takes so much time here?
by PerlOnTheWay (Monk) on Dec 28, 2011 at 05:35 UTC

    So the amount of time is close for the same amount of iteration whether in c or perl.

    My original question still remains,right?

      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.

        seems the problem is solved,thank you~

        PS. 15 = 1325041218 - 1325041203