Beispiel #1
0
void PhaseTest :: end    (){
    LOG_OPEN(LOG_INFO);
    LOG_TEXT("Test I/O finished with ");
    LOG_NUMBER(nbError);
    LOG_TEXT(" error(s) in ");
    LOG_NUMBER(myM.length()+1);
    LOG_TEXT(" test(s).");
    LOG_CLOSE();
}
void Message_Unit::show_process_time(void) {
	std::vector<Message_Stat> msg_time_vec;
	for (Message_Stat_Map::iterator it = msg_stat_.begin(); it != msg_stat_.end(); ++it) {
		it->second.msg_id = it->first;
		it->second.avg = (it->second.tv.sec() + it->second.tv.usec() / (1000000.0)) / it->second.times;
		msg_time_vec.push_back(it->second);
	}

	LOG_TEXT("msg process total:%d", msg_time_vec.size());

	int i = 0;
	std::vector<Message_Stat> msg_sort_times;
	std::sort(msg_time_vec.begin(), msg_time_vec.end(), Msg_Time_Sort_Times());
	for (std::vector<Message_Stat>::iterator it = msg_time_vec.begin(); it != msg_time_vec.end(); ++it, ++i) {
		msg_sort_times.push_back(*it);
		if (i > 30) break;
	}

	i = 0;
	std::vector<Message_Stat> msg_sort_total;
	std::sort(msg_time_vec.begin(), msg_time_vec.end(), Msg_Time_Sort_Total());
	for (std::vector<Message_Stat>::iterator it = msg_time_vec.begin(); it != msg_time_vec.end(); ++it, ++i) {
		msg_sort_total.push_back(*it);
		if (i > 30) break;
	}

	i = 0;
	std::vector<Message_Stat> msg_time_avg;
	std::sort(msg_time_vec.begin(), msg_time_vec.end(), Msg_Time_Sort_Avg());
	for (std::vector<Message_Stat>::iterator it = msg_time_vec.begin(); it != msg_time_vec.end(); ++it, ++i) {
		msg_time_avg.push_back(*it);
		if (i > 30) break;
	}

	i = 0;
	std::vector<Message_Stat> msg_time_max;
	std::sort(msg_time_vec.begin(), msg_time_vec.end(), Msg_Time_Sort_Max());
	for (std::vector<Message_Stat>::iterator it = msg_time_vec.begin(); it != msg_time_vec.end(); ++it, ++i) {
		msg_time_max.push_back(*it);
		if (i > 30) break;
	}

	i = 0;
	for (std::vector<Message_Stat>::iterator it = msg_sort_times.begin(); it != msg_sort_times.end(); ++it, ++i) {
		double total_time = msg_sort_total[i].tv.sec() + msg_sort_total[i].tv.usec() / (1000 * 1000.0);

		double max_time = msg_time_max[i].max_tv.sec() + msg_time_max[i].max_tv.usec() / (1000 * 1000.0);

		LOG_TEXT("  [msg:%-10d times:%-10d]     [msg:%-10d times:%-10d, spend:%-10f]     [ msg:%-10d, times:%-10d avg:%-10f]     [msg:%-10d max:%-10f]",
				(*it).msg_id, (*it).times,
				msg_sort_total[i].msg_id, msg_sort_total[i].times, total_time,
				msg_time_avg[i].msg_id, msg_time_avg[i].times, msg_time_avg[i].avg,
				msg_time_max[i].msg_id, max_time);
	}
}
void Message_Unit::show_server_status(void) {
	//SERVICE_MANAGER->service_svc_pool().push_shrink();
	LOG_TEXT("service_svc_pool msg:free:%d, used:%d", SERVICE_MANAGER->service_svc_pool().free_obj_list_size(), SERVICE_MANAGER->service_svc_pool().used_obj_list_size());

	//unit_msg_pool_.push_shrink();
	LOG_TEXT("data ptr size:%d, unit msg:free:%d, used:%d", data_ptr_list_.size(), unit_msg_pool_.free_obj_list_size(), unit_msg_pool_.used_obj_list_size());

	//block_group_pool_.push_shrink();
	block_group_pool_.dump_info();

	monitor_->server_monitor_status();
	this->show_process_time();
}
void Message_Unit::server_status(void) {
	// 当做和日志服心跳
	RECORD_CLIENT->sync_pid(monitor_->type(), monitor_->monitor_idx());

	int uptime = (Time_Value::gettimeofday().sec() - monitor_->start_time().sec()) / 3600;
	LOG_TEXT("↓↓↓ server status start: uptime:%d(hour), type:%d, index:%d ↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓", uptime, monitor_->type(), monitor_->monitor_idx());
	show_server_status();

	Date_Time date_time(Time_Value::gettimeofday());
	date_time.minute(0);
	date_time.second(0);
	data_pro_tick_ += Time_Value(3600);
	LOG_TEXT("↑↑↑ server status end: type:%d ↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑", monitor_->type());
	LOG_TEXT_FLUSH;
}
int Main_Scene_Manager::single_scene_status(void) {
	LOG_TEXT("main scene size:%d", scene_map_.size());

	return 0;
}
void Main_Scene_Manager::show_scene_status(void) {
	LOG_TEXT("%-30s free:%-10d, used:%d, map:%d", "main scene", scene_pool_.free_obj_list_size(), scene_pool_.used_obj_list_size(), scene_map_.size());
}
int Chat_Monitor::server_monitor_status(void) {
	LOG_TEXT("chat player amount:%d", player_role_id_map_.size());
	return 0;
}