Closed ronething closed 2 years ago
tag: v0.0.68
type AutoGenerated struct {
Kind string `json:"kind"`
APIVersion string `json:"apiVersion"`
Metadata Metadata `json:"metadata"`
Items []Items `json:"items"`
}
type Metadata struct {
ResourceVersion string `json:"resourceVersion"`
}
type Labels struct {
CloudNativeChallenge string `json:"cloud-native-challenge"`
Type string `json:"type"`
}
type NAMING_FAILED struct {
}
type FTest struct {
}
type FData struct {
NAMING_FAILED NAMING_FAILED `json:"."`
FTest FTest `json:"f:test"`
}
type FCloudNativeChallenge struct {
}
type FType struct {
}
type FLabels struct {
NAMING_FAILED NAMING_FAILED `json:"."`
FCloudNativeChallenge FCloudNativeChallenge `json:"f:cloud-native-challenge"`
FType FType `json:"f:type"`
}
type FMetadata struct {
FLabels FLabels `json:"f:labels"`
}
type FieldsV1 struct {
FData FData `json:"f:data"`
FMetadata FMetadata `json:"f:metadata"`
}
type ManagedFields struct {
Manager string `json:"manager"`
Operation string `json:"operation"`
APIVersion string `json:"apiVersion"`
Time time.Time `json:"time"`
FieldsType string `json:"fieldsType"`
FieldsV1 FieldsV1 `json:"fieldsV1"`
}
type Metadata struct {
Name string `json:"name"`
Namespace string `json:"namespace"`
UID string `json:"uid"`
ResourceVersion string `json:"resourceVersion"`
CreationTimestamp time.Time `json:"creationTimestamp"`
Labels Labels `json:"labels"`
ManagedFields []ManagedFields `json:"managedFields"`
}
type ConfigMap struct {
Metadata Metadata `json:"metadata"`
Data map[string]string `json:"data"`
}
type ConfigMapList struct {
Kind string `json:"kind"`
APIVersion string `json:"apiVersion"`
//Metadata Metadata `json:"metadata"`
Items []ConfigMap `json:"items"`
}
type Metadata struct {
Name string `json:"name"`
Namespace string `json:"namespace"`
//UID string `json:"uid"`
//ResourceVersion string `json:"resourceVersion"`
//CreationTimestamp time.Time `json:"creationTimestamp"`
Labels map[string]string `json:"labels"` // 其实也可以剔除,如果为了更小的响应体可以试试 labelSelector-cachemgr: v0.0.168 22-test-响应体裁剪 v0.0.169
//ManagedFields []ManagedFields `json:"managedFields"`
}
type ConfigMap struct {
Metadata Metadata `json:"metadata"`
//Data map[string]string `json:"data"`
}
score_resourceUsage: 174173.949552
对比之前 5w 左右,多了 12w+ 分,
再看 data.len,
减少了 80w bytes 左右
data 字段加入的分数:tag: v0.0.69 资源分可以超 14w
type ConfigMap struct {
Metadata Metadata `json:"metadata"`
Data map[string]string `json:"data"`
}
func testUnmarshal(data []byte) {
data = data[4:] // 固定前缀取出来,然后进行响应体的反序列化
var unknown runtime.Unknown
err := unknown.Unmarshal(data)
if err != nil {
klog.Errorf("unknown unmarshal err: %v", err)
return
}
klog.Infof("unknown: %v, %v", unknown.APIVersion, unknown.Kind)
var configmaps v1.ConfigMapList
//var configmaps types.ConfigMapList
if err = proto.Unmarshal(unknown.Raw, &configmaps); err != nil {
klog.Errorf("proto unmarshal err: %v", err)
return
}
//klog.Infof("cms is %v", configmaps)
klog.Infof("cms.len: %v", len(configmaps.Items))
return
}
以下针对资源分: