diff options
author | Bjørn Erik Pedersen <bjorn.erik.pedersen@gmail.com> | 2018-12-20 20:55:26 +0100 |
---|---|---|
committer | Bjørn Erik Pedersen <bjorn.erik.pedersen@gmail.com> | 2018-12-20 20:55:26 +0100 |
commit | 35bfca3b14977eaebab4003b43b5236c1888d93d (patch) | |
tree | 89c7ab1c12e7d306f4ca70419013a11d174b220f /commands | |
parent | 9cd54cab20a03475e34ca462bd943069111481ae (diff) |
commands: Remove the benchmark command
It's not particulary useful, and when we start to get bug reports about it, it is easier to remove it.
Closes #5543
Diffstat (limited to 'commands')
-rw-r--r-- | commands/benchmark.go | 115 | ||||
-rw-r--r-- | commands/commands.go | 1 | ||||
-rw-r--r-- | commands/commands_test.go | 1 |
3 files changed, 0 insertions, 117 deletions
diff --git a/commands/benchmark.go b/commands/benchmark.go deleted file mode 100644 index b0a12db7f..000000000 --- a/commands/benchmark.go +++ /dev/null @@ -1,115 +0,0 @@ -// Copyright 2015 The Hugo Authors. All rights reserved. -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -package commands - -import ( - "os" - "runtime" - "runtime/pprof" - "time" - - "github.com/spf13/cobra" - jww "github.com/spf13/jwalterweatherman" -) - -type benchmarkCmd struct { - benchmarkTimes int - cpuProfileFile string - memProfileFile string - - *baseBuilderCmd -} - -func (b *commandsBuilder) newBenchmarkCmd() *benchmarkCmd { - cmd := &cobra.Command{ - Use: "benchmark", - Short: "Benchmark Hugo by building a site a number of times.", - Long: `Hugo can build a site many times over and analyze the running process -creating a benchmark.`, - } - - c := &benchmarkCmd{baseBuilderCmd: b.newBuilderCmd(cmd)} - - cmd.Flags().StringVar(&c.cpuProfileFile, "cpuprofile", "", "path/filename for the CPU profile file") - cmd.Flags().StringVar(&c.memProfileFile, "memprofile", "", "path/filename for the memory profile file") - cmd.Flags().IntVarP(&c.benchmarkTimes, "count", "n", 13, "number of times to build the site") - cmd.Flags().Bool("renderToMemory", false, "render to memory (only useful for benchmark testing)") - - cmd.RunE = c.benchmark - - return c -} - -func (c *benchmarkCmd) benchmark(cmd *cobra.Command, args []string) error { - cfgInit := func(c *commandeer) error { - return nil - } - - comm, err := initializeConfig(true, false, &c.hugoBuilderCommon, c, cfgInit) - if err != nil { - return err - } - - var memProf *os.File - if c.memProfileFile != "" { - memProf, err = os.Create(c.memProfileFile) - if err != nil { - return err - } - } - - var cpuProf *os.File - if c.cpuProfileFile != "" { - cpuProf, err = os.Create(c.cpuProfileFile) - if err != nil { - return err - } - } - - var memStats runtime.MemStats - runtime.ReadMemStats(&memStats) - memAllocated := memStats.TotalAlloc - mallocs := memStats.Mallocs - if cpuProf != nil { - pprof.StartCPUProfile(cpuProf) - } - - t := time.Now() - for i := 0; i < c.benchmarkTimes; i++ { - if err = comm.resetAndBuildSites(); err != nil { - return err - } - } - totalTime := time.Since(t) - - if memProf != nil { - pprof.WriteHeapProfile(memProf) - memProf.Close() - } - if cpuProf != nil { - pprof.StopCPUProfile() - cpuProf.Close() - } - - runtime.ReadMemStats(&memStats) - totalMemAllocated := memStats.TotalAlloc - memAllocated - totalMallocs := memStats.Mallocs - mallocs - - jww.FEEDBACK.Println() - jww.FEEDBACK.Printf("Average time per operation: %vms\n", int(1000*totalTime.Seconds()/float64(c.benchmarkTimes))) - jww.FEEDBACK.Printf("Average memory allocated per operation: %vkB\n", totalMemAllocated/uint64(c.benchmarkTimes)/1024) - jww.FEEDBACK.Printf("Average allocations per operation: %v\n", totalMallocs/uint64(c.benchmarkTimes)) - - return nil -} diff --git a/commands/commands.go b/commands/commands.go index 0dfa10e67..f835e67a1 100644 --- a/commands/commands.go +++ b/commands/commands.go @@ -48,7 +48,6 @@ func (b *commandsBuilder) addAll() *commandsBuilder { newEnvCmd(), newConfigCmd(), newCheckCmd(), - b.newBenchmarkCmd(), newConvertCmd(), b.newNewCmd(), newListCmd(), diff --git a/commands/commands_test.go b/commands/commands_test.go index 9b9806694..a8cc1d927 100644 --- a/commands/commands_test.go +++ b/commands/commands_test.go @@ -165,7 +165,6 @@ func TestCommandsExecute(t *testing.T) { {nil, []string{sourceFlag}, ""}, {nil, []string{sourceFlag, "--renderToMemory"}, ""}, {[]string{"config"}, []string{sourceFlag}, ""}, - {[]string{"benchmark"}, []string{sourceFlag, "-n=1"}, ""}, {[]string{"convert", "toTOML"}, []string{sourceFlag, "-o=" + filepath.Join(dirOut, "toml")}, ""}, {[]string{"convert", "toYAML"}, []string{sourceFlag, "-o=" + filepath.Join(dirOut, "yaml")}, ""}, {[]string{"convert", "toJSON"}, []string{sourceFlag, "-o=" + filepath.Join(dirOut, "json")}, ""}, |