soong_zip: move profiling from zip library to soong_zip

Profiling is only used by the standalone soong_zip command,
move it out of the shared zip library.

Bug: 116751500
Test: m checkbuild
Change-Id: I443c34fb39cf8955e163a7720d6f7ed585e4172a
This commit is contained in:
Colin Cross
2018-09-27 15:04:24 -07:00
parent fe945b4401
commit b051ab5cb5
2 changed files with 28 additions and 32 deletions

View File

@@ -20,6 +20,8 @@ import (
"io/ioutil"
"os"
"runtime"
"runtime/pprof"
"runtime/trace"
"strconv"
"strings"
@@ -154,6 +156,32 @@ func main() {
flags.Usage()
}
if *cpuProfile != "" {
f, err := os.Create(*cpuProfile)
if err != nil {
fmt.Fprintln(os.Stderr, err.Error())
os.Exit(1)
}
defer f.Close()
pprof.StartCPUProfile(f)
defer pprof.StopCPUProfile()
}
if *traceFile != "" {
f, err := os.Create(*traceFile)
if err != nil {
fmt.Fprintln(os.Stderr, err.Error())
os.Exit(1)
}
defer f.Close()
err = trace.Start(f)
if err != nil {
fmt.Fprintln(os.Stderr, err.Error())
os.Exit(1)
}
defer trace.Stop()
}
if fileArgsBuilder.Error() != nil {
fmt.Fprintln(os.Stderr, fileArgsBuilder.Error())
os.Exit(1)
@@ -162,8 +190,6 @@ func main() {
err := zip.Run(zip.ZipArgs{
FileArgs: fileArgsBuilder.FileArgs(),
OutputFilePath: *out,
CpuProfileFilePath: *cpuProfile,
TraceFilePath: *traceFile,
EmulateJar: *emulateJar,
AddDirectoryEntriesToZip: *directories,
CompressionLevel: *compLevel,

View File

@@ -25,8 +25,6 @@ import (
"log"
"os"
"path/filepath"
"runtime/pprof"
"runtime/trace"
"sort"
"strings"
"sync"
@@ -196,8 +194,6 @@ type zipEntry struct {
type ZipArgs struct {
FileArgs []FileArg
OutputFilePath string
CpuProfileFilePath string
TraceFilePath string
EmulateJar bool
AddDirectoryEntriesToZip bool
CompressionLevel int
@@ -251,32 +247,6 @@ func ReadRespFile(bytes []byte) []string {
}
func Run(args ZipArgs) (err error) {
if args.CpuProfileFilePath != "" {
f, err := os.Create(args.CpuProfileFilePath)
if err != nil {
fmt.Fprintln(os.Stderr, err.Error())
os.Exit(1)
}
defer f.Close()
pprof.StartCPUProfile(f)
defer pprof.StopCPUProfile()
}
if args.TraceFilePath != "" {
f, err := os.Create(args.TraceFilePath)
if err != nil {
fmt.Fprintln(os.Stderr, err.Error())
os.Exit(1)
}
defer f.Close()
err = trace.Start(f)
if err != nil {
fmt.Fprintln(os.Stderr, err.Error())
os.Exit(1)
}
defer trace.Stop()
}
if args.OutputFilePath == "" {
return fmt.Errorf("output file path must be nonempty")
}