Speed of hash tables compared to lua
Domingo
mingodad at gmail.com
Sun Sep 13 09:50:27 UTC 2020
Hello !
Doing some tests I found that D hash tables are a lot slower than
Lua tables see bellow, D is using 2 times more memory and 5 times
more time compared to Lua, when comparing with Luajit it's
unbelievable worse.
I would expect a compiled language like D to use less resources
than a scripting language, anyone have experienced something
similar ?
Does the community know this ?
I hope this simple test would help to test and improve the
situation !
=====
local dsize = 6000008;
local d = {};
for i=1, dsize
do
if ((i % 2) == 0) then d[i] = 0.0000000123;
else d[i] = 12345.0000000001; end
end
local sum = 0.0;
for i=1, dsize
do
sum = sum + d[i];
end
print(string.format("count: %d, sum: %35.15f\n", #d, sum));
=====
/usr/bin/time lua sum-test.lua
count: 6000008, sum: 37035049380.000160217285156
0.39user 0.03system 0:00.43elapsed 99%CPU (0avgtext+0avgdata
133528maxresident)k
520inputs+0outputs (1major+32908minor)pagefaults 0swaps
=====
/usr/bin/time luajit sum-test.lua
count: 6000008, sum: 37035049380.000160217285156
0.07user 0.02system 0:00.10elapsed 97%CPU (0avgtext+0avgdata
67824maxresident)k
984inputs+0outputs (3major+18560minor)pagefaults 0swaps
=====
=====
import std.stdio;
int main(char[][] argv)
{
immutable auto DSIZE = 6000008;
double[int] d;
for (int i = 0; i < DSIZE; ++i)
{
d[i] = (i % 2) == 0 ? 0.0000000123 : 12345.0000000001;
}
//d.rehash;
double sum = 0.0;
for (int i = 0; i < DSIZE; ++i)
{
sum += d[i];
}
writefln("count: %d, sum: %35.15f\n", DSIZE, sum);
return 0;
}
=====
/usr/bin/time ./sum_test_aa
count: 6000008, sum: 37035049380.000160217285156
1.96user 0.10system 0:02.04elapsed 101%CPU (0avgtext+0avgdata
272888maxresident)k
0inputs+0outputs (0major+68226minor)pagefaults 0swaps
=====
Cheers !
More information about the Digitalmars-d
mailing list