diff --git a/Documentation/performance.txt b/Documentation/performance.txt index 21d9b0c..de2c1bc 100644 --- a/Documentation/performance.txt +++ b/Documentation/performance.txt @@ -28,6 +28,7 @@ v1.2.1-33 112 21 12 1.6 4.4 (go1.8) v1.2.1-33 -serialize_reads 116 21 39 1.5 4.4 v1.3-27 113 20 11 1.4 4.2 +v1.3-53-gf44902a 119 19 12 1.6 4.1 Results for EncFS for comparison (benchmark.bash -encfs): diff --git a/main.go b/main.go index 9b0e31b..58d5e06 100644 --- a/main.go +++ b/main.go @@ -11,6 +11,8 @@ import ( "strings" "time" + "github.com/hanwen/go-fuse/fuse" + "github.com/rfjakob/gocryptfs/internal/configfile" "github.com/rfjakob/gocryptfs/internal/contentenc" "github.com/rfjakob/gocryptfs/internal/exitcodes" @@ -18,7 +20,6 @@ import ( "github.com/rfjakob/gocryptfs/internal/speed" "github.com/rfjakob/gocryptfs/internal/stupidgcm" "github.com/rfjakob/gocryptfs/internal/tlog" - "github.com/hanwen/go-fuse/fuse" ) // GitVersion is the gocryptfs version according to git, set by build.bash @@ -111,7 +112,11 @@ func printVersion() { } func main() { - runtime.GOMAXPROCS(4) + mxp := runtime.GOMAXPROCS(0) + if mxp < 4 { + // On a 2-core machine, setting maxprocs to 4 gives 10% better performance + runtime.GOMAXPROCS(4) + } var err error // Parse all command-line options (i.e. arguments starting with "-") // into "args". Path arguments are parsed below.