Site Optimization Framework To Boost Your Website Performance Using AEM
Join the DZone community and get the full member experience.Join For Free
I often found that there are issues observed post-implementation due to not following the best practices recommended by Adobe.
What Causes Performance Issues
- Thread contention — long-running requests such as slow searches, write-heavy background jobs, moving of whole branches of site content, etc.
- High CPU utilization.
- Expensive requests such as expensive searches or inefficient application code, components, etc.
- Lack of proper maintenance.
- Insufficient dispatcher caching.
- Lack of CDN.
- Lack of browser caching.
- Too many scripts loaded on-page and loaded at top of the page.
- CSS loaded throughout the page instead of in the HTML head.
- Insufficient server sizing or incorrect architecture.
- Unoptimized taxonomy and DAM assets.
Solution — Site Optimization Framework shows how to boost your website performance.
I came across an article the other day about website optimization performance technique and thought of sharing some of the interesting facts.
1. Let Others Eat the Junk (Do Not Enter Each Fast Food Restaurant You Come Across)
2. Do Intensive Sports Regularly; Run Fast Until You Reach Your Limit
Use SSD discs for performant I/O and try to keep the Index in Memory. Leverage caching for repository intense operations that retrieve data, you can store the results and only update them via a listener on the affected nodes. If you are already on an Oak based implementation and search items using custom properties, remember to create Oak Index entries for them.
3. Do Not Argue or Make Excuses for Not Exercising in the Past but Instead, Use That Time for Sports!
Disable Versioning on replication if not needed. Also, disable the generation of audit entries if not needed. This will reduce the amount of I/O generated. We advise the editors to deliberately create a new version with a proper comment when they want to store a version.
4. Make No Excuses About Being Too Busy, Instead, Focus on the Most Important Stuff and Only That, so You Are Freed up for Sports
Keep your amount of Inbox entries low! Especially Granite TouchUI will not render when entries with more than 200.000 characters occur. Also, the retrieval of these entries, in general, is still in constant optimization so it is good practice to regularly go through them to reduce their number.
5. Lost Weight and Gained Power? Move on to the Next Level!
Optimize Java VM settings regarding Garbage Collection and Heap sizing regularly. Each release should have required load tests that are compared with the previous version. Monitor and check GC Logs and see how these compare over versions. In case a lot of Garbage Collection events occur, it is crucial to take heap dumps and analyze them. Leverage the power of profilers to learn about bottlenecks in your implementation.
Opinions expressed by DZone contributors are their own.