func()

in perf-tools/framework/app_analyzer.go [54:74]


func (aa *AppAnalyzer) GetTasksDistributionInfo(nodeInfos map[string]*NodeInfo) *TasksDistributionInfo {
	nodeInfoSlice := make([]*NodeInfo, len(nodeInfos))
	i := 0
	for _, nodeInfo := range nodeInfos {
		nodeInfoSlice[i] = nodeInfo
		i++
	}
	sort.SliceStable(nodeInfoSlice, func(i, j int) bool {
		return len(nodeInfoSlice[i].Tasks) < len(nodeInfoSlice[j].Tasks)
	})
	leastNodeInfo := nodeInfoSlice[0]
	mostNodeInfo := nodeInfoSlice[len(nodeInfoSlice)-1]
	return &TasksDistributionInfo{
		LeastNum:        len(leastNodeInfo.Tasks),
		LeastNumNodeID:  leastNodeInfo.NodeID,
		MostNum:         len(mostNodeInfo.Tasks),
		MostNumNodeID:   mostNodeInfo.NodeID,
		AvgNum:          float64(len(aa.appInfo.TasksStatus)) / float64(len(nodeInfoSlice)),
		SortedNodeInfos: nodeInfoSlice,
	}
}