File Exchange

image thumbnail

System Information Class for Windows

version 1.1.0.0 (45.9 KB) by Xin Zhao
This class will query the current system information in MATLAB. Works with R2009a and up.

1 Download

Updated 20 Feb 2010

View License

Recently, we just got an interesting question about how to measure the CPU usage of current MATLAB process.

Frankly speaking, during my more than 5 years working in The MathWorks, I never thought we can do it inside MATLAB. But with the recent and excellent .Net support, this is actually quite easy and straightforward.

This class, wrapping all the basic information regarding to you Windows machine, gives you full knowledge of the performance you may want to know.

the detailed information includes:
1. Machine Name, Total Physical Memory, Processor(CPU) information
2. CPU usage in %
3. Memory usage in MB

the class has one important public method called 'measure', every time you call it, it will measure and store the CPU usage and memory usage.

the class has been tested in Winxp, Vista(SP1), Windows 7, but feel free to send me fix requests.

At the end there is a demo of using this class.
1. run startRecordPerformance
2. do what ever you want to do, (don't use clear all, of course)
3. run stopRecordAndDisplay
4. do your clean up, say 'delete(perfData), delete(t)'

Note: I am working on a GUI version for performance measurement purpose(using this class of course), so I need the processor information.
But this info needs to read the registry of windows, and it makes the class initialization slow. Unfortunately that's the only easy way I know in MATLAB, so if you don't need it, delete the specific lines in the class.

Comments and Ratings (12)

nati daniel

Please support:
Getting:

>> startRecordPerformance
Error while evaluating TimerFcn for timer 'timer-6'

Message: Instance 'MATLAB' does not exist in the specified Category.
Source: System
HelpLink:

Thannk you for your contribution! Perhaps anyone knows of a similar solution in Linux?

Undefined variable "System" or class "System.Environment.MachineName".

Error in SysInfoData (line 43)
obj.MachineName = char(System.Environment.MachineName);

What does this mean?

heegul park

avudaiappan

I get the correct format

Is it so that the output value I get gives me the exact CPU usage & memory utilized by that process?

Kausihan

hi i am getting the following error. i use the 64 bit matlab r2010a
??? Error using ==> SysInfoData>SysInfoData.SysInfoData at 48
Message: Category does not exist.
Source: System
HelpLink:

fiza khalid

>>plz tell me how i can run it with my function to calculate the memory and cpu use for the process that i am running.
>>do help me i need to know thnx in advance.

Xin Zhao

UPDATE-FEB 20, 2010
This class does not work the R2008b and previous MATLAB verions. thanks for the feedbacks from nav0239 and ali.

For R2009a, there is a new syntax in R2009b not supported, just made the changes to use the old syntax.
now it works fine with R2009a and up.

nav0239

>> startRecordPerformance
??? Undefined variable "System" or class "System.Environment.MachineName".

Error in ==> SysInfoData>SysInfoData.SysInfoData at 43
obj.MachineName = char(System.Environment.MachineName);

I am running 2008b.

Xin Zhao

hi Ali,
which version of MATLAB you are using?
it looks the 'memory' command is not working as in R2009b or R2009a.
to verify that, try
[a,b] = memory; b.SystemMemory.Available

for details
http://www.mathworks.com/access/helpdesk/help/techdoc/ref/memory.html

ali

Reference to non-existent field 'SystemMemory'.

Error in ==> SysInfoData>SysInfoData.SysInfoData at 36
obj.TotalMemory = round(systemview.SystemMemory.Available/1024^2);

what is the reason

Updates

1.1.0.0

UPDATE-FEB 20, 2010
This class does not work the R2008b and previous MATLAB versions. For R2009a, there is a new syntax in R2009b not supported, just made the changes to use the old syntax.
now it works fine with R2009a and up.

MATLAB Release Compatibility
Created with R2009b
Compatible with any release
Platform Compatibility
Windows macOS Linux
Acknowledgements

Inspired: System Resource Monitor for Windows

Discover Live Editor

Create scripts with code, output, and formatted text in a single executable document.


Learn About Live Editor