我需要分析一个很大的源代码。代码包含几个函数调用。 根据函数调用之间的计算和通信,我需要找出源代码整体执行的最佳配置方案。
据我说,
调用函数时传递的数据(如果它在不同的机器,服务器等上)=输入数据大小+输出数据大小
获取输入数据大小和输出数据大小,我想我应该重写所有函数,以获得可变数量的输入和变量输出。
[varargout] samplefunction(varargin) {
FOR i=0:nargin
inputdata=inputdata+sizeof(varargin(i));
% Do stuff here
}
是不是有办法直接在Matlab中计算单元格数组(varargin / varargout)?
或者你是否可以建议另一种方法来测量函数调用之间的通信数据?
答案 0 :(得分:0)
拨打cellfun()
with string inputs的速度非常快:
sizes = [cellfun('size',varargin,1); cellfun('size',varargin,2)];
或
lenghts = cellfun('length',varargin);
或
numels = cellfun('prodofsize',varargin);