Best way to do memory testing?
Afficher commentaires plus anciens
Hi,
My name is Shaun VanWeelden and I am working on a project to look at script performance. A large part of what I do is gather code to evaluate and see what errors are thrown, etc. I also try and do performance testing (using tic toc) and memory usage. We currently do memory testing the following way:
%Get initial memory being used
[user, sys] = memory ;
mStart = user.MemUsedMATLAB ;
%Get initial start time
tic
%Run the actual script, the 'evalc" suppresses all output,
%do "eval" without the c to see program output
evalc(the script);
%Figure out how long script took to run
time=toc;
%Calculate total memory used and add it to the cell array
[user, sys] = memory ;
mtotal = user.MemUsedMATLAB - mStart;
But this has provided very inconsistent results due to the large number of other things going on inside the testing script. I was wondering if there was a better way to get the individual scripts we are testing’s memory use.
Thank you and let me know if you have any additional questions!
-Shaun VanWeelden
2 commentaires
Shashank Prasanna
le 31 Jan 2013
what does a typical "the script" look like?
Shaun VanWeelden
le 31 Jan 2013
Réponse acceptée
Plus de réponses (2)
Image Analyst
le 1 Fév 2013
1 vote
Did you see the "profile" function in the help?
1 commentaire
Shaun VanWeelden
le 1 Fév 2013
Shashank Prasanna
le 1 Fév 2013
1 vote
Since we are talking undocumented, do check out feature('memstats') I am not sure how you will use this, but it gives a lot more information than memory does.
1 commentaire
Interesting to compare to structs returned by memory() ..
>> T = evalc('feature(''memstats'')') ;
>> str2mat(regexp(T, '(?<=Use:\s*)\d+', 'match'))
Catégories
En savoir plus sur Structures dans Centre d'aide et File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!