Matlab 分析器不一致性

Matlab 分析器不一致性,matlab,profiler,Matlab,Profiler,我用Profiler运行了一些代码,这些代码处理DICOM文件,以及Matlab中的DICOM…函数 在分析器的主窗口中,我看到dicominfo>parseSequence占用了几乎所有的运行时间。在这个内部功能中,似乎是这样的: 您可以在这里看到dicominfo>parseSequence总共需要241.488秒(在标题中),其中有一个名为dicominfo>processMetadata的函数,需要240.801秒,占时间的99.7% 但是,当我单击它查看其内容时,它说processM

我用Profiler运行了一些代码,这些代码处理DICOM文件,以及Matlab中的
DICOM…
函数

在分析器的主窗口中,我看到
dicominfo>parseSequence
占用了几乎所有的运行时间。在这个内部功能中,似乎是这样的:

您可以在这里看到
dicominfo>parseSequence
总共需要241.488秒(在标题中),其中有一个名为
dicominfo>processMetadata
的函数,需要240.801秒,占时间的99.7%

但是,当我单击它查看其内容时,它说
processMetadata
只需50.391秒!:

怎么可能是。。。?我所有的时间都去了哪里

编辑

我真的认为这是一个分析器问题,但对于@Tokkot ask,我附加了我分析的代码:

cd ([Fname '\' seq(m).name]);
files=dir;                                      % Names of all files in current sequence
for n=4:length(files)
        info=dicominfo([pwd '\' files(n).name]);
        info.PatientName=PatientName;               % convert the field Name to initials
        info.PatientID='';                          % delete ID
        [X,~]=dicomread([pwd '\' files(n).name]);
        dicomwrite(X, sprintf('anon%s', files(n).name), info, 'createmode', 'copy');
        delete([pwd '\' files(n).name]);
end 

这里有一些不一致之处。在第一个窗口中,它显示呼叫数为9382,而在底部显示有10234个呼叫。看起来您已经使用探查器分别运行了两次函数(08:06:38和08:22:39)。后者要快得多。您可能想看看MATLAB中的预热。您好,预热问题非常有趣,但这里的情况肯定不是这样。我只运行了一次:时钟时间是在我打开探查器报告时,而不是在我运行脚本时(昨天晚上…)。第一个窗口中的调用数是仅从
parseSequence
调用
processMetadata
,但在主函数的其他位置还有一些对
processMetadata
的调用。@Studiegriffin您可以在第二个窗口的“Parents”(第一个表)下看到调用数我们真的需要一个最低限度的工作示例来帮助您。好的@Tokkot,我附上了有问题的代码。变量不重要,主要是文件夹名称。