使用Matlab绘制任务数与最大执行时间关系图

本程序使用Matlab绘制任务数与最大执行时间的关系图,分析不同任务数量下程序执行时间的变化趋势。程序利用随机生成的任务输入大小,计算两种执行模式下的时间,并取最大值作为纵坐标变化量。

代码示例:

f0=1000000000;
f1=5000000000;
C=2000000;
z=0;
Q=[5 10 15 20 25];%任务数作为自变量,确定随机数的生成个数

for s=1:5
  nums=randi([10000 50000],1,Q(s));%随机数的生成,任务输入大小dn
  sorted_nums=sort(nums);%从小到大排序
  for i=1:Q(s)
    T0=0;
    T1=0;
    for m=1:i
      c(m)=1000*sorted_nums(m);
      T0=T0+c(m)/f0;
    end 
    for n=i+1:Q(s)
      c(n)=1000*sorted_nums(n);
      d(n)=sorted_nums(n);
      T1=T1+d(n)/C+c(n)/f1;
    end 
    if T0>=T1 
      k=i;
      break;
    end 
  end
end

max_T = zeros(1,5); % 初始化纵坐标变化量
for s=1:5
  nums=randi([10000 50000],1,Q(s));%随机数的生成,任务输入大小dn
  sorted_nums=sort(nums);%从小到大排序
  for i=1:Q(s)
    T0=0;
    T1=0;
    for m=1:i
      c(m)=1000*sorted_nums(m);
      T0=T0+c(m)/f0;
    end 
    for n=i+1:Q(s)
      c(n)=1000*sorted_nums(n);
      d(n)=sorted_nums(n);
      T1=T1+d(n)/C+c(n)/f1;
    end 
    if T0>=T1 
      k=i;
      break;
    end 
  end
  max_T(s) = max(T0, T1); % 记录每组数据的纵坐标变化量
end

plot(Q, max_T); % 画图,以任务数Q为横坐标,以每一次T0和T1的较大者为纵坐标变化量

程序功能:

  1. 使用randi函数生成随机数作为任务输入大小。
  2. 对生成的随机数进行排序,方便后续计算。
  3. 计算两种执行模式下的时间T0T1,分别代表不同任务分配策略下的执行时间。
  4. T0T1中的最大值作为纵坐标变化量,记录到max_T数组中。
  5. 使用plot函数绘制任务数Q与最大执行时间max_T的关系图。

程序分析:

通过分析生成的图表,可以观察到任务数与最大执行时间之间的关系。根据图表趋势,可以进一步分析程序性能,优化任务分配策略,提高程序效率。

注意:

  • 程序中的参数f0, f1, C需要根据实际情况进行修改。
  • 可以调整随机数生成范围[10000 50000]来模拟不同任务输入大小。
  • 可以通过修改Q数组的值来改变任务数的取值范围。

进一步优化:

  • 可以使用向量化操作来提高程序效率。
  • 可以使用不同的绘图函数来创建更加精美的图表。
  • 可以添加注释和说明,使程序更加清晰易懂。
Matlab程序优化:任务数与最大执行时间关系图

原文地址: http://www.cveoy.top/t/topic/jkvy 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录