Up to Main Index Up to Journal for April, 2012 JOURNAL FOR SUNDAY 29TH APRIL, 2012 ______________________________________________________________________________ SUBJECT: Debugging memory leaks DATE: Sun Apr 29 02:26:22 BST 2012 Well it's now getting early. Spent most of the day trying to debug the latest memory problems. It seems like when a player connection is started so are two goroutines. One for the actual player and one for async output - what you are doing, what someone else is doing and what is going on around you messages. Somewhere along the line the output goroutine is not dying and I end up with thousands of them, each one not releasing resources so memory usage is slowly going up as well. *sigh* Debugging a program can be tedious, debugging a multithreaded networking program can get pretty insane - especially if the bug only happens when you have a lot of threads and a lot of networking going on! Still got a few bugs to sort out but now the night jobs and backups are kicking in so might as well goto bed for a while and sleep on it. -- Diddymus ______________________________________________________________________________ SUBJECT: Rethinking new WolfMUD design DATE: Sun Apr 29 17:29:55 BST 2012 Awake again and fresh as a daisy - well sort of awake anyway. Once caffeinated I spent time rereading some Go documentation. Specifically: The Go Memory Model [1] Effective Go concurrency section [2] Go Concurrency Patterns: Timing out, moving on [3] Go Programming Language Specification [4] - Channel Types [5] - Go Statements [6] - Select Statements [7] Codewalk: Share Memory By Communicating [8] Oh how I long for an O'Reilly book on Go and a nutshell book with all the references in it! Just looked through their New, Upcoming and Early release sections on their website[9] and I can't see anything :( For now it's back to reading from the screen - I much prefer dead tree references, I have large bookcases full of reference books. One of my few prized possessions. I have a feeling I'm going to need to redesign the redesign of WolfMUD. As I'm working on the foundations still I'm not too fussed. With a little more effort things should turn out even better ;) -- Diddymus [1] https://golang.org/ref/mem [2] https://golang.org/doc/effective_go.html#concurrency [3] https://golang.org/doc/articles/concurrency_patterns.html [4] https://golang.org/ref/spec [5] https://golang.org/ref/spec#Channel_types [6] https://golang.org/ref/spec#Go_statements [7] https://golang.org/ref/spec#Select_statements [8] https://golang.org/doc/codewalk/sharemem/ [9] http://shop.oreilly.com/ Up to Main Index Up to Journal for April, 2012