The following best practices are important if you want to optimize a Power BI report that has high cross-filtering across multiple large tables.
Fine-tuning data Model Relationships: Avoid bi-directional cross-filtering whenever possible, as this may become an impediment to performance. Rather than bi-directional filtering, single-directional relationships are used, and DAX functions such as CROSSFILTER are exploited to adjust filtering behavior only on selective measures.
Streamline Data Model: Clean out the extra tables and columns that are causing bloat in the model. Use summarized tables instead of raw transaction data and have proper indexing in the data source. Star/snowflake schema modeling can greatly boost query performance.
DAX to the Rescue: Create fast DAX measures that don't rely on heavy calculations within the visuals. Try to minimize using volatile functions such as CALCULATE and FILTER in nested calculations. Instead, create pre-aggregated tables along the lines of simpler measures.