Time has a limited set of allowed characters and so can bypass part of
the expensive checking done for valid JSON characters.
```
BenchmarkGet-12 10000 111846 ns/op 17273 B/op 130 allocs/op
BenchmarkWatchHTTP-12 50000 37830 ns/op 1886 B/op 29 allocs/op
BenchmarkGet-12 20000 115917 ns/op 17344 B/op 130 allocs/op
BenchmarkWatchHTTP-12 50000 36741 ns/op 1775 B/op 24 allocs/op
```
Can improve CRD watch performance by 5-10% for small objects.
This fixes golint failures on the following files:
- test/e2e/framework/deployment_util.go
- test/e2e/framework/exec_util.go
Cleanup:
- ScaleDeployment() was not used at all, so let's remove it.
- ExecCommandInPod() and ExecCommandInPodWithFullOutput() were called
in the framework only, so let's make them local.
In addition, this replaces the combination of GetCPUSummary() and
FormatCPUSummary() with LogCPUSummary() in e2e/node/kubelet_perf.go
because that is completely same.
Recent change to hack/lib/golang.sh broke the build on MacOS this way:
$ make clean && make generated_files
+++ [0325 13:38:22] Verifying Prerequisites....
+++ [0325 13:38:23] Removing _output directory
k8s.io/kubernetes/vendor/github.com/spf13/pflag
k8s.io/kubernetes/hack/make-rules/helpers/go2make
+++ [0325 13:38:40] Building go targets for darwin/amd64:
./vendor/k8s.io/code-generator/cmd/deepcopy-gen
can't load package: package k8s.io/kubernetes: no Go files in k8s.io/kubernetes/_output/local/go/src/k8s.io/kubernetes
!!! [0325 13:38:40] Call tree:
!!! [0325 13:38:40] 1: k8s.io/kubernetes/hack/lib/golang.sh:629 kube::golang::build_some_binaries(...)
!!! [0325 13:38:40] 2: k8s.io/kubernetes/hack/lib/golang.sh:764 kube::golang::build_binaries_for_platform(...)
!!! [0325 13:38:40] 3: hack/make-rules/build.sh:27 kube::golang::build_binaries(...)
make[1]: *** [_output/bin/deepcopy-gen] Error 1
make: *** [generated_files] Error 2
It was caused by 'binaries' array not being declared with 'local -a'.
It looks like MacOS' old bash version makes an array to contain first
empty element if declared this way.
The fix has been tested on MacOS High Sierra and Linux openSUSE 42.3 (x86_64)
Signed-off-by: Ed Bartosh <eduard.bartosh@intel.com>
This is some light cleanup of logs in predicates.go. In particular, some
log lines have details clarified that will make debugging easier.
I have not touched any VLOG messages, since those usually have plenty of
detail.