Profiling Small Functions

Applies to AQTime 8.81, last modified on January 18, 2022

AQTime profilers that analyze running applications (for example, Performance, Allocation, Coverage and some others) cannot profile 32-bit functions that occupy less than five bytes and 64-bit functions that occupy less than six bytes in binary code. These limitations apply to native and .NET code. However, this is a rare case, because one single parameter (if used) or one single call to another function makes binary code larger than five (or six) bytes.

There is no override for this limit. The only workaround is to make the small functions larger, if you must absolutely profile them. For example, you can turn off compiler optimizations that could be making your binary code smaller. Or you can simply add data to the function source to make it larger:

void LittleFunction()

{

  #ifdef profile

    int tmp[5];

    tmp[0] = 1; // prevents the compiler from discarding the declaration

  #endif

...

}

If you choose this path, use conditional directives, as shown above, or remember to remove the added code after profiling.

See Also

Uninstrumented Routines Dialog
Routines That Cannot Be Profiled

Highlight search results