locked
Performance problem with low fragementation heap on Windows 8 RRS feed

  • Question

  • [X-posting from Visual C++ forum]

    Hi,

    when running speed tests for a product, we have come across a performance oddity on Windows 8. Run time of the same program (with same arguments, environment, etc.) can vary by a factor of 2, which was not the case for earlier versions of Windows. We can deterministically switch between the fast and the slow execution by changing seemingly unrelated things, like adding/removing an extra, unrelated environment variable before starting the program.

    When inspecting the behavior of the program in VTune, we find that near 100% of the extra time is spent RtlpSubSegmentInitialize (with some other functions pointing towards the low fragmentation heap further up the call stack).

    The benchmark in question is indeed heavily allocating/deallocating small chunks of memory, but we would not expect such a dramatic effect on the runtime based on "random" factors.

    Is there a way to determine if the root cause for this problem is in our code or the Windows 8 low frag heap implementation? 

    Best regards

    Stephan

    Thursday, December 18, 2014 4:39 PM

All replies

  • Hello Stephan Tobies,

    If my understanding is right, the product developed by you need different times to run in the same environment.

    Please make sure the products run in the same environment.
    We could run the process monitor to capture the Registry and process activity to check if there are difference between the two environment.
    http://technet.microsoft.com/en-us/sysinternals/bb896645.aspx

    Best regards,
    Fangzhou CHEN


    Fangzhou CHEN
    TechNet Community Support

    Monday, December 22, 2014 10:59 AM