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.

Reply via email to