Speeding Up Cs-Cart (Attempts)

For some reason I can't cast my vote on the poll, I'm not sure what the deal is.



Regarding litespeed, are you on their paid plan? If so, how much did you pay for the license? I'm on cPanel based server and I heard they made integration with cPanel just recently so that could be a good option for me. Can you please share little bit more about your experience with litespeed and the integration with CSCart in general?



Also, if you can share your website URL in private messsage, I'd also greatly appreciate that.



Thanks

For those who would like to bring this up to CS-Cart's attention, you can see the topics in uservoice that relates to this:



http://cscart.uservo…peed-of-cs-cart 33 votes (2nd page)

http://cscart.uservo…g-use-memcached 22 votes (3rd page)

http://cscart.uservo…rt-with-litespe 17 votes (5th page)



If you are interested in improving CSCart's page speed, you should go ahead and vote for these in order for CS-Cart to take action on these issues.

I cant vote on it. You can only vote for a few things.

Regarding LiteSpeed. I do use their paid plan. I started out with 1CPU plan and kept moving it up over time. It may look pricey but it actually saves hosting costs.

[quote name='P-Pharma' timestamp='1414706724' post='195742']

I cant vote on it. You can only vote for a few things.

Regarding LiteSpeed. I do use their paid plan. I started out with 1CPU plan and kept moving it up over time. It may look pricey but it actually saves hosting costs.

[/quote]

Will CS-Cart 4.2.x work with either LiteSpeed server and/or LiteSpeed cache?

Please mind that I wrote that I am not using LIteSpeed for CSCart, but for other projects. As soon as LiteSpeed Cache is supported then it will be a no brainer for me to start using LiteSpeed Web Server.

[font=lucida sans unicode,lucida grande,sans-serif][size=3]Hi, mazter. [/size][/font]



[font=lucida sans unicode,lucida grande,sans-serif][size=3]Thank you for your post. First of all I would like to note that we really care about the performance of CS-Cart and we want to make it very fast for our customers.[/size][/font]


[quote name='mazter' timestamp='1414435789' post='195376']

If you look at overall picture, an ecommerce website's only %10-15 is dynamic, login-add-to-cart and checkout. Rest of the content is static, that remains the same for long time including category pages, product pages etc. These portions could be easily cached and served from cache. Even saving them as “.html” and setting an expiration timeout would work just fine.

[/quote]



[font=lucida sans unicode,lucida grande,sans-serif][size=3]Totally agree. In general, most of the content can be put in the cache, giving a significant performance gain. But for existing stores to do this is extremely problematic because of the architecture of the project. [/size][/font]



[font=lucida sans unicode,lucida grande,sans-serif][size=3]Unfortunately, I am DevOps and can affect on CS-Cart code only indirectly. I can answer questions on setting up and optimization of CS-Cart as it works now. However, I think your idea is really very useful.[/size][/font]



[font=lucida sans unicode,lucida grande,sans-serif][size=3]I invited to join the discussion of our CTO. I hope he will give a more detailed response on this issue.[/size][/font]

[quote name='mazter' timestamp='1414695196' post='195731']

For those who would like to bring this up to CS-Cart's attention, you can see the topics in uservoice that relates to this:



http://cscart.uservo…peed-of-cs-cart 21 votes

http://cscart.uservo…g-use-memcached 18 votes

http://cscart.uservo…rt-with-litespe 10 votes



If you are interested in improving CSCart's page speed, you should go ahead and vote for these in order for CS-Cart to take action on these issues.

[/quote]



Voted

[quote name='Rafass' timestamp='1415250918' post='196181']

Voted

[/quote]



Thanks, with little bit more push, we can bring at least first one into CS-Cart's attention sooner.

[quote name='mazter' timestamp='1414435789' post='195376']

