diff options
author | Jakob Unterwurzacher | 2017-07-29 17:12:32 +0200 |
---|---|---|
committer | Jakob Unterwurzacher | 2017-07-29 17:17:12 +0200 |
commit | 86253b75670172fda6b481848cd63ca5685f112d (patch) | |
tree | f6f9d6259bb809d566ff205783091e3640eda22f | |
parent | d12aa577156101a1c6a05765de751f0a54b58aa8 (diff) |
main: doMount: call FreeOSMemory() before jumping into server loop
scrypt (used during masterkey decryption) allocates a lot of memory.
Go only returns memory to the OS after 5 minutes, which looks like
a waste. Call FreeOSMemory() to return it immediately.
Looking a fresh mount:
before: VmRSS: 73556 kB
after: VmRSS: 8568 kB
-rw-r--r-- | mount.go | 4 |
1 files changed, 4 insertions, 0 deletions
@@ -10,6 +10,7 @@ import ( "path" "path/filepath" "runtime" + "runtime/debug" "strings" "syscall" "time" @@ -139,6 +140,9 @@ func doMount(args *argContainer) int { // This prevents a dangling "Transport endpoint is not connected" // mountpoint if the user hits CTRL-C. handleSigint(srv, args.mountpoint) + // Return memory that was allocated for scrypt (64M by default!) and other + // stuff that is no longer needed to the OS + debug.FreeOSMemory() // Jump into server loop. Returns when it gets an umount request from the kernel. srv.Serve() return 0 |