Welcome!

Microsoft Cloud Authors: Pat Romanski, Liz McMillan, Lori MacVittie, Elizabeth White, Yeshim Deniz

Related Topics: Microsoft Cloud

Microsoft Cloud: Blog Feed Post

Using Spmonitoredscope to Monitor Performance of Your Code

A Peek at the Developer’s Dashboard

As a SharePoint developer, I’m sure you were excited to see the Developer Dashboard.  It’s a great way to see what’s going ton with the performance of a page.  Did you know you can add your own performance monitors to it though?  It’s actually quite easy with the SPMonitoredScope class.  Simply, put the code in question that you want to monitor inside a using block and SPMonitoredScope does the rest.  For today’s example, I want to monitor the performance of some code that inserts an item into a list.  Here is what it looks like.

using (SPMonitoredScope monitoredScope = new SPMonitoredScope("My Monitored Scope"))

{

// put code to monitor performance on here

SPList testList = site.Lists.TryGetList("Test List");

if (testList != null)

{

SPListItem listItem = testList.Items.Add();

listItem["Title"] = string.Format("Test Item {0}", Guid.NewGuid().ToString());

listItem["City"] = "Somewhere";

listItem["Quantity"] = 3;

listItem.Update();

}

}

SPPerformanceMonitorDashboard1

I just give the SPMonitoredScope a name and put my code inside the using block.  Don’t you just love TryGetList?  This code assumes I already have access to a SPWeb.  In this case I am running it inside a Visual Web Part and I left out some of the other code involved.  When we view the page and have the developer dashboard running it looks like this.

There you can see My Monitored Scope in the list at a runtime of 2442.77 ms.  Wow, that is some poorly performing code.  It would be nice if we could get some more detail.  Well what is cool is that you can actually nest using blocks to get performance data at a more granular level.

using (SPMonitoredScope monitoredScope = new SPMonitoredScope("My Monitored Scope"))

{

SPList testList;

 

using (SPMonitoredScope getListMonitor = new SPMonitoredScope("Get List"))

{

testList = site.Lists.TryGetList("Test List");

}

 

using (SPMonitoredScope addListItemMonitor = new SPMonitoredScope("Add List Item"))

{

if (testList != null)

{

SPListItem listItem = testList.Items.Add();

listItem["Title"] = string.Format("Test Item {0}", Guid.NewGuid().ToString());

listItem["City"] = "Somewhere";

listItem["Quantity"] = 3;

listItem.Update();

}

}

}

SPMonitoredScopeDeveloperDashboard2

Now, I have added blocks to track the time it takes to get an instance of the list as well as the time it takes to add the item.

From here we can see that the bulk of the time spent is on adding the list item.  Almost a full two seconds.  You have to love virtual machines. :-)  I think this class is very powerful and I can see it quickly becoming a best practice to having one or more SPMonitoredScope wrapped around the code you are executing.  Start using it today!

Read the original blog entry...

More Stories By Corey Roth

Corey Roth, a SharePoint Server MVP, is an independent consultant specializing in Cloud technologies such as Azure and Office 365. He also specializes in mobile development. Corey serves as the product manager for two cloud-first mobile app platforms: BrewZap and HappenZap.

IoT & Smart Cities Stories
As IoT continues to increase momentum, so does the associated risk. Secure Device Lifecycle Management (DLM) is ranked as one of the most important technology areas of IoT. Driving this trend is the realization that secure support for IoT devices provides companies the ability to deliver high-quality, reliable, secure offerings faster, create new revenue streams, and reduce support costs, all while building a competitive advantage in their markets. In this session, we will use customer use cases...
Bill Schmarzo, author of "Big Data: Understanding How Data Powers Big Business" and "Big Data MBA: Driving Business Strategies with Data Science," is responsible for setting the strategy and defining the Big Data service offerings and capabilities for EMC Global Services Big Data Practice. As the CTO for the Big Data Practice, he is responsible for working with organizations to help them identify where and how to start their big data journeys. He's written several white papers, is an avid blogge...
When talking IoT we often focus on the devices, the sensors, the hardware itself. The new smart appliances, the new smart or self-driving cars (which are amalgamations of many ‘things'). When we are looking at the world of IoT, we should take a step back, look at the big picture. What value are these devices providing. IoT is not about the devices, its about the data consumed and generated. The devices are tools, mechanisms, conduits. This paper discusses the considerations when dealing with the...
Business professionals no longer wonder if they'll migrate to the cloud; it's now a matter of when. The cloud environment has proved to be a major force in transitioning to an agile business model that enables quick decisions and fast implementation that solidify customer relationships. And when the cloud is combined with the power of cognitive computing, it drives innovation and transformation that achieves astounding competitive advantage.
With 10 simultaneous tracks, keynotes, general sessions and targeted breakout classes, @CloudEXPO and DXWorldEXPO are two of the most important technology events of the year. Since its launch over eight years ago, @CloudEXPO and DXWorldEXPO have presented a rock star faculty as well as showcased hundreds of sponsors and exhibitors! In this blog post, we provide 7 tips on how, as part of our world-class faculty, you can deliver one of the most popular sessions at our events. But before reading...
If a machine can invent, does this mean the end of the patent system as we know it? The patent system, both in the US and Europe, allows companies to protect their inventions and helps foster innovation. However, Artificial Intelligence (AI) could be set to disrupt the patent system as we know it. This talk will examine how AI may change the patent landscape in the years to come. Furthermore, ways in which companies can best protect their AI related inventions will be examined from both a US and...
Poor data quality and analytics drive down business value. In fact, Gartner estimated that the average financial impact of poor data quality on organizations is $9.7 million per year. But bad data is much more than a cost center. By eroding trust in information, analytics and the business decisions based on these, it is a serious impediment to digital transformation.
Digital Transformation: Preparing Cloud & IoT Security for the Age of Artificial Intelligence. As automation and artificial intelligence (AI) power solution development and delivery, many businesses need to build backend cloud capabilities. Well-poised organizations, marketing smart devices with AI and BlockChain capabilities prepare to refine compliance and regulatory capabilities in 2018. Volumes of health, financial, technical and privacy data, along with tightening compliance requirements by...
DXWorldEXPO LLC, the producer of the world's most influential technology conferences and trade shows has announced the 22nd International CloudEXPO | DXWorldEXPO "Early Bird Registration" is now open. Register for Full Conference "Gold Pass" ▸ Here (Expo Hall ▸ Here)
@DevOpsSummit at Cloud Expo, taking place November 12-13 in New York City, NY, is co-located with 22nd international CloudEXPO | first international DXWorldEXPO and will feature technical sessions from a rock star conference faculty and the leading industry players in the world. The widespread success of cloud computing is driving the DevOps revolution in enterprise IT. Now as never before, development teams must communicate and collaborate in a dynamic, 24/7/365 environment. There is no time t...