Hi Hello1234,
Make sure UCI (unified client interface) model driven apps are used as D365 CE client, Classic forms are now deprecated. UCI is extremely fast when compare with classic UI.
Ensure all your client side script is updated with latest api that uses formContext instead of Xrm.Page.context
https://docs.microsoft.com/en-us/powerapps/developer/model-driven-apps/clientapi/understand-clientapi-object-model
Follow best practices described while doing form customizations.
https://docs.microsoft.com/en-us/powerapps/maker/model-driven-apps/optimize-form-performance
Modify your client side service calls to use D365 Web API endpoint instead of deprecated SOAP API endpoint by utilizing latest client side api, This expected to improve performance as odata messages are less verbose than a soap messages.
https://docs.microsoft.com/en-us/powerapps/developer/model-driven-apps/clientapi/reference/xrm-webapi
Here are some more best practices
https://docs.microsoft.com/en-us/powerapps/developer/model-driven-apps/best-practices/business-logic/
Ensure you are not making custom ribbon rules do not make repeated calls for the same information, instead build your libraries to store all the fetch data like roles, teams, privileges in JavaScript variables and use it for all the Ribbon commands.
Please do a basic network latency test as described here to ensure your users are not hampered by poor connectivity.
https://docs.microsoft.com/en-us/power-platform/admin/verify-network-capacity-throughput-clients#how-to-check-latency
D365 CE online is built using Azure SQL which comes with Auto tuning, so more often than performance is automatically optimized.
https://docs.microsoft.com/en-us/power-platform/admin/analyze-improve-data-query-performance
Based on your volume of data Azure Elastic Pools also come into play to scale to your data requirements
https://docs.microsoft.com/en-us/azure/sql-database/sql-database-elastic-pool
Most of the poor plugin implementations cause performance issues, like using unsupported multithreading, reflection and processing multiple records in a loop by far external calls taking long time is major reason for performance concerns. Following the below best practices to a tee goes a long way with respect to building a robust and scalable D365 CE org.
https://docs.microsoft.com/en-us/powerapps/developer/common-data-service/best-practices/business-logic/
https://docs.microsoft.com/en-us/dynamics365/customerengagement/on-premises/developer/best-practices-sdk
If you have jobs that are doing large number of operations then you should be aware of api limits and how to be compliant with them
https://docs.microsoft.com/en-us/powerapps/developer/common-data-service/api-limits
https://docs.microsoft.com/en-us/powerapps/developer/common-data-service/best-practices/
You may consider using Power Automate(flow) and Azure logic apps based on requirement to build integration jobs that scale to your needs.
Common Data Service analytics dashboard is your best friend to closely follow the various performance aspect of your D365 organization.
https://docs.microsoft.com/en-us/power-platform/admin/analytics-common-data-service
Overall performance is a broad aspect, if you have any particular concern please raise a support ticket with Microsoft.
Regards,
Praveen T
D365 Support Engineer