.net - Disable compiler optimisation for a specific function or block of code (C#) -
the compiler great job of optimising release builds, can useful ensure optimisation turned off local function (but not entire project unticking project options > optimize code).
in c++ achieved using following (with #pragma commented out):
#pragma optimize( "", off ) // code such function (but not whole project) #pragma optimize( "", on ) is there equivalent in c#?
update
several excellent answers suggest decorating method methodimploptions.nooptimization. implemented in .net 3.5, though not in compact framework (cf) version. related follow-on question whether equivalent for:
* projects targeting .net 3.0 or earlier? * projects deployed device such windows ce 6.0 using .net 3.5 cf?
you can decorate specific method (or property getter/setter) [methodimpl(methodimploptions.nooptimization)] , [methodimpl(methodimploptions.noinlining)], prevent jitter optimizing , inlining method:
[methodimpl(methodimploptions.nooptimization | methodimploptions.noinlining)] private void methodwhichshouldnotbeoptimized() { } however, there isn't way apply attribute block of code. nooptimization attribute added in .net 3.5, might important legacy code or compact framework.
Comments
Post a Comment