Something is horribly unoptimized when compiling mappings. I did some
data processing and wrote out the resulting mapping with sprintf %O
into a text file, resulting in some 40,000 entries. I then created a
file like this

mapping m=
#include "stat.txt"
    ;

void main()
{
}

and started it. Since it took a long while to execute I wrote this
while waiting

void main()
{
    mapping m = ([]);
    foreach(Stdio.File("stat.txt")->line_iterator();;string line)
    {
        int a,b;
        if( sscanf(line, "%*s%d: %d", a,b)==3 )
            m[a] += b;
    }
}

which ended up taking

real    0m0.222s
user    0m0.208s
sys     0m0.008s

I have now stopped the first program, which didn't yet terminate. It
looked like this just before I stopped it.

  PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND
 7962 nilsson   20   0 1264m 1.2g  792 R  100 61.8 974:54.12 pike
  • Com... Martin Nilsson (Opera Mini - AFK!) @ Pike (-) developers forum
    • ... Marcus Comstedt (ACROSS) (Hail Ilpalazzo!) @ Pike (-) developers forum
      • ... Henrik Grubbstr�m (Lysator) @ Pike (-) developers forum
    • ... Martin Stjernholm, Roxen IS @ Pike developers forum
      • ... Marcus Comstedt (ACROSS) (Hail Ilpalazzo!) @ Pike (-) developers forum
        • ... Martin Stjernholm, Roxen IS @ Pike developers forum
          • ... Marcus Comstedt (ACROSS) (Hail Ilpalazzo!) @ Pike (-) developers forum
            • ... Martin Stjernholm, Roxen IS @ Pike developers forum
              • ... Marcus Comstedt (ACROSS) (Hail Ilpalazzo!) @ Pike (-) developers forum
    • ... Mirar @ Pike developers forum
      • ... Martin Nilsson (Opera Mini - AFK!) @ Pike (-) developers forum

Reply via email to