Does "enable runtime themes" affect performance?

3.4k views Asked by At

I've recently changed "enable runtime themes" value in the project options and I'm wondering if it's value affects application's performances and, in case, in which manner? Hope someone can clarify me this point. enter image description here

1

There are 1 answers

4
Dalija Prasnikar On BEST ANSWER

What "Enable runtime themes" actually does is telling Windows to Enable Visual Styling of the applications via following manifest entry

    <dependentAssembly>
        <assemblyIdentity
            type="win32"
            name="Microsoft.Windows.Common-Controls"
            version="6.0.0.0"
            processorArchitecture="*"
            publicKeyToken="6595b64144ccf1df"
            language="*"
        />
    </dependentAssembly>

You could also have runtime themes enabled in older Delphi versions using different methods. Delphi 7 included TXPManifest component that had same effect as "Enable runtime theme".

Enabling runtime themes has impact on GUI part of the application. Obviously painting flat Win 95 style button should be more performant that painting gradient styled rounded Win XP/Vista/Win7 button, but as noted by @DavidHeffernan and @TLama that may not be so. One of the problems here is also measuring actual performance, since it can depend on many factors. So even if you do some actual performance profiling results can be highly skewed. Real question here is should difference in GUI performance between non-themed and themed application (no matter which one turns out to be faster) be of some concern to you.

Answer to that part would be no. First, any performance impacts you may have are strictly GUI related. Second, static Windows application GUI is far less demanding than any 3D game our computers are fully capable to run. And since visual styling has been introduced with Windows XP and back then computers did not have any performance problems in handling styles (it is used all over the system) dwelling about runtime themes performance in today's apps running on modern hardware is just waste of time.