You can do following to reduce your page load time:
For Initial analysis of time load for a page, have CQ OOTB Timing component added to the page as it reports the time taken by each component to load and a page.
If you components are dependent on webservice or other layers apart from CQ to process and display content then if possible, have them as REST calls done via AJAX, this would reduce server side rendering time.
If at all you are going to write sling filters then as they intercept every request define the entry condition before you start processing your request in filters and exit from it as soon as possible.
Above point applies to Event listeners as well.
Use filters and listeners only when needed as they may cause lower down your server performance.
I know, we have to go to the Felix Console and click on “Configuration”. The Bundle to configure is the “Apache Sling Main Servlet” (PID org.apache.sling.engine.impl.SlingMainServlet) and the property, as you may guess “Number of Requests to Record” (sling.max.record.requests). Set it to your desired value.
Question: but after the configuration how do we track and debug the requests.