Bad performance?

Topics: Troubleshooting
Oct 28, 2010 at 3:21 AM
Edited Oct 28, 2010 at 3:21 AM

The overall feeling about composite cms is very slow.

When installing, the IE8 just hang in there for a long time and couldn't move, and the backend is really really slow.

You guys really need to focus on improving the performance first, it's kind of unusable

Coordinator
Oct 28, 2010 at 4:08 AM

Hi ryanlin,

IE8 performance should not be bad - for reference I have recorded a short video showing how IE performs when creating and editing pages: http://screenr.com/0SZ

This video was recorded with our latest release (SP1). This release removes a 5 second wait when previewing pages and setup is faster, but otherwise this is the general performance in all out 2.0 releases. Be aware that the very first time you execute an action some asp.net compilations are done, but subsequent actions should be like in the video.

Could you provide me with more info? Is CPU maxing out on your machine and is it IE using the CPU, are there particular actions that are slow or is it just everything, is it only IE (and not Firefox) you find slow etc.?

 

Marcus

Nov 17, 2010 at 1:55 AM

Yeah . The performance is really bad and very slow. I'm using the lastest version of  composite CMS . It took about 4 minutes and 43 seconds to log in developer mode. The performance should be better.

Nov 17, 2010 at 1:59 AM

I do not know if you are using Firefox, but there was a suggestion (although I cannot find it now) to disable ipv6 (I think) to increase performance. I did that and it was VERY noticeable. Prior to doing this the performance was terrible. Now, it is wonderful.

I am sure someone can provide the info that I now cannot find. :)

 

Robert

Coordinator
Nov 17, 2010 at 9:46 AM

OCDDev wrote:

I do not know if you are using Firefox, but there was a suggestion (although I cannot find it now) to disable ipv6 (I think) to increase performance. I did that and it was VERY noticeable. Prior to doing this the performance was terrible. Now, it is wonderful.

I am sure someone can provide the info that I now cannot find.

This information is available on the page http://docs.composite.net/C1/Getting-started/VS2010-and-IIS.aspx,  right column:

For optimal performance and access to all features, we suggest you use Firefox when running the C1 Console.

If you use the ASP.NET Development Server in VS2010, an issue with Firefox and IPv6 can make the C1 Console very slow. To fix this, do the following:

  1. In Firefox, type about:config in the address bar.
  2. In the Filter field, type network.dns.disableIPv6.
  3. Double-click it to set it to true.
Nov 17, 2010 at 12:51 PM

Hi Inna,

Thank you very much about your help. The problem has fixed.

 

 

Nov 17, 2010 at 2:19 PM

To increase overall performance i have good experience on doing a precompile of the website which significantly speeds up loading the C1 Console because the server doesn't have to compile the high number of ascx controls on every application startup. Especially during development on my not-so-powerfull laptop it really helped decrease my blood pressure :)

Coordinator
Dec 21, 2010 at 1:41 PM
Edited Dec 21, 2010 at 2:05 PM
burningice wrote:

To increase overall performance i have good experience on doing a precompile of the website which significantly speeds up loading the C1 Console because the server doesn't have to compile the high number of ascx controls on every application startup. Especially during development on my not-so-powerfull laptop it really helped decrease my blood pressure :)

You can get almost the same results without doing a precompilation

Edit the web.config, add the following attribute

    <compilation debug="true" targetFramework="4.0"  optimizeCompilations="true">

You can get some info from MSDN here. To make a story short the only side effect that if you referenced some dll-s or App_Code classes from an ascx control and did some changes in the API that was used by the control, you may get an exception when accessing that control. But overall - it is a worthy setting to have on.

P.S. I was inspired by that really good blog post on ASP.NET performance.

 

Dec 23, 2010 at 3:59 PM
Edited Dec 23, 2010 at 4:05 PM

Hi guys,

Performance of saving DataTypes also is very poor. It takes about 5-7 sec each time when I save any datatype on my local machine (Core i7, 6Gb RAM, 2 HDD RAID).

Alexey

 

Coordinator
Dec 23, 2010 at 5:30 PM
Edited Dec 23, 2010 at 5:34 PM
Dixon wrote:

Hi guys,

Performance of saving DataTypes also is very poor. It takes about 5-7 sec each time when I save any datatype on my local machine (Core i7, 6Gb RAM, 2 HDD RAID).

Alexey

 

Hi Alexey

 

It is by design that every time a datatype is changed the site is restarting.  

The reason for that is that behind every data type there's a C# interface and a few auto-generated classes that implement it.

F.e. if in "/App_Code" you have the following code:

 

public MyCoolApp.Document GetFirstDocument() {

    return DataFacade.GetData<MyCoolApp.Document>().FirstOrDefault();

}


once you edit your data type "MyCoolApp.Document" there will be 2 different interfaces with the same name

1) old version of "MyCoolApp.Document"  from /bin/Composite.Generated.dll

2) new version of "MyCoolApp.Document" in a temporary dll, usually has a name like: CMS_1daf74ca-7db2-4eef-838f-96d9a06aa9c7.dll

The method GetFirstDocument() is using the 1-st version of interface, since it was compiled against Composite.Generated.dll, at the same time a call to DataFacade.GetData<...> will either return no data or will throw an exception about incompatible types, since it can get data only of the second interface.

Once we optimized start-up time so it takes less than 10 seconds, we found it convenient always to do a restart after interface changes.

 

If you haven't tried it yet, I would recommend you to use the optimization, suggested in the previous post - adding the following attribute to the web.config:

 <compilation debug="true" targetFramework="4.0"  optimizeCompilations="true">

I expect it to save 30-50% time on restarts.

Coordinator
Dec 24, 2010 at 2:22 AM

I just tried the optimizeCompilations="true" setting, and it gave me a 40-45% faster response time on data type saves - and it also removed the super annoying lag on next first-time-use of all other UI actions (like dialogs, page edits etc.). A quite amazing effect.

The C1 Console UI consists of 75+ asp.net user controls and pages, which are recompiled each time ~/app_code or ~/bin change and the asp.net compilation time for each control can be seconds - done sequentially. The result is that - when ~/app_code or ~/bin change - actions in the C1 console sends asp.net recompiling a ton of required items, making response times immediately after slow. I have been bitching about that effect for quite some years now, but never been able to find a nice way to keep the user controls (as is) and avoid this effect - and here come a magic web.config setting and fix everything :-) Go try it.

We just stumbled across this knowledge, so we haven't tested it in depth - if anyone out there try it and run into issues, please share the info.

Dec 24, 2010 at 7:55 AM

Thank you for your answers.

It takes 7 sec on my PC with optimizeCompilations="true".

Ok now I see why it's so slow.

Alexey.