
Den 10-10-2011 08:22, Jeffrey Lee Hellrung, Jr. skrev:
On Sun, Oct 9, 2011 at 6:08 PM, Beman Dawes<bdawes@acm.org> wrote:
Shouldn't there be documentation that describes when to use it and when not to use it? I guess my main concern is that it might be used inappropriately if the name is the only guideline developers have.
+1, my thoughts exactly, Beman. Can anyone provide any links to a case study or something similar investigating the effects of forcing inlining? I'm definitely interested to see what real effects this could have.
I don't have a link, but can talk a little about my experience. I was trying to optimize some of our performance critical code. Step one is to find the bottlenecks with some tool. I used the one that comes with visual C++. After running this, I had a great overview over which functions took up most of the time, and which functions that were called a lot (say, many million times). Usually, the compiler will not inline a large function because the saved time is neglible and more code is generated. However, the compiler can usually not know that a large function often returns quickly where large parts of the code of the function is only used sometimes. Hence I used __force_inline. I do think, from an optimization point of view, that it is /not/ an optimal/complete solution. It would often be better to request at a call-site that the function should be inline here, and only here. -Thorsten