[Ace-users] pread/pwrite implementation for ACE_HAS_WINNT4 performance

daniel.schenk at schiller.ch daniel.schenk at schiller.ch
Tue Oct 30 07:14:39 CDT 2007


Hi,

sorry, I referred to ACE 5.4.7, the current version replaced
ACE_HAS_WINNT4 by ACE_HAS_WIN32_OVERLAPPED_IO

but
    ACE VERSION: 5.4

    HOST MACHINE and OPERATING SYSTEM:
        Windows XP, Servicepack 2

    COMPILER NAME AND VERSION (AND PATCHLEVEL):
    Microsoft DeveloperStudio 6.0 Servicepack 6
    CONTENTS OF $ACE_ROOT/ace/config.h:
    #define ACE_HAS_STANDARD_CPP_LIBRARY   1
    #include "ace/config-win32.h"

    AREA/CLASS/EXAMPLE AFFECTED:
    ace\OS_NS_unistd.cpp

    DOES THE PROBLEM AFFECT:
        EXECUTION Performance of ACE
    DESCRIPTION:
    Please see below

    REPEAT BY:

    SAMPLE FIX/WORKAROUND:
    Please see below

On 30 Okt., 12:16, "Johnny Willemsen" <jwillem... at remedy.nl> wrote:
> Hi,
>
> The current code doesn't check for ACE_HAS_WINNT4, so:
>
> To ensure that we have proper version/platform/compiler information,
> please make sure you fill out the appropriate problem report form
> (PRF), which is in
>
> $ACE_ROOT/PROBLEM-REPORT-FORM
> $TAO_ROOT/PROBLEM-REPORT-FORM
>
> or in
>
> $ACE_ROOT/BUG-REPORT-FORM
> $TAO_ROOT/BUG-REPORT-FORM
>
> in older versions of ACE+TAO.  Make sure to include this information
> when asking any questions about ACE+TAO since otherwise we have to
> "guess" what version/platform/compiler/options you've using, which is
> very error-prone and slows down our responsiveness.  If you don't use
> the PRF, therefore, it is less likely that someone from the core
> ACE+TAO developer team will be able to answer your question.
> Naturally, we encourage and appreciate other members of the ACE+TAO
> user community who can respond to questions that they have the answers
> to.
>
> Regards,
>
> Johnny Willemsen
> Remedy IT
> Postbus 101
> 2650 AC  Berkel en Rodenrijs
> The Netherlandswww.theaceorb.nl/www.remedy.nl
>
> *** Integrated compile and test statistics seehttp://scoreboard.theaceorb.nl***
> *** Commercial service and support for ACE/TAO/CIAO             ***
> *** Seehttp://www.theaceorb.nl/en/support.html                ***
>
> <daniel.sch... at schiller.ch> wrote in message
>
> <news:1193739147.174354.145830 at 22g2000hsm.googlegroups.com>...
>
> > Hi
>
> > in ace\OS_NS_unistd.cpp the ACE_WIN32 implementation of ACE_OS::pread
> > uses
> > 1. ACE_OS_GUARD to synchronize access
> > 2. gets the current file pointer, set it to the desired offset and
> > restores it after reading
>
> > Both should be unnecessary if ACE_HAS_WINNT4 is defined.
> > Because ::ReadFile is used with an OVERLAPPED structure. ::ReadFile
> > will set the offset internally, which is passed inside the OVERLAPPED
> > structure. Therefore there will be no need for synchronization by
> > ACE_OS_GUARD.
> > This will mean that the current implementation for  ACE_HAS_WINNT4
> > unnecessarily calls  SetFilePointer 3 times and locks, which will of
> > course slow down the performance.
> > The same will be true for ACE_OS::pwrite.
>
> > Please correct me, if I'm wrong. Otherwise I would appreciate if you
> > could change the code.
>
> > best regards
>
> > Daniel Schenk




More information about the Ace-users mailing list