visual studio - Is there a performance impact by turning on LARGEADDRESSAWARE? -
i keen know how /largeaddressaware
switch works , cannot find implementation details.
can describe happening when switch used , consequences (aside allowing process access more memory)?
i have run simple benchmark using slam++ library on venice, sphere , 100k datasets:
dataset | time x86 | time x86 /largeaddressaware | time x64 venice | bad_alloc | 4276.524971 | 300.315826 sec sphere | 2.946498 | 3.605073 | 1.727466 sec 100k | 46.402400 | 50.196711 | 32.774384 sec
all times in seconds. there have - performance toll can substantial. doing blas operations, accelerated using sse, , whole thing quite memory bound. note peak memory usage on venice in x86 on 3.5 gb (i believe can 4 gb in x64 system), in x64 bit under 4.3 gb. other datasets use less memory, below 2 gb.
in case of x86 /largeaddressaware
on venice, t seemed os wants keep of >2 gb in paging file, although memory usage jumped >3 gb when data accessed - cost may stem aggressive paging. also, there advantage arithmetic operations in x64 on x86 (the program can use registers, etc.), why ordinary x86 slower x64 on small datasets.
this measured on machine 2x amd opteron 2356 se , 16 gb of 667 mhz ddr2, running windows server 2003 x64.
on windows 7, intel core i7-2620m, 8 gb 1333 mhz ddr3 machine:
dataset | time x86 | time x86 /largeaddressaware | time x64 venice | bad_alloc | 203.139716 | 115.641463 sec sphere | 1.714962 | 1.814261 | 0.870865 sec 100k | 18.040907 | 18.091992 | 13.660002 sec
this has quite similar behavior, x64 faster x86, , /largeaddressaware
slower (although not slower in previous case - depends on cpu or on os).
Comments
Post a Comment