From: CodeDoctor on 19 Sep 2006 06:26 We have a large compute and I/O intense application (image processing) that we run on Win 2k Server. Recently we moved to Win 2003 server and saw a dramatic performance loss, that we cannot explain. We ran tests on the same HW platform with both OS and saw factors of 15 - 20 for memory intensive operations and even more for I/O-bound parts of the application. Did anyone have similar findings. What can we do about it?
From: Carl Daniel [VC++ MVP] on 20 Sep 2006 00:13 CodeDoctor wrote: > We have a large compute and I/O intense application (image > processing) that we run on Win 2k Server. Recently we moved to Win > 2003 server and saw a dramatic performance loss, that we cannot > explain. We ran tests on the same HW platform with both OS and saw > factors of 15 - 20 for memory intensive operations and even more for > I/O-bound parts of the application. > > Did anyone have similar findings. What can we do about it? Run a profiler and measure where the differences appear. Make sure that you're measuring something real, not the performance of an artificial "benchmark". Your experiences are certainly not typical. If anything, I've found 2003 to be more responsive (etc) than 2000, not 15-20 times less responsive. -cd
From: CodeDoctor on 20 Sep 2006 02:00 Hi Daniel, I ran the profiler (VC++ 6.0) on both platforms on the bare OS, i.e. no other application running, and it looks like this for the three most time consuming functions. The server is a HP DL380 G5 with on Dualcore CPU (2x 2.66 GHz) and 4GB RAM: Windows 2000 Server All times in milliseconds 3305.405 67.5 50 _L_LoadBitmapMemory(a)32 (ltfil14n.dll) 1149.349 23.5 50 ConvertImageBuffer (importworker.obj) 194.977 4 51 CFileTransfer::Download(char const *) Windows 2003 Server 47341.072 62.4 50 _L_LoadBitmapMemory(a)32 (ltfil14n.dll) 22571.548 29.7 50 ConvertImageBuffer(importworker.obj) 5739.909 7.6 51 CFileTransfer::Download(char const *) The Download-function reads an entire jpeg image file into a memory buffer using _open, _read, _close functions. It reads in chunks of 1 MB. L_LoadBitmapMemory uncompresses the jpeg stream from this memory buffer. Convert copies from the uncompressed image buffer, that is pixel interleaved, i.e. RGBRGB ..., into a plane interleaved image. The percentages of the functions (2nd number) are similar in both cases but you see the factors between the exec times. Any idea? Thanks much, Matthias "Carl Daniel [VC++ MVP]" wrote: > CodeDoctor wrote: > > We have a large compute and I/O intense application (image > > processing) that we run on Win 2k Server. Recently we moved to Win > > 2003 server and saw a dramatic performance loss, that we cannot > > explain. We ran tests on the same HW platform with both OS and saw > > factors of 15 - 20 for memory intensive operations and even more for > > I/O-bound parts of the application. > > > > Did anyone have similar findings. What can we do about it? > > Run a profiler and measure where the differences appear. Make sure that > you're measuring something real, not the performance of an artificial > "benchmark". > > Your experiences are certainly not typical. If anything, I've found 2003 to > be more responsive (etc) than 2000, not 15-20 times less responsive. > > -cd > > >
From: Slava M. Usov on 20 Sep 2006 19:11 "CodeDoctor" <CodeDoctor(a)discussions.microsoft.com> wrote in message news:5B355583-3D5D-4D58-87C1-7261A9B8B93D(a)microsoft.com... [...] > The Download-function reads an entire jpeg image file into a memory buffer > using _open, _read, _close functions. It reads in chunks of 1 MB. > L_LoadBitmapMemory uncompresses the jpeg stream from this memory buffer. > Convert copies from the uncompressed image buffer, that is pixel > interleaved, i.e. RGBRGB ..., into a plane interleaved image. Is it the same file all the time or different files? How big is the file or files? It could be that the two installations have different memory/cache policies: one is optimised for cache, another for application working set, and your application can be very sensitive to that. S
From: CodeDoctor on 21 Sep 2006 02:52
The files are all different in the case of the test run that generated the data I read 50 different image files. Where do I find the policy settings you mentioned? M. "Slava M. Usov" wrote: > "CodeDoctor" <CodeDoctor(a)discussions.microsoft.com> wrote in message > news:5B355583-3D5D-4D58-87C1-7261A9B8B93D(a)microsoft.com... > > [...] > > > The Download-function reads an entire jpeg image file into a memory buffer > > using _open, _read, _close functions. It reads in chunks of 1 MB. > > L_LoadBitmapMemory uncompresses the jpeg stream from this memory buffer. > > Convert copies from the uncompressed image buffer, that is pixel > > interleaved, i.e. RGBRGB ..., into a plane interleaved image. > > Is it the same file all the time or different files? How big is the file or > files? > > It could be that the two installations have different memory/cache policies: > one is optimised for cache, another for application working set, and your > application can be very sensitive to that. > > S > > > |