Welcome to Vortx Community Forum, where you can ask questions and receive answers from the staff at Vortx and other members of the community.

If you had a user account on our previous forums website, you will need to register a new account here.

Learn more about...

AspDotNetStorefront
DotFeed

Very slow page loads

We are experiencing some very slow page load times (up to 30 seconds) for the product pages.  After a some experimentatiom I found that this only happens if I have a product in the shopping cart.  

Question 1
Where is the code that executes for the dynamically generated product pages?

 

Question 2
Is there anything that we can do to solve this problem quickly?

 

Thanks
asked Mar 14, 2014 in MultiStore by decio.luczynski (155 points)

3 Answers

0 votes

Hello,

Firstly you can use caching for product page html though it’s not the actual solution I think. For caching you can you the following code in ShowProducts.aspx.cs before final output.

HttpContext.Current.Cache.Insert(CacheName, m_PageOutput, null, DateTime.Now.AddMinutes(AppLogic.CacheDurationMinutes()), TimeSpan.Zero);

Secondly as per your research, 

Minicart will load for every page and default minicart control use the same AspDotNetStorefrontControls.ShoppingCartControl and AspDotNetStorefrontControls.ShoppingCartLineItemDescriptionControl controls. Please debug these two classes and make sure which query or objects takes the maximum time. 

Please let me know if my suggestion not working for you. Meanwhile I will try to find more specific possible reasons. 

Thanks

Anirban

answered Mar 14, 2014 by anirban (1,350 points)
0 votes
Hi

Have you run it on a browser such as Chrome and looked at the developer tool (network) diagnostics to try and get an idea of what components are taking the longest to load?

Alternatively, try a third party plugin such as http://yslow.org/ to do more detailed analysis of the page.

I suspect it'll be a javascript component that's timing out or taking a very long time to run

Adam
answered Mar 17, 2014 by Webopius (650 points)
0 votes
The code that generates the product pages exists in a few different places. There will be an XML package that drives most of it, and that's probably a good place to start looking. The filename for the XML package will be listed in the product manager in your admin panel. Do a full-site search for that filename, because there might be more than one, you'll want to review both of them.

If it is only your product pages that are taking a long time to load, then there is probably something wrong with the XML package.

How quickly it can be fixed is a function of what the problem is. Webopius names some good browser tools (developer tools are available on the "Big 3" browsers, not just Chrome, by hitting F-12). I usually get some good use out of WebPageTest.org, since it can run multiple tests and will provide a waterfall chart of your page requests.

 I would advise you against enabling caching until you have identified and resolved the problem. Caching will help with fine-tuning, but is definitely not a panacea and using it inappropriately is like sweeping a problem under a rug.

Finally, take a look at your system log - it will probably list some errors with product page loads. You can get to it through either the admin panel or the aspdnsf_SysLog table in your database.
answered Mar 17, 2014 by Chris (3,685 points)
Not sure that the problem is with the javascript...

I used a tracing tool "dotTrace" and it yielded some very interesting results.

When selecting a product without having an item in the shopping cart I get the following output:

User code hotspots

576 ms XmIPackage2.TransformString

239 ms XmlPackage2..ctor

234 ms Commor|oic.GetImagePixelSize

230 ms DB.GetRS

141 ms DB.GetRS

137 ms ShoppingCart.GetAddToCartForm

71 ms XSLTExtensionBase.ProductRatings

66ms ShoppingCart.GetAddToCartForm

63 ms Parser.RgQacePageStaticTokens

59 ms Commor|§icFleExists

58ms Shogpiggartxtot

52 ms ShogpiggartkecalcuIateCartDiscount

52 ms DB.ExecuteStoredProcInt

48ms XmIPad<age2.InitializeSgemData

41 ms AQQLogic.LocateImQgURL

 

Now, when I do have a single item in the cart I get the following:

User code hotspots

4,900 ms DB.GetRS

2,358 ms XmlPackage2.GetSqllData

 

This is an enormous difference (from 1.5 seconds to 7+ seconds)!

 

Any ideas???
Both of those bits of code are hitting your database. Similar bits of code seem to work pretty quickly with an empty cart, but are unacceptably long with a loaded cart.

I have some additional questions:

Are these results similar across multiple samples?

Is this only on product pages, or is across entity types?

Do you have direct database access?

I would make a list of all of the XML packages that load when you access a product page, as well as the database calls they make. You could run SQL Profiler to see if the execution times on any of those calls is particularly high, or you could try running those calls directly and observing their execution times.

If you can eliminate the database as a concern, then you'll have to focus on the code that's being loaded.
...