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:
@@ -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,
|
||||||
|
30
zip/zip.go
30
zip/zip.go
@@ -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")
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user