If you look at overall picture, an ecommerce website's only %10-15 is dynamic, login-add-to-cart and checkout. Rest of the content is static, that remains the same for long time including category pages, product pages etc. These portions could be easily cached and served from cache. Even saving them as “.html” and setting an expiration timeout would work just fine.

[/quote]



mazter,



It is not as easy as it may seem. In fact there are a lot of factors that can change list of products in the category:

  1. Language
  2. Currency
  3. Whether customer is logged in or not (what user group does he have)
  4. Are there any discounts or promotions for this particular visitor.



    I can assure you that we are working on speeding CS-Cart up. There are two main points we are working on right now:
  5. Product selection & filtering functions.
  6. Caching the content



    We plan to release some of the improvements in 4.3.x

[quote name='imac' timestamp='1415286701' post='196264']



I can assure you that we are working on speeding CS-Cart up. There are two main points we are working on right now:

  1. Product selection & filtering functions.
  2. Caching the content



    We plan to release some of the improvements in 4.3.x

    [/quote]



    That is really a good news. Thanks imac!

[quote name='imac' timestamp='1415286701' post='196264']

mazter,



It is not as easy as it may seem. In fact there are a lot of factors that can change list of products in the category:

  1. Language
  2. Currency
  3. Whether customer is logged in or not (what user group does he have)
  4. Are there any discounts or promotions for this particular visitor.



    I can assure you that we are working on speeding CS-Cart up. There are two main points we are working on right now:
  5. Product selection & filtering functions.
  6. Caching the content



    We plan to release some of the improvements in 4.3.x

    [/quote]

    What's the estimated time frame you would expect 4.3.x to be released? I'm not asking for an exact date but a general idea as to around when we can expect this release?

[quote name='imac' timestamp='1415286701' post='196264']





I can assure you that we are working on speeding CS-Cart up. There are two main points we are working on right now:

  1. Product selection & filtering functions.
  2. Caching the content



    We plan to release some of the improvements in 4.3.x



    [/quote]



    Good news

[quote name=‘imac’ timestamp=‘1415286701’ post=‘196264’]

[…]



I can assure you that we are working on speeding CS-Cart up. There are two main points we are working on right now:

  1. Product selection & filtering functions.
  2. Caching the content



    We plan to release some of the improvements in 4.3.x

    [/quote]



    ¡Great news!

    Thanks for improving CSCart, listening our suggestions and keeping us updated!

    Good job guys! 8)

Please do something about product options. Cs-cart is the only cart that reloads the page every time when an option is selected.

[quote name='ghostrider' timestamp='1415346365' post='196340']

Please do something about product options. Cs-cart is the only cart that reloads the page every time when an option is selected.

[/quote]

thats true 100% true.



it is very annoying every time when someone take a look in the options shows up the typical ajax gif loading…



[center][/center]



This is something that would be improved.

[quote name='ghostrider' timestamp='1415346365' post='196340']

Please do something about product options. Cs-cart is the only cart that reloads the page every time when an option is selected.

[/quote]

[quote name='Rafass' timestamp='1415347941' post='196344']



thats true 100% true.



it is very annoying every time when someone take a look in the options shows up the typical ajax gif loading…



[center][/center]



This is something that would be improved.

[/quote]



Guys,

When visitor changes product options the page is not reloaded, only part of the page updated using AJAX.

It is done in order to update all the values that depend on options, these are: image, quantity, product code, price, forbidden combinations etc.



You can take a look at the example here: Instant Demo - CS-Cart Multi-Vendor Demo Try Free for 15 days

It's the Product Filters that dragged my store down.

10,000 products, each with Brand, and two other Extended Feature types, added almost 20 seconds to page load time for any product view.

I dumped all the Features/Filters and each product view now displays in about 3 seconds.

I'd like to restore the Features/Filters but 23 seconds per page is a ridiculously long wait time.

[quote name='Magpie Don' timestamp='1415378433' post='196389']

It's the Product Filters that dragged my store down.

10,000 products, each with Brand, and two other Extended Feature types, added almost 20 seconds to page load time for any product view.

I dumped all the Features/Filters and each product view now displays in about 3 seconds.

I'd like to restore the Features/Filters but 23 seconds per page is a ridiculously long wait time.

[/quote]



Yeah, thats what put me off using filters a while back. At that time I was on VPs and now on dedicated so am hoping to re visit this soon to see what features/filters can be enabled without too much slack time.

probably about 3000 products

[quote name='Magpie Don' timestamp='1415378433' post='196389']

It's the Product Filters that dragged my store down.

10,000 products, each with Brand, and two other Extended Feature types, added almost 20 seconds to page load time for any product view.

I dumped all the Features/Filters and each product view now displays in about 3 seconds.

I'd like to restore the Features/Filters but 23 seconds per page is a ridiculously long wait time.

[/quote]



Hi imac, thanks for the response and good news. I can only imagine how difficult your job might be trying to satisfy every ecommerce owners with your software. I'd like to give you a bit more background for what we are discussing that might also help you identify some other areas that could be improved with CS-Cart.



[size=4]The part that Maggie mentioned in her message can be easily solved if CS-Cart would build database layer - memory cache and store this in the database or through memcached type of solution and built once but serve many times. This way, all the data that has been queried one by one from database could be stored at once in memory and will be accessed in much quicker way. I developed a solution like this back in 2008 for osCommerce.[/size]



Main approach is to identify what type of queries are being pulled from database the most. Are you querying similar tables over and over? How many times are they changed? Like “products” and “categories”. They are updated once in while but queried many times during the day. Why not cache them in database? Once this is identified, I would build a cache for these as a whole, serialize the data and store it in the database.



For each person who is visiting the website,[list]

[][size=4]I would first get the binary data from cache (around %90 of the data) unserialize it and load it to PHP memory.[/size]

[
][size=4]At that moment, you only need extra %10 of information that you would like to personalize per person.[/size]

[/list]

I'm talking about 2008. In 2014, there are so many technologies, it is even ridiculous. There are client side caches - back end caches - memory caches - DB level caches. xcache has var memory option. memcached has its own way of keeping cache. APC has also memcache like cache capability.



The easiest approach:[list]

[]You can build the whole website category structure and their associations with each others once and store it either in memcached, sqlite, xcache, Mysql DB and access it as many times as needed for each person visiting your site.

[
]Again, you can build the feature filter structure

[*]You can build the whole product structure including information on a product page and their associations with the categories once.

[/list]

If somebody is visiting product_id = 3120, you need to pull name, title, images, stock availability, price, weight, description, etc. from database right? What if you store all product database in this format once in serialized-compressed format (in a table called ex: cs_database_cache) and every time somebody access to the website, instead of running 100 queries, you query cs_database_cache and de-serialize the zip file into arrays and access to the data just like this:

cached_products[3120]['name']

cached_products[3120]['title'] etc.



I did this back in 2008 so I'm pretty sure there are probably 100 more ways to implement cache structures these days. It is most likely not an easy task for an existing software but a lot could be done gradually.



Like I mentioned in my previous posts, WEBO team had done DB query cache - HTML cache - CSS cache - JS cache and many other stuff back in couple of years ago for CS-Cart and it worked great for me till CS 4.x



Looking forward to see improvements in your next release.

[quote name='imac' timestamp='1415350106' post='196347']

Guys,

When visitor changes product options the page is not reloaded, only part of the page updated using AJAX.

It is done in order to update all the values that depend on options, these are: image, quantity, product code, price, forbidden combinations etc.



You can take a look at the example here: http://demo.cs-cart…ing/100g-pants/

[/quote]



Thanks for the explanation imac, anyway, in my opinion, it take long time loading the option sometimes.

with other softwares it doesn't happen or works smoothly.

would be great have improvements in the speed in the future releases.

In general, I'm very happy with Cscart, my site running with VPS is fast, but all the improvements are always welcome.