On 02/09/16 14:41, Shawn Smith wrote: > I'm one of the maintainers of Go Report Card http://goreportcard.com/ > and I am looking for advice on how to make it faster. > > Basically we run a series of checks (gofmt, vet, etc.) on your Go > repository and provide a grade based on how many errors each check > returns. Each check runs in a separate goroutine > (https://github.com/gojp/goreportcard/blob/master/handlers/checks.go#L124), > and they are all shelling out using exec.Command > (https://github.com/gojp/goreportcard/blob/master/check/utils.go#L170).
I'm pretty sure this means that command will use its own OS thread rather than just a go routine since it will be blocked in a syscall waiting for the command to end. Threads are much more expensive than go-routines, eg see http://stackoverflow.com/questions/344203/maximum-number-of-threads-per-process-in-linux So I'd check to see if you are running out of threads, or memory because of lots of threads. > The server we run this on is a Digital Ocean droplet with 1 GB of RAM > (would upgrading it help?) > > We normally only see issues on repositories with a very large number of > files. What issues do you see? -- Nick Craig-Wood <n...@craig-wood.com> -- http://www.craig-wood.com/nick -- You received this message because you are subscribed to the Google Groups "golang-nuts" group. To unsubscribe from this group and stop receiving emails from it, send an email to golang-nuts+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/d/optout.