Sean Kelly wrote: > Mengu Wrote: > >> Hi all, >> >> I was reading an IRC server's codes which was C++ and thought how >> possible it was with D and started a discussion in the #d room in >> freenode. Yet I'm very confused right now. Please go ahead and read the >> logs here: http://pastie.org/1061905 >> >> Please let me know what you guys think on this issue. > > Looks like wm4 is saying that false references will kill any long-running > app. That is, that because the GC is conservative it may treat some > memory locations as pointers that really aren't pointers, which will in > turn prevent the GC from collecting memory that has no actual references > to it. Three thoughts: > > 1. There's a precise scanning patch in bugzilla right now. If applied, > this should largely eliminate this issue. > > 2. This is only an issue for certain apps in the first place. Something > like an IRC server isn't likely to encounter this problem given the sort > of data it operates on. Surely all programs that have logging use the GC extensively? I have had a problem with Java and log4j where the entire heap gets used up and its mostly because of unfreed concatenation of strings for logging e.g.: logger.info("connection from"~ socket.remoteAddress());
lazy helps when logging is off but only then. -Rory
