Browse Source

Include perfstats and heap profiles in standard build

Jakob Borg 11 years ago
parent
commit
213acaee3b
3 changed files with 17 additions and 12 deletions
  1. 3 3
      cmd/syncthing/heapprof.go
  2. 11 6
      cmd/syncthing/main.go
  3. 3 3
      cmd/syncthing/perfstats.go

+ 3 - 3
cmd/syncthing/heapprof.go

@@ -2,8 +2,6 @@
 // All rights reserved. Use of this source code is governed by an MIT-style
 // license that can be found in the LICENSE file.
 
-// +build heapprof
-
 package main
 
 import (
@@ -16,7 +14,9 @@ import (
 )
 
 func init() {
-	go saveHeapProfiles()
+	if os.Getenv("STHEAPPROFILE") != "" {
+		go saveHeapProfiles()
+	}
 }
 
 func saveHeapProfiles() {

+ 11 - 6
cmd/syncthing/main.go

@@ -104,9 +104,6 @@ The following enviroment variables are interpreted by syncthing:
                Set this variable when running under a service manager such as
                runit, launchd, etc.
 
- STPROFILER    Set to a listen address such as "127.0.0.1:9090" to start the
-               profiler with HTTP access.
-
  STTRACE       A comma separated string of facilities to trace. The valid
                facility strings:
                - "beacon"   (the beacon package)
@@ -120,10 +117,18 @@ The following enviroment variables are interpreted by syncthing:
                - "xdr"      (the xdr package)
                - "all"      (all of the above)
 
- STCPUPROFILE  Write CPU profile to the specified file.
-
  STGUIASSETS   Directory to load GUI assets from. Overrides compiled in assets.
 
+ STPROFILER    Set to a listen address such as "127.0.0.1:9090" to start the
+               profiler with HTTP access.
+
+ STCPUPROFILE  Write a CPU profile to cpu-$pid.pprof on exit.
+
+ STHEAPPROFILE Write heap profiles to heap-$pid-$timestamp.pprof each time
+               heap usage increases.
+
+ STPERFSTATS   Write running performance statistics to perf-$pid.csv.
+
  STDEADLOCKTIMEOUT  Alter deadlock detection timeout (seconds; default 1200).`
 )
 
@@ -498,7 +503,7 @@ nextRepo:
 	}
 
 	if cpuprof := os.Getenv("STCPUPROFILE"); len(cpuprof) > 0 {
-		f, err := os.Create(cpuprof)
+		f, err := os.Create(fmt.Sprintf("cpu-%d.pprof", os.Getpid()))
 		if err != nil {
 			log.Fatal(err)
 		}

+ 3 - 3
cmd/syncthing/perfstats.go

@@ -2,8 +2,6 @@
 // All rights reserved. Use of this source code is governed by an MIT-style
 // license that can be found in the LICENSE file.
 
-// +build perfstats
-
 package main
 
 import (
@@ -15,7 +13,9 @@ import (
 )
 
 func init() {
-	go savePerfStats(fmt.Sprintf("perfstats-%d.csv", syscall.Getpid()))
+	if os.Getenv("STPERFSTATS") != "" {
+		go savePerfStats(fmt.Sprintf("perfstats-%d.csv", syscall.Getpid()))
+	}
 }
 
 func savePerfStats(file string) {