On Thursday, 1 September 2022 at 13:23:42 UTC, Steven Schveighoffer wrote:
>On 9/1/22 6:13 AM, Redwan wrote:
>OK tnx. another problem that probably is related to this issue.
I compiled this worthless code:
void main() {}
also this one:
@nogc void main() {}
the valgrind result:
...
total heap usage: 143 alloc, 141 frees, 13,236 bytes allocated
...
!!!
what's this means??
from where comes this allocations and also leaks???
The runtime does some allocations before running main. But these are all C malloc allocations and not GC allocations. There should be zero GC usage in these programs.
Hi Steven,
I think you would agree that one hundred and forty three allocations (=malloc calls?) is a very large (unacceptable) amount for just starting and shutting down the runtime of D.
As for "leaks", I think it would tell you that. Looking on the internet, this may count for "reachable" data, that is, data that is allocated, and still referenced at program exit. Such memory is not a "leak" in the sense that you just stopped pointing at it and never freed it.
Matching deallocations should also be required of a language runtime. Every user is forced to use the druntime, it is not an optional component (yes -betterC, come on). One example mentioned on StackOverflow is the case of a DLL [1].
regards,
Johan