Thanks for your reply and your advices!
But maybe I prefer a "portable" solution, meaning that the solution is not tied to any specific DNN version. For example, if we upgrade to a new DNN version in the future (which can happen pretty often), we can apply our "performance enhancement" solution to the new DNN version without a lot of code change (though some moderate code change is OK).
I mean whether I can modify the architecture a bit to boost the skin performance or I give up the skin engine-drive. Is this possible and how difficulty it will be.
O the contrary, I will try my best to Optimizng DNN for speed and performance based the skin mechanism exiting.
maybe currently we can consider these optimizations as follow:
(一) One thing I have noticed is that the majority of the core modules use late binding expressions such
"<%# Databinder.Eval(Container.DataItem, "Name") %>"
to render data which uses reflection and is very slow. It would be good to our module don't use reflection to bind data to datagrids, datalists, and repeaters.
(二) One rule is to keep skin less then 10k. 5k if possible. I have done this several time for clients, and the sites still looks good.
Zero out portal.css(DNN portal default CSS) is great too.
(三) Make you've only enabled necessary schedule items e.g. if you're not the search engine functionality, disable the SearchEngineScheduler etc. These settings can be found in Host->Schedule
(四) If you're not using usersonline function, make sure it's unchecked in Host->Host Settings
(五) If you're not using the sitelog (i.e.if you're using offline statistics such as webtrends), disable it by setting it to site log history to 0. If you do have to use it, consider setting its site log buffer to a value other than 1. This will cache the results, and only write periodically to the database. You risk losing some data i.e. if you have it set to 10, and at 8, you upload a new dll, the application will recycle, and you will lost those 8 records, but it does save a lot of database writes.
(六) Use Caching, including module and tab page’s load.
( 七 ) make clean minimal skin. No heavy graphics, and ease the use of tables. If you use a skin made up with tables for layout, this will cause slower loading time .Go for a css design. That way the css will load only once when the page first loads, after that the css stay in the cache, on all other pages on your site the browser will not need to load the css from site, but from own cache. This will give you the fastest loading time
( 八 ) HttpCompression refers to a method of compressing data sent from your server then passing that data to the client browser where it is decompressed on the fly. Thus increasing the display speed of your pages by sending less data across the pipe.