CS-Cart 3 Speed Issues

To get more features requires more code which requires more resources.

To then optimize things so you get some parallelism and increased speed also requires more resources.

Nothing (absolutely nothing) is free.



So you spend $300 for a piece of software that you expect to last you for years.

You spend $100/yr for the ability to upgrade that SW to the latest version (bug fixes and more new features which will consume more resources).

You spend $100/month for hosting which gives you the core of your business, email and other services.

So you're spending about $120/month for your store.



Every pay rent (commercial rent)? Think of it as the same. You can rent a dump or rent a building that requires constant maintenance or you can rent a reasonable place in a reasonable location with a reputable landlord. Or…



There are many variables that go into what resources are required for every site. It depends on traffic, inventory, options, features, filters in use, number of categories, number of configured languages and currencies, which addons are active and in use, etc. Then there's the underlying performance of whatever server environment you're running on. Even on a VPS, you are dpendent upon the underlying resources of the server and the other VPS's use of those resources. No matter how you slice it. many resources on any single server are shared.

UPDATE: I have continued to struggle with speed of CS-Cart 3. I did some checking around and discovered the problem was definently with my First Btye Load (in other words its not the css files, js, or images). My first byte load was 2.5 seconds on category pages. The first byte is just the script loading thats before any html, css, js, or images are loaded. Thats HORRIBLE for me.





I discovered one of the problems is with my products having to many product options.The only way I have been able to improve my speed on category pages was by making a change to a core file in controllers/customer/categories.php I changed the setting get_options to false for the function fn_gather_additional_products_data.



That brought my first byte down to 1.018. Still not the desired load time as I would like to see under a second for First Byte, but its much better.The problem seems to have been it was querying the database and storing in array each product option.



So for an item like a belt with 12 sizes, 10 colors, and 2 buckles that became 240 for each product which equaled 4800 records just for product options not to mention it still was getting other data for the product. I have about 500 items like this right now.



Does anyone know if when I made this change did it stop the database from retrieving this data each category load or just stop it from being added to the array? I had been hoping I could show color swatches on the category page at some point but with the amount of records that have to be retrieved for each product it seems impossible.

[quote name='solesurvivor' timestamp='1342724439' post='141097']

UPDATE: I have continued to struggle with speed of CS-Cart 3. I did some checking around and discovered the problem was definently with my First Btye Load (in other words its not the css files, js, or images). My first byte load was 2.5 seconds on category pages. The first byte is just the script loading thats before any html, css, js, or images are loaded. Thats HORRIBLE for me.





I discovered one of the problems is with my products having to many product options.The only way I have been able to improve my speed on category pages was by making a change to a core file in controllers/customer/categories.php I changed the setting get_options to false for the function fn_gather_additional_products_data.



That brought my first byte down to 1.018. Still not the desired load time as I would like to see under a second for First Byte, but its much better.The problem seems to have been it was querying the database and storing in array each product option.



So for an item like a belt with 12 sizes, 10 colors, and 2 buckles that became 240 for each product which equaled 4800 records just for product options not to mention it still was getting other data for the product. I have about 500 items like this right now.



Does anyone know if when I made this change did it stop the database from retrieving this data each category load or just stop it from being added to the array? I had been hoping I could show color swatches on the category page at some point but with the amount of records that have to be retrieved for each product it seems impossible.

[/quote]



Pretty simple: use a different category display style. “List without Options” would be ideal.

The reason I recommend upgrades from 1.3.X to 2.x was due for this reason alone, category page load overheads taking two minutes to load.



J.

I’m using version 3 though and choosing List without Options doesn’t change the fact that options are still being retrieved I don’t think. I think the only way to not get options is hardcode change in the core file I mentioned but I’m open to any other ideas. From what I can tell list without options just is a different design but the data is still being retrieved from the database its just not being used.



:)

Your change changes what the query is to the database. I.e. you've eliminated a very large JOIN so the performance should be much better.



But as Jessie stated, each list object has different requirements for what it requests of the database. So you might want to experiement with different list objects to identify the lightest weight one that still meets your content display needs.



Generally the fn_get_products() function uses a set of passed parameters to determine what JOINs to do and what data to retrieve. These are passed from the block that is requesting the content (list object in this case)…

@tbirnseth: Thanks for that additional information I will do some additional testing.

[quote name='tbirnseth' timestamp='1340991027' post='139607']

So you spend $300 for a piece of software that you expect to last you for years.

You spend $100/yr for the ability to upgrade that SW to the latest version (bug fixes and more new features which will consume more resources).

You spend $100/month for hosting which gives you the core of your business, email and other services.

So you're spending about $120/month for your store.

[/quote]



You spend 100$ a month on hosting?



damn i spend 15$ i was planing to upgrade to VPS (20$) on this store to but i thinks it runs fine for now.

http://p10-preview.e…meraer-til-brn/



this is my new host and test url fully loadet whit products and images. i just need to optimize and personolize the store

I'll be soon paying $200 p/m for hosting as my return on investment is expected to be many times that. No point having a nice website if it crashes after 30 visitors, right?

@badtag - Just trying to make a point about the absurdity of people's costs in running an online business when compared to other businesses.



I doubt your $15/month hosting will stand up under any load or the host will shut you down once you start to consume their machine.

okay her is the link after a bit off optimization

[url=“http://gtmetrix.com/reports/edb-eksperten.dk/DjdgWCDl”]http://gtmetrix.com/reports/edb-eksperten.dk/DjdgWCDl[/url] this is the front page!

[url=“http://gtmetrix.com/reports/edb-eksperten.dk/45ISkdvY”]http://gtmetrix.com/reports/edb-eksperten.dk/45ISkdvY[/url] this is a stokt category page



it seams that cs-cart 3 optimizes well. It wasent hard and this is whit out smartoptimizer (cant get it to work whit out braking the template)

You see deffrent from 3.0.1 to 3.0.2?

I definately see a difference from 3.01 to 3.02



John

Really? You see a speed difference from 3.01 to 3.02 without any optimization?

Barn Light Electric | An American lighting manufacturer



Major speed difference compared to our 2.0.15, having tested on 3.0.2 - Yes.

well after all the speed talk i went and got my self a pro VPS well after a bit of twiking i got my site to load under 2 sek and a A-B score on Gtmetrix. i just cheked one page so far but i will check again after some more sites is chached



[url=“http://gtmetrix.com/reports/edb-eksperten.dk/fgCCSY07”]http://gtmetrix.com/reports/edb-eksperten.dk/fgCCSY07[/url]

I had this first byte load problem on one of my sites. I think it's a server or routing issue on a flavour of VPS. The VPS I was using had 20+ sites all Wordpress and all the same features. The one site was Wordpress and had this issue, I used the server to test Cs-Cart and it performed fine.



I finally moved all the sites to cloud hosting at 10th of the cost and all now work fine.

After switching to fully dedicated server, my cs-cart still has loading problems comparing to any other ecommerce platforms. I pay a good price for the server, but unfortunately it did not reach my expectations.

See the snapshot below with test results for product category page (25 products per page, page size 474 KB, conection speed DSL).

I notice the loading problem only with category pages in most cases. As you can see on snapshot the size of the page is only 24 KB for second time load; so, how come it takes 2.5 seconds to load the page with such beast (server)?





Here is my server details:[list]

[]Intel(R) Core™ i5-3450 CPU @ 3.10GHz

[
]4GB Ram

[]300GB drive (RAID 1)

[
]100mbps port speed

[/list]



Optimization on the website:[list]

[]Gzip enabled

[
]Cache enabled / Expiry headers for most files

[*]Images are optimized

[/list]









The perfect speed for second page view should be 1sec. So, I still believe the problem is with cs-cart rather than server side.





Helpful resources for speed test:

[url=“https://developers.google.com/speed/pagespeed/insights”]https://developers.google.com/speed/pagespeed/insights[/url]

[url=“http://www.webpagetest.org/”]http://www.webpagetest.org/[/url]

[url=“http://gtmetrix.com/”]http://gtmetrix.com/[/url]

[url=“Website Speed Test | Pingdom Tools”]Website Speed Test | Pingdom Tools

img12.jpg

Try disabling product options from loading on category pages that can really slow things down.



This required a code change to the category controller I believe just change get options to false.

[quote name='solesurvivor' timestamp='1352094252' post='148322']

Try disabling product options from loading on category pages that can really slow things down.

[/quote]



Thank you for advice; however, I thought product options are loading only at Details page rather than category.



Can please provide a steps for this modification (disabling product options), such as which files to modify. It may help other users as well.

Be aware there are different types of VPS virtualization in use OpenVZ and XEN. With OpenVZ your cpu resource is not guaranteed, so you may notice varying performance issues (heavy loads from other VPS may effect performance). With XEN resources are guarenteed so you get a consistent amount of memory, cpu, io, etc. So if you are considering starting with a VPS it is worth considering the different types of virtualization, and also consider migration path if your site becomes busy or size of the site grows.