My current host gives NopCommerce 1.6 as a webinstall. I installed it and it works great, lightning fast. The I saw NopCommerce 1.7 was released so I decided to give it a try. Unfortunatly it seems much slower, and I'm wondering why. Is it because my webhost may have optimized something on the 1.6 that they install, or because vers 1.7 is truly slower? I know of the major change from sp to entity framework, and I'm wondering if that is the cause, and if is if there is something I can do. Has anything else been changed, like the cache mechanism? I tested 1.7 with default settings.
Correct, we moved to Entity Framework. And the most of entities are cached per request now.
I too have found this under both load testing and from my web monitoring (PRTG) which shows load times (time to first byte) after upgrade of a very standard site with about 2000 products (monitoring a page with 19 products) goes from 355 milliseconds in 1.60 to 767 milliseconds in 1.70. I've upgraded my 1.60 site to .NET 4.0 too and found exactly the same results.
Any page with data being loaded through the entity framework is showing this significant slowdown. It also appears to grow exponentially with data and any caching certainly isn't helping speed after the first hit.
It's a shame as the entity framework is a joy to use. This is quite a significant slowdown though and on my more complex pages is showing a drop from ~500 ms to 1.3-1.5 seconds! Memory usage is very similar. I'm finding that 1.70 is using approx 9% more memory. Nothing too serious.
We're going to have to hold off upgrading to 1.70 until nop at least acknowledge they've replicated this issue and that we're not all going mad!
Any thoughts on how to get some quick speed increase's from 1.7
My trouble is on the customer / order side of things. I have about 400 products with 700 variants and the product side of things runs smooth with a small number of products.
In 1.6 I could import 50,000 customers and 100,000 orders in a bit over a hour from my old classic asp site. 1.7 takes over 8 hours to import the same number. Entity framework slows depending on the number of records. so the first customer take a 1/4 of second while the last customer takes 5 minutes. I rewrote the entire import to use direct SQL so im back to about a hour. This is on a fast local machine with the source pre-compiled directly running IIS 7 with sql server 2008 with a quad core processor running 4.6 mhz and 8 gigs of ram.
Then with that number of customers the registration / checkout crawls to a snails pace. it takes minutes to complete the checkout.
My worry is this site averages 100 to 150 orders a day with about a 50/50 split between returning and new customers.
Ive tried it with both caching on and off. I'm ready to go live with this new site, but i cant possibly with the current performance.