Whether your data has spatial index or not. If not, then try to create a spatial index to your data. The spatial index can improve the speed of rendering your data in QGIS. To create spatial index, go to layer properties -> General tab -> Create Spatial Index, as you can see below:
You can create spatial index directly from OSGEO4W Shell by adding the following command:
ogrinfo C:\Temp\SHP\TestFeatureName.shp -sql "CREATE SPATIAL INDEX ON TestFeatureName"
Another issue to consider that if you are loading your data from network. Normally loading data from network reduce the rendering time and decrease the performance.
In addition to the other answers, the feature filter legend by map content has serious impacts. From experience, it seems that both the amount of displayed features and the total number of features in the layer have impacts. Using a nation-wide road network classified by "type" (5 values) but displaying a dozen street segments, it is instantaneous when all feature types are displayed and takes a couple of seconds should they are filtered.
--> if it is enabled, try disabling it to improve performances.