Ask a Question

How can I profile only System.String allocations?

CsabaBurai
New Contributor

How can I profile only System.String allocations?

Hi,

 

I would like to profile the System.String type only but with my current setup (see attached picture) cannot get any result.

How can I setup AQ Time 8 to collect this information?

 

Thank you,

Csaba

 

profiler setup.png

 

3 REPLIES 3
AlexKaras
Champion Level 2

Hi,

 

Not sure if I can be of much help, but...

 

> I [...] cannot get any result.

Could you clarify what did you mean?

Are the results empty? Or you have difficulties to interpret them? Or something else?

 

Have you read http://support.smartbear.com/viewarticle/43234/ and http://support.smartbear.com/viewarticle/43573/ help topics?

It is my understanding, that your setup says that you want to profile String and Byte allocations made in the XPO class but I am not sure if this is what you really like to do.

I might be incorrect, but I think that if you want to profile all allocations of System.String within your application, than you need to get the debug info file for this class (from MS site?) and add it to the setup like you did for the XPO class.

 

Regards,
  /Alex [Community Champion]
____
[Community Champions] are not employed by SmartBear Software but
are just volunteers who have some experience with the tools by SmartBear Software
and a desire to help others. Posts made by [Community Champions]
may differ from the official policies of SmartBear Software and should be treated
as the own private opinion of their authors and under no circumstances as an
official answer from SmartBear Software.
The [Community Champion] signature is assigned on quarterly basis and is used with permission by SmartBear Software.
https://community.smartbear.com/t5/Community-Champions/About-the-Community-Champions-Program/gpm-p/252662
================================

Hi AlexKaras,

 

We use the XPO as ORM in our system and the application allocate a huge amount of memory during an operation.

I would like to find which object takes the most memory.

 

It is Impossible to switch on the Entire .Net Core by Classes option and log all the loaded objects because the process memory usage more than 10G. The process never finishes.  A lots of small objects are created during the operation.

 

I suppose the string and the byte objects takes the most memory and try to prove it. I have added the mscorlib.dll to the project (that contains the System.String type) and get information only these objects. (Later I can add other classes as well.)

But the result is empty (see picture below). I suppose my project setup is incorrect.

 

empty result.png 

It would be fine to start an overall allocation profiling session where I see all the types in the process on a high level, only the amount of occupied memory by class not the concrete objects. But I cannot find a way to do it in this application.

 

I have tried execute the test with less objects but with less objects it is impossible to identify the problematic objects.

I would like to limit the examination to concrete objects like System.String.

 

Thank you for your help.

 

Regards,

Csaba

@CsabaBurai, would you mind opening a Support Case with us, so we can take a closer look at this?

 

In the meantime, you could try enabling "Entire .NET Code By Classes", disabling "View Project Classes Only" on the Report toolbar, and then filtering by Object Name. This should work.

-----

Alexander
Customer Care Manager
cancel
Showing results for 
Search instead for 
Did you mean: