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