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" "io/ioutil"
"os" "os"
"runtime" "runtime"
"runtime/pprof"
"runtime/trace"
"strconv" "strconv"
"strings" "strings"
@@ -154,6 +156,32 @@ func main() {
flags.Usage() 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 { if fileArgsBuilder.Error() != nil {
fmt.Fprintln(os.Stderr, fileArgsBuilder.Error()) fmt.Fprintln(os.Stderr, fileArgsBuilder.Error())
os.Exit(1) os.Exit(1)
@@ -162,8 +190,6 @@ func main() {
err := zip.Run(zip.ZipArgs{ err := zip.Run(zip.ZipArgs{
FileArgs: fileArgsBuilder.FileArgs(), FileArgs: fileArgsBuilder.FileArgs(),
OutputFilePath: *out, OutputFilePath: *out,
CpuProfileFilePath: *cpuProfile,
TraceFilePath: *traceFile,
EmulateJar: *emulateJar, EmulateJar: *emulateJar,
AddDirectoryEntriesToZip: *directories, AddDirectoryEntriesToZip: *directories,
CompressionLevel: *compLevel, CompressionLevel: *compLevel,

View File

@@ -25,8 +25,6 @@ import (
"log" "log"
"os" "os"
"path/filepath" "path/filepath"
"runtime/pprof"
"runtime/trace"
"sort" "sort"
"strings" "strings"
"sync" "sync"
@@ -196,8 +194,6 @@ type zipEntry struct {
type ZipArgs struct { type ZipArgs struct {
FileArgs []FileArg FileArgs []FileArg
OutputFilePath string OutputFilePath string
CpuProfileFilePath string
TraceFilePath string
EmulateJar bool EmulateJar bool
AddDirectoryEntriesToZip bool AddDirectoryEntriesToZip bool
CompressionLevel int CompressionLevel int
@@ -251,32 +247,6 @@ func ReadRespFile(bytes []byte) []string {
} }
func Run(args ZipArgs) (err error) { 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 == "" { if args.OutputFilePath == "" {
return fmt.Errorf("output file path must be nonempty") return fmt.Errorf("output file path must be nonempty")
} }