解析Cloudsim中,获取虚拟机迁移之前的时间的函数:getTimesBeforeVmMigration()

public static List<Double> getTimesBeforeVmMigration(List<Vm> vms) {                //获取虚拟机迁移之前的时间,即迁移时间。参数:虚拟机列表。返回:虚拟机迁移之前的时间列表。
		
		List<Double> timeBeforeVmMigration = new LinkedList<Double>();                  //实例化一个double类型的列表集合--timeBeforeVmMigration
	
		for (Vm vm : vms) {                                                                //第一层增强for循环遍历虚拟机列表(依次遍历虚拟机列表中的每个虚拟机)
			boolean previousIsInMigration = false;                                             //以前是否迁移
			double lastTimeMigrationFinished = 0;                                              //上次迁移完成的时间
			
			for (VmStateHistoryEntry entry : vm.getStateHistory()) {                       //第二层增强for循环遍历虚拟机状态历史记录集合(依次遍历虚拟机状态历史记录列表中的每个历史状态)              
				
				
				if (previousIsInMigration == true && entry.isInMigration() == false) {      //判断以前是否迁移并且当前历史状态是否迁移,如果以前在迁移并且当前没有迁移
					timeBeforeVmMigration.add(entry.getTime() - lastTimeMigrationFinished); //通过当前时间减去上次迁移完成时间得到虚拟机迁移之前的时间,并将值添加到列表集合(timeBeforeVmMigration) 
				}
				
				
				if (previousIsInMigration == false && entry.isInMigration() == true) {       //判断以前是否迁移并且当前历史状态是否迁移,如果以前没有迁移并且当前发生迁移
					lastTimeMigrationFinished = entry.getTime();                             //将当前历史状态的时间赋值给上次迁移完成时间(lastTimeMigrationFinished)
				}
				previousIsInMigration = entry.isInMigration();                       //将当前历史状态是否发生迁移赋值给以前是否迁移(previousIsInMigration),以便进行下个历史状态的循环。
			}
		}
		return timeBeforeVmMigration;      //返回虚拟机迁移之前的时间(Double)列表集合,即迁移时间集合。
	}

该方法的功能:得到虚拟机迁移时间集合。

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值