[erlang-questions] widefinder update

Anders Nygren <>
Tue Oct 23 23:12:41 CEST 2007


On 10/23/07, Anders Nygren <> wrote:
> To summarize my progress on the widefinder problem
> A few days ago I started with Steve Vinoski's tbray16.erl
> As a baseline on my 1.66 GHz dual core Centrino
> laptop, Linux,
> tbray16
> real    0m7.067s
> user    0m12.377s
> sys     0m0.584s
>
> I removed the dict used for the shift table,
> and changed the min_heap_size.
> That gave
> real    0m2.713s
> user    0m4.168s
> sys     0m0.412s
>
> (see tbray_tuple.erl and wfbm4_tuple.erl)
> Steve reported that it ran in ~1.9 s on his 8 core server.
>
> Then I removed the dicts that were used for collecting the
> matches and used ets instead, and got some improvement
> on my dual core laptop.
> real    0m2.220s
> user    0m3.252s
> sys     0m0.344s
>
> (see tbray_ets.erl and wfbm4_ets.erl)
>
> Interestingly Steve reported that it actually performed
> worse on his 8 core server.
>
> These versions all read the whole file into memory at the start.
> On my laptop that takes ~400ms (when the file is already cached
> in the OS).
>
> So I changed it to read the file in chucks and spawn the worker
> after each chunk is read.
>
> tbray_blockread with 4 processes
> real    0m1.992s
> user    0m3.176s
> sys     0m0.420s
>
> (see tbray_blockread.erl and wfbm4_ets.erl)
>
> Running it in the erlang shell it takes ~1.8s.
>

In the last email I mentioned that
" Just starting and stopping the VM takes
 time erl -pa ../../bfile/ebin/ -smp -noshell -run init stop

 real    0m1.229s
 user    0m0.208s
 sys     0m0.020s"

But I just realized that a more useful measure for basic
startup and shutdown is

time erl -pa ../../bfile/ebin/ -smp -noshell -run erlang halt

real    0m0.201s
user    0m0.180s
sys     0m0.016s

/Anders



More information about the erlang-questions mailing list