Often repeated array allocations

Dmitry Olshansky dmitry.olsh at gmail.com
Sun Jul 21 06:35:39 PDT 2013


21-Jul-2013 00:42, Ali Çehreli пишет:
> On 07/20/2013 01:22 PM, Dmitry Olshansky wrote:
>
>  > 21-Jul-2013 00:19, Namespace пишет:
>  >> Let us assume we have a method of a class which is used often and the
>  >> method is called periodically and must allocate every time a array
>  >> between 100 and 4000 elements. What would you do?
>
>  > 5. Keep a TLS scratch pad buffer (static  class member) for said
>  > 100-4000 floats and re-use it.
>
> As long as the function finishes with that buffer, there shouldn't be
> reentrancy issues in general. But if the function calls the same
> function, say on another object perhaps indirectly, then the two objects
> would be sharing the same buffer:
>

Yes, this case is problematic. It cannot be called recursively even with 
another instance.

> class C
> {
>      void foo() {
>          /* modify the static buffer here */
>          auto c = new C();
>          c.foo();
>          /* the static buffer has changed */
>      }
> }
>
> Ali
>


-- 
Dmitry Olshansky


More information about the Digitalmars-d-learn mailing list