On Thursday, 21 January 2016 at 23:06:55 UTC, Dibyendu Majumdar
wrote:
On Thursday, 21 January 2016 at 22:44:14 UTC, H. S. Teoh wrote:
Hi - I want to be sure that my code is not allocating memory
via the GC allocator; but when shipping I don't need to
disable GC - it is mostly a development check.
I want to manage all memory allocation manually via
malloc/free.
Just write "@nogc:" at the top of every module and the
compiler will tell you if there's a GC allocation anywhere.
Thanks!
You can also compile with -vgc and it will tell you where gc
allocations are taking place.
```
import std.stdio;
void main() {
int[] ints = new int[](10);
for(int i=0; i<15; ++i)
ints ~= i;
writeln("Here be GC");
}
```
Compiling the above produces the following messages from the
compiler:
alloc.d(3): vgc: 'new' causes GC allocation
alloc.d(5): vgc: operator ~= may cause GC allocation