_Perf: CAS Action Performance Statistics
- Article History
- RSS Feed
- Mark as New
- Mark as Read
- Bookmark
- Subscribe
- Printer Friendly Page
- Report Inappropriate Content
Are you a FULLSTIMER kind of coder? Maybe you like to analyze your SASTRACE thoroughly. Well then you'll probably be interested in the _Perf automatic CASL variable.
_Perf is a CASL Dictionary variable that contains performance metrics about the previously run CAS action. It gets automatically created/updated any time a CAS Action is run. As a dictionary variable it includes an array of key-value pairs including:
- Elapsed Time
- CPU User Time
- CPU System Time
- Data Movement Time
- Total System Memory
- System Nodes
- Memory
- Memory, OS
- Memory, System
These metrics help to better understand the CAS action performance on the CAS environment (e.g. CPU User Time) as well as the environment itself (e.g. System Nodes). It is important to remember that these metrics relate to the CAS environment and will not equate to the performance metrics issued by the SAS client that submits the CASL to CAS.
A Simple Example
Here we compare the performance metrics of two similar simple.summary calls. Both run on the same input table but the second requests significantly more groupings. Looking at the printed _Perf metrics, we can see that the 2nd call requires considerably more CPU processing time than the first. It also requires more memory as well.
Simple Example using _Perf
Select any image to see a larger version.
Mobile users: To view the images, select the "Full" version at the bottom of the page.
Going Further
_Perf provides many of the same metrics that the METRICS=TRUE CAS session option provides. However, it can be applied at the CAS action level instead of the entire session, and, as a CASL variable, it can be manipulated programmatically for load testing scripts and other purposes. METRICS=TRUE provides additional metrics on data movement between the CAS worker nodes. While _Perf provides additional breakdowns in processing time and memory metrics. For additional information on data movement in CAS, see section 9 of this article. For a better understanding of user time vs system time and other cpu time considerations, see here.