High memory usage in vibe.d application

Jacob Shtokolov jacob.100205 at gmail.com
Sat Jun 30 22:06:50 UTC 2018


On Friday, 29 June 2018 at 17:40:07 UTC, Anton Fediushin wrote:
> So, long story short:
> - Usage of Mallocator instead of theAllocator made it a little 
> bit better
> - VibeManualMemoryManagement had no (or little) effect
> - Manually calling GC.collect had no (or little) effect

You could try to call GC.minimize in pair with GC.collect:

```
GC.collect();
GC.minimize();
```

to return all freed memory back to the OS.

Not sure that the leakage of this type is possible because if 
you're running your program on 64bit Linux the probability of it 
is very low. AFAIK the GC is launched every (almost) time you 
allocate the memory, and if it finds "dead" pointers, it 
definitely must clean them out.

Vibe.d may also leak. Have you tried to run the same code without 
Vibe.d, say, using https://github.com/ikod/dlang-requests as an 
HTTP client?

Also, have you tried to change vibe.d's event loop engine, like 
libevent or libasync?


More information about the Digitalmars-d-learn mailing list