Intel® C++ Compiler
Community support and assistance for creating C++ code that runs on platforms based on Intel® processors.

memcpy 100M takes more than 60s!

Wang_Wang
Beginner
848 Views
Hello everyone,

Recently we found that our software sometimes become very very slow.

With help of debug logs we conclude that in dll a call of memcpy which at most copies 100M sometimes takes 30s and even 60s!

when freezing happens we found that everything seems ok in taskmgr except that system memory exceeds 4G.

The code is in a dll file assuming A.dll which is compiled with intel compiler 10.0. Main exe which calls A.dll is compiled with vs2005 and LARGEADDRESSAWARE option.

The exe consumes 2G phisical memory as usual. while system slows down we notice the exe use 1.4g phisical memory + 1.7 virtal memory.

It is windows xp embbed sp3 32bit. We have modify boot.ini to adopt large memory allocation for the exe as follows:

[operating systems]
multi(0)disk(0)rdisk(0)partition(1)\\WINDOWS="Microsoft Windows XP Professional" /noexecute=optin /fastdetect /3GB /USERVA=2650

Hardware:

cpu: Intel Xeon CPU E5410 @ 2.33GHz x 8 cores

video card:nvs 295 (256M)

Gpu:gtx 260 (896M)

memory:8G = Samsung DDR2-667 (333 MHz) SDRAM x 4 + Nanya M2D1G72TU89D9B-3C DDR2-800 (400 MHz) x 4

Any help from you will be highly appreciated!
0 Kudos
2 Replies
PaulF_IntelCorp
Employee
848 Views
Hello Wang,

This sounds like an issue for the compiler forum. I'm moving your thread over there in the hopes that you will find the answer you are looking for.

Paul
0 Kudos
Alexander_W_Intel
848 Views

Hi,

this sounds for me like a problem caused by swapping. Your memory might be too small and Windows starts to page memory to disk. If you try to copy paged memory this result in very high disk utilization and therefore in a very slow copying of the data.

You can check this with the Performance Monitor that ships with Windows XP. Go to Start -> Run and type in "perfmon" and hit ok. The Counter pages/s is important. If this value goes up by bigger numbers while copying, at least a part of your copied memory are coming from disk or is stored at disk.

Thanks,
Alex

0 Kudos
Reply