Question about CPU caches and D context pointers

Casper Færgemand" <shorttail at hotmail.com> Casper Færgemand" <shorttail at hotmail.com>
Tue Feb 18 10:13:23 PST 2014


On Tuesday, 18 February 2014 at 08:11:04 UTC, Dicebot wrote:
> None of your buffers are on stack in both examples. As those 
> are dynamic arrays you only get pointer + length as value and 
> data itself resides on heap in some unknown location.

That.

struct S {}
class C {}

S[] s1; // fat pointer to an array of structs
S[2] s2; // array of two structs, plus a length?

C[] c1; // fat pointer to an array of pointers
C[2] c2; // array of two pointers, plus a length?


I tested some prime sieves both in C++ and D. They worked fastest 
with dynamic arrays with a size matching the L1 cache. I presume 
the instructions are located elsewhere in the CPU.


More information about the Digitalmars-d-learn mailing list