Delegate Memory Usage & Optimization

Maxime Chevalier-Boisvert maximechevalierb at gmail.com
Wed Dec 11 18:27:36 PST 2013


I have a use case where I will need to generate millions 
(possibly hundreds of millions) of delegates with the same type 
signature. I'd like to know more about the memory usage 
characteristics. I have two questions:

1. Delegates have environment/context pointer. If the delegate 
does not capture/access any variables from the englobing function 
(if it behaves like a static nested function), will a context 
object be allocated anyways, or will this pointer be null? Does 
DMD optimize this case?

2. Delegates are a function pointer and an environment pointer. 
Are they passed/stored by value, as a struct would be, or heap 
allocated and passed by reference?


More information about the Digitalmars-d mailing list