[Date Prev][Date Next][Thread Prev][Thread Next]
[Date Index]
[Thread Index]
- Subject: Re: Fast integer arithmetic
- From: ramsdell@... (John D. Ramsdell)
- Date: 21 Feb 2008 14:37:24 -0500
For a benchmark, "Leo Razoumov" <slonik.az@gmail.com> writes:
> local sum=0
> for x=1,10000000 do
> sum= sum+ 100/50
> end
Leo,
I decided on a different performance test, one that repeatedly
computes a remainder. On an IBM IntelliStation M Pro, which uses a
32-bit i386, I compiled a patched and an unpatched version of Lua
5.1.3 with "make ansi". I then ran the following benchmark.
$ cat mod.lua
local sum = 0
for i = 1,100000000 do
sum = sum + i % 5
end
print (sum)
$ : Unpatched lua
$ time lua-5.1.3/src/lua mod.lua
200000000
real 0m8.321s
user 0m8.286s
sys 0m0.003s
$ : Lua patched with "Go Long Lua!"
$ time plua-5.1.3/src/lua mod.lua
200000000
real 0m6.196s
user 0m6.170s
sys 0m0.002s
$
So there really is a performance difference between longs and doubles,
even on machines with FPUs. Note that remainder is an important
component in some cryptography algorithms.
Since it's a 32-bit machine, I'm curious to know if ints are faster
than longs, however, that requires modifying my patch. Maybe I'll try
that experiment when I have some free time.
I bet longs are even faster on a 64-bit machine, a Core 2 Duo or one
of AMD's processors. I'll see if I can find a machine that allows
that hypothesis to be tested too.
John