lua-users home
lua-l archive

[Date Prev][Date Next][Thread Prev][Thread Next] [Date Index] [Thread Index]


are these benchmarks similar for GNU toolchain ?

On Wed, Apr 30, 2008 at 11:25 AM, Alex Davies <alex.mania@iinet.net.au> wrote:
>
>
> Hey all,
>
> I either need help getting VS to work correctly, or am just bringing some
> hard data about the performance of a custom memory allocator compared to the
> inbuilt one.
>
> It was brought on by migrating from Delphi to Visual Studio. Visual Studio
> appeared to be severely lacking in memory allocator performance, even under
> release build configuration. Although I was unsure about whether it was
> something I was doing or whether it was actually the case, I ported across
> fastmm4 from Delphi. (I haven't read the licenses to see if I can actually
> do that mind, but it's a personal experiment) and noticed a huge performance
> increase.
>
> Eg, standard interpreted Lua running this:
> "for i = 1,1024*1024*64 do local z = {} end"
>
> Takes just 9 seconds to create state, run and close state under fastmm4,
> compared to 3 minutes 20 seconds of the default allocator. (20 times faster)
>
> Furthermore the default allocator appears to have a large amount of overhead
> / fragmentation. Eg this test: [[
>   local z, max = {}, 1024*1024*32
>   for i = 1,max do z[i] = i % 16 end
>   for i = 1,max do z[i] = { z[i] } end
>   for i = 1,max do
>     if (z[i][1]) ~= i % 16 then error("mallocator is broken") end
>   end
> ]]
> Takes 6.31GB of ram with the default allocator (64 bit OS), and seems to
> hang (> 10 min) whilst trying to close the state. (Presumably due to
> fragmentation, unsure. Without including the time to close state, still
> takes over 100 seconds). Fastmm on the other hand takes 4.23GB and 26
> seconds, including time taken to close the state. And that's with 16 byte
> aligning all allocs!
>
> There has to be something wrong there =S.
>
> For anyone in the know I'm compiling with:
>
> "/Ox /Oi /Ot /Oy /I "C:\Users\Alex\Documents\Visual Studio
> 2008\Projects\Lua\src" /D "_CRT_SECURE_NO_WARNINGS" /D "_UNICODE" /D
> "UNICODE" /FD /EHsc /MD /Gy /Yu"stdafx.h" /Fp"x64\Release\Lua
> Standalone.pch" /Fo"x64\Release\\" /Fd"x64\Release\vc90.pdb" /W3 /nologo /c
> /Zi /TP /errorReport:prompt"
>
> VS isn't performing memsets or anything is it?
>
> - Alex