0

I have a webservice that is in much need of some optimization. It's on an enterprise application the resides on a virtual server machine and is getting a huge bottle neck. I'm confident in my skills and being able to make this more efficient, but I was wondering if anyone out there has had a good experience with a profiler or optimization tool that would help point me to trouble spots.

The webservices main function is to generate PDFs which are created using Sql Reports and a third party PDF Writer utility. Basically it gets an ID and creates X number of PDFs based on number of Forms that are associated to that ID. So it has a loop which can run an average of 8 times / ID, and there are thousands of IDs sent daily. Needless to say there is always a back log of PDFs to be created, which the client would rather not see.

I have also thought about running multi-threads to asynchronously generate the PDF pages but I'm hesitant because they said they had issues with multi-threading on the "Virtual Server". So if anyone can point me to a good tutorial or advise about multi-threading on a Virtual Server I would appreciate that too.

Thanks for any help you can give.

jhorton
  • 1,019
  • 3
  • 17
  • 36
  • Does your webservice method directly return the PDF, or does the method just accept requests, with completed PDFs retrieved by a different method? Regarding profilers, this has been asked before: http://stackoverflow.com/questions/3927/what-are-some-good-net-profilersprofilers-out-there – hatchet - done with SOverflow May 11 '12 at 19:08
  • The service just returns true or false depending on if it completed successfully. The PDF is stored in a repository for later retrieval. – jhorton May 14 '12 at 12:45

4 Answers4

1

I've used this one before and it's great:

JetBrains dotTrace

http://www.jetbrains.com/profiler/whatsnew/

0

Try Telerik's JustTrace, it has alot of neat stuff. It has 60 days free trial with support, so you can try it out first.

Fast Profiling

JustTrace aims to redefine fast memory and performance profiling. It adds minimal overhead to the profiled application, allows near seamless execution, and enables analysis-in-place, thus eliminating the need to move the application from its environment. The user can examine different stages of the application’s behavior by swiftly taking multiple snapshots throughout its lifetime.

Made-to-Measure Profiling

JustTrace offers three distinct profilers – Sampling, Memory and Tracing – to meet even the most demanding profiling requirements.

Profiling of Already Running Processes

JustTrace allows for unobtrusive attaching to live processes. Should an application start experiencing higher memory or CPU consumption, analysis on its state gives the opportunity to handle scenarios that are otherwise hard to reproduce.

Simple yet Intuitive UI

By definition, a memory and performance profiling tool should enable you to speed up the performance of your apps without slowing you down or getting into your way. JustTrace employs a minimalistic yet highly intuitive user interface that allows for easy navigation of the performance and memory results. A few effortless steps take you from choosing the application being profiled to an in-depth analysis of the profiling insights made by JustTrace. Memory and performance profiling has never been easier.

Live Profiling

JustTrace enables real-time monitoring of the application’s execution. The close-up watching of the application’s behavior brings out potential performance bottlenecks to the surface, and provides reliable hints of the application’s stages that are worth investigating.

Stand-alone Tool and Seamless Visual Studio Integration

JustTrace offers seamless integration with Visual Studio and can also be used as a stand-alone tool. The integration of JustTrace into Visual Studio’s UI removes a burdensome step by cutting the time needed to jump between the development environment and the tool to test the resulting memory and CPU utilization improvements. Simply modify the code, then run it through the Visual Studio UI and get JustTrace’s core capabilities in a single tool window.

Profiling of Multiple Application Types

JustTrace enables the profiling of local applications, running applications, Silverlight applications and local ASP .NET web site.

Mario S
  • 11,715
  • 24
  • 39
  • 47
  • Honestly, I'm not to happy with Telerik. I'm not sure about their profiler because I've been using their rad controls for years now and have found them to be a little on the bloated and slow side. But I'll give it a try, the company has a license with them already. Thanks for your help. – jhorton May 11 '12 at 21:08
  • I've always had good experience with Telerik. But at least you can try it without buying it =) – Mario S May 11 '12 at 21:13
0

I would suggest taking a look at ANTS Memory & Performance Profiler from Red Gate:

The ANTS profilers do a fantastic job of identifying bottlenecks and memory leaks. They're not free, but they're very affordable and offer fully functional trials so you can evaluate the products.

James Johnson
  • 45,496
  • 8
  • 73
  • 110
0

There are other profilers: ANTS: http://www.red-gate.com/products/dotnet-development/ants-performance-profiler/

Which can also profile SQL calls. They also have an EAP open at the moment which gives you more functionality for database calls, that is here: http://help.red-gate.com/help/ANTSPerformanceProfiler/download_eap.html

There is YourKit: http://www.yourkit.com/

Visual Studio has a profiler too but not as good.

Dene B
  • 486
  • 4
  • 9