Hello,
I created a page with a number of ASP.NET (non ajax) controls and I also replicated the page with the RadControls. I then performed a load test on both pages each at a time for 5 minutes with a constant load pattern of 200 users. The results are so shocking I re-run all tests again and again but the only optimization I could figure was replacing your ScriptManager with the standard .NET 3.5 ScriptManager and that did wonders. The load tests have been performed with VS Test Edition and are purely testing request processing time. Are we missing something as far as concerning the performance? Test machine is a quad Xeon with 4GB RAM, Server 2030 x64 and a SAS controller. Here are my results:
I created a page with a number of ASP.NET (non ajax) controls and I also replicated the page with the RadControls. I then performed a load test on both pages each at a time for 5 minutes with a constant load pattern of 200 users. The results are so shocking I re-run all tests again and again but the only optimization I could figure was replacing your ScriptManager with the standard .NET 3.5 ScriptManager and that did wonders. The load tests have been performed with VS Test Edition and are purely testing request processing time. Are we missing something as far as concerning the performance? Test machine is a quad Xeon with 4GB RAM, Server 2030 x64 and a SAS controller. Here are my results:
| Controls | ASP.NET | Telerik |
| Total Requests | 1,144,034 | 83,818 |
| Requests per Sec | 3,813 | 279 |
| Failed Requests | - | - |
| Cached Requests | - | - |
| Total tests | 381,337 | 4,916 |
| Tests per Sec | 1,271 | 16 |
12 Answers, 1 is accepted
0
Hello Lambros,
Please take a look at the following blog posts that might help you speed up your application:
Optimization Tips: Testing Page Performance
Optimization Tips: Using RadAjaxManagerProxy Controls
Regards,
Paul
the Telerik team
Instantly find answers to your questions at the new Telerik Support Center
Please take a look at the following blog posts that might help you speed up your application:
Optimization Tips: Testing Page Performance
Optimization Tips: Using RadAjaxManagerProxy Controls
Regards,
Paul
the Telerik team
Instantly find answers to your questions at the new Telerik Support Center
0
Lambros
Top achievements
Rank 1
answered on 09 May 2008, 02:33 PM
Paul,
I appreciate your fast reply. I followed your guide with not much performance gain. What made an impact was:
compilation debug=false
ASP.NET Script Manager
Move Telerik assembly to GAC and ngen.exe.
The above steps did wonders and I gained I doubled the test results. But still a lot of requests are queued.
I appreciate your fast reply. I followed your guide with not much performance gain. What made an impact was:
compilation debug=false
ASP.NET Script Manager
Move Telerik assembly to GAC and ngen.exe.
The above steps did wonders and I gained I doubled the test results. But still a lot of requests are queued.
0
Hi Lambros,
You're absolutely right - RadScriptManager and RadStyleSheetManager do a lot of background operations - extract the necessary resources from the assemblies, merge them, write the content of the resources to the output stream, etc. When load testing, the ScriptManager performs much better.
The two controls actually target the real-life scenarios, where the servers are remote machines and people have their browser cache enabled. In this scenario it happens that using a single Script/StyleSheet reference is better than having a lot of <script>/<link> tags (you can check the small testing application I published in this post).
I hope this helps.
Best regards,
Erjan Gavalji
the Telerik team
Instantly find answers to your questions at the new Telerik Support Center
You're absolutely right - RadScriptManager and RadStyleSheetManager do a lot of background operations - extract the necessary resources from the assemblies, merge them, write the content of the resources to the output stream, etc. When load testing, the ScriptManager performs much better.
The two controls actually target the real-life scenarios, where the servers are remote machines and people have their browser cache enabled. In this scenario it happens that using a single Script/StyleSheet reference is better than having a lot of <script>/<link> tags (you can check the small testing application I published in this post).
I hope this helps.
Best regards,
Erjan Gavalji
the Telerik team
Instantly find answers to your questions at the new Telerik Support Center
0
Lambros
Top achievements
Rank 1
answered on 09 May 2008, 03:23 PM
Hi,
The most important point here is that there is no web browser involved. Instead, the test hits the page url and monitors ASP.NET and IIS performance in responding back. This is what we dont like. A real life support scenario for our enterprise web application, is a customer with 500+ employees using it at the same time. We love the ASP.NET AJAX, RTL and Section 508 support and AJAX performance is great too. The request processing time is what is we are trying to resolve.
Thanks
The most important point here is that there is no web browser involved. Instead, the test hits the page url and monitors ASP.NET and IIS performance in responding back. This is what we dont like. A real life support scenario for our enterprise web application, is a customer with 500+ employees using it at the same time. We love the ASP.NET AJAX, RTL and Section 508 support and AJAX performance is great too. The request processing time is what is we are trying to resolve.
Thanks
0
Hi Lambros,
I clearly understand your point.
My suggestion is that you watch the traffic and the number of requests for the ScriptResource.axd files closely. If you notice that most of the people use cached scripts (and the server doesn't receive many requests for the ScriptResource.axd file, you can move to using RadScriptManager/RadStyleSheetManager on the page to make the pages run faster for users.
On the other hand, if there are too many requests for the ScriptResource.axd file, I'd suggest that you stay with the standard ScriptManager (or just set the EnableScriptCombine property of RadScriptManager to false).
All in all, the right decision depends on the exact scenario.
This became a very nice discussion. Please, feel free to contact us for any additional information on the matter.
Best regards,
Erjan Gavalji
the Telerik team
Instantly find answers to your questions at the new Telerik Support Center
I clearly understand your point.
My suggestion is that you watch the traffic and the number of requests for the ScriptResource.axd files closely. If you notice that most of the people use cached scripts (and the server doesn't receive many requests for the ScriptResource.axd file, you can move to using RadScriptManager/RadStyleSheetManager on the page to make the pages run faster for users.
On the other hand, if there are too many requests for the ScriptResource.axd file, I'd suggest that you stay with the standard ScriptManager (or just set the EnableScriptCombine property of RadScriptManager to false).
All in all, the right decision depends on the exact scenario.
This became a very nice discussion. Please, feel free to contact us for any additional information on the matter.
Best regards,
Erjan Gavalji
the Telerik team
Instantly find answers to your questions at the new Telerik Support Center
0
Lambros
Top achievements
Rank 1
answered on 09 May 2008, 04:35 PM
OK I realised I have been very unfair with your control suite so I wrapped the asp.net controls with an update panel and threw a script manager in the game. The performance has been reduced by 50% in the ASP.NET controls. However RadControls are still 25% of that performance. The compression and caching can do wonders in this situation.
0
Lambros
Top achievements
Rank 1
answered on 27 May 2008, 02:21 PM
Hello again,
We have rerun the load tests, only this time the ASP.NET controls are wrapped in an update panel. In addition, the test does not follow any dependant resources on the page like javascript or images (including resource handler - .axd). In other words the tests are testing the controls server-side performance on rendering the html code. ASP.NET ScriptManager is used instead your own. Again the results are very low, any way to improve page processing? I am also wondering I could avoid your embedded skins?
Regards,
Lambros
We have rerun the load tests, only this time the ASP.NET controls are wrapped in an update panel. In addition, the test does not follow any dependant resources on the page like javascript or images (including resource handler - .axd). In other words the tests are testing the controls server-side performance on rendering the html code. ASP.NET ScriptManager is used instead your own. Again the results are very low, any way to improve page processing? I am also wondering I could avoid your embedded skins?
Regards,
Lambros
| Total Requests | Requests/Sec | Failed Requests | Cached Requests | Total Tests | Tests/Sec | Failed Tests | |
| ASP.NET | 128,113.0 | 427.0 | - | 241,638.0 | 121,016.0 | 403.0 | - |
| ASP.NET AJAX | 106,917.0 | 356.0 | - | 494,885.0 | 99,174.0 | 331.0 | - |
| Telerik | 32,462.0 | 108.0 | 21,400.0 | 88,750.0 | 5,350.0 | 17.8 | 5,350.0 |
0
Hi Lambros,
When RadScriptManager combines the content of the scripts, it performs several other operations to ensure proper work - it checks if the script has already been registered, loads it from the assembly, reads its content and adds it to the output stream, hence the low results when doing a performance test. I believe I already explained the cases when RadScriptManager usage would be better.
There is a way to avoid RadScriptManager usage and still have the page run as if it is used - you can manually combine the scripts of the controls, located on the page to a single JS file and add a <script> tag, pointing to the merged script. After that, all you need is configure IIS to compress the content of the script. The same applies to the CSS files the controls use. To disable the embedded scripts/skins, you should set the EnableEmbeddedScripts, EnableEmbeddedSkins and EnableEmbeddedBaseStylesheet properties to false.
Best wishes,
Erjan Gavalji
the Telerik team
Instantly find answers to your questions at the new Telerik Support Center
When RadScriptManager combines the content of the scripts, it performs several other operations to ensure proper work - it checks if the script has already been registered, loads it from the assembly, reads its content and adds it to the output stream, hence the low results when doing a performance test. I believe I already explained the cases when RadScriptManager usage would be better.
There is a way to avoid RadScriptManager usage and still have the page run as if it is used - you can manually combine the scripts of the controls, located on the page to a single JS file and add a <script> tag, pointing to the merged script. After that, all you need is configure IIS to compress the content of the script. The same applies to the CSS files the controls use. To disable the embedded scripts/skins, you should set the EnableEmbeddedScripts, EnableEmbeddedSkins and EnableEmbeddedBaseStylesheet properties to false.
Best wishes,
Erjan Gavalji
the Telerik team
Instantly find answers to your questions at the new Telerik Support Center
0
Lambros
Top achievements
Rank 1
answered on 27 May 2008, 03:25 PM
Hi Erjan,
I already mentioned that I am not using your RadScriptManager but the standard ASP.NET 3.5. I was just running tests without the embedded skins and base style sheets but no improvement at all.
I already mentioned that I am not using your RadScriptManager but the standard ASP.NET 3.5. I was just running tests without the embedded skins and base style sheets but no improvement at all.
0
Hi Lambros,
I'm afraid I'm missing the point here. Is the problem the difference in the scripts when using standard ASP.NET controls vs. Telerik controls? For example using RadComboBox vs using ASP DropDownList?
If this is the case, indeed, you are right - the ASP DropDownList is much faster both on the client and on the server. This comes, because RadComboBox has logic to cover its different features (e.g. load on demand, skinning, template support, different HTML for the different browsers, property sets, etc.), while the ASP DropDownList is a thin wrapper around the <select> element.
Finally I would like to note that we always strive to get the best correlation between the feature set and the performance of the controls and we hunt for the next optimization for both the server-side and the client-side operation.
Let me know if I can help with optimization advices on any control/control set you might be using.
Kind regards,
Erjan Gavalji
the Telerik team
Instantly find answers to your questions at the new Telerik Support Center
I'm afraid I'm missing the point here. Is the problem the difference in the scripts when using standard ASP.NET controls vs. Telerik controls? For example using RadComboBox vs using ASP DropDownList?
If this is the case, indeed, you are right - the ASP DropDownList is much faster both on the client and on the server. This comes, because RadComboBox has logic to cover its different features (e.g. load on demand, skinning, template support, different HTML for the different browsers, property sets, etc.), while the ASP DropDownList is a thin wrapper around the <select> element.
Finally I would like to note that we always strive to get the best correlation between the feature set and the performance of the controls and we hunt for the next optimization for both the server-side and the client-side operation.
Let me know if I can help with optimization advices on any control/control set you might be using.
Kind regards,
Erjan Gavalji
the Telerik team
Instantly find answers to your questions at the new Telerik Support Center
0
Lambros
Top achievements
Rank 1
answered on 27 May 2008, 03:56 PM
Hi Erjan,
The test is for the page serving. How long the ASP.NET page builder processes the aspx page with your controls on the form. In other words, the area that your scriptmanger affects performance when script combining is enabled. We don't really care on how many resources are linked or requested besides the .aspx page and its output. To summarize, how many requests can the site serve with your controls on our pages over a period of time. We are roughly using all your controls in our evaluation and we are trying to get as much performance as possible.
The test is for the page serving. How long the ASP.NET page builder processes the aspx page with your controls on the form. In other words, the area that your scriptmanger affects performance when script combining is enabled. We don't really care on how many resources are linked or requested besides the .aspx page and its output. To summarize, how many requests can the site serve with your controls on our pages over a period of time. We are roughly using all your controls in our evaluation and we are trying to get as much performance as possible.
0
Hi Lambros,
I understood your need. To my regret there are no much server-side optimization tips I can suggest. You might find the Optimization Tips: Testing Page Performance post useful on the matter.
Best regards,
Erjan Gavalji
the Telerik team
Instantly find answers to your questions at the new Telerik Support Center
I understood your need. To my regret there are no much server-side optimization tips I can suggest. You might find the Optimization Tips: Testing Page Performance post useful on the matter.
Best regards,
Erjan Gavalji
the Telerik team
Instantly find answers to your questions at the new Telerik Support Center