-
Notifications
You must be signed in to change notification settings - Fork 11
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Solar device list page can be very slow to load #1848
Comments
This is dependent on #1574, which will rework the solar device list. |
blammit
added a commit
that referenced
this issue
Jan 23, 2025
Add SolarInputModel to store the data for each tracker and PV inverter entry in the list. This allows the ListView to just create one list item for each entry in the model, instead of creating complex delegates with Column+Repeater objects when showing multiple trackers for a single solarcharger/multi/inverter service. Also, the model sorts its items to allow the use of ListView sections for creating the column headers. This makes the list load and scroll more quickly, especially when it contains a large number of trackers. Also, remove the tracker list from SolarDevice.qml as it is only required in specific pages, and those can load their own SolarTracker objects when needed. Part of #1848
blammit
added a commit
that referenced
this issue
Jan 27, 2025
Add SolarInputModel to store the data for each tracker and PV inverter entry in the list. This allows the ListView to just create one list item for each entry in the model, instead of creating complex delegates with Column+Repeater objects when showing multiple trackers for a single solarcharger/multi/inverter service. Also, the model sorts its items to allow the use of ListView sections for creating the column headers. This makes the list load and scroll more quickly, especially when it contains a large number of trackers. Also, remove the tracker list from SolarDevice.qml as it is only required in specific pages, and those can load their own SolarTracker objects when needed. Part of #1848
blammit
added a commit
that referenced
this issue
Jan 27, 2025
Add SolarInputModel to store the data for each tracker and PV inverter entry in the list. This allows the ListView to just create one list item for each entry in the model, instead of creating complex delegates with Column+Repeater objects when showing multiple trackers for a single solarcharger/multi/inverter service. Also, the model sorts its items to allow the use of ListView sections for creating the column headers. This makes the list load and scroll more quickly, especially when it contains a large number of trackers. Also, remove the tracker list from SolarDevice.qml as it is only required in specific pages, and those can load their own SolarTracker objects when needed. Fixes #1848
blammit
added a commit
that referenced
this issue
Jan 28, 2025
Add SolarInputModel to store the data for each tracker and PV inverter entry in the list. This allows the ListView to just create one list item for each entry in the model, instead of creating complex delegates with Column+Repeater objects when showing multiple trackers for a single solarcharger/multi/inverter service. Also, the model sorts its items to allow the use of ListView sections for creating the column headers. This makes the list load and scroll more quickly, especially when it contains a large number of trackers. Also, remove the tracker list from SolarDevice.qml as it is only required in specific pages, and those can load their own SolarTracker objects when needed. Rename SolarDeviceListPage to SolarInputListPage, as it shows a list of trackers and PV inverters, rather than a list of SolarDevice items. Fixes #1848
blammit
added a commit
that referenced
this issue
Jan 28, 2025
Add SolarInputModel to store the data for each tracker and PV inverter entry in the list. This allows the ListView to just create one list item for each entry in the model, instead of creating complex delegates with Column+Repeater objects when showing multiple trackers for a single solarcharger/multi/inverter service. Also, the model sorts its items to allow the use of ListView sections for creating the column headers. This makes the list load and scroll more quickly, especially when it contains a large number of trackers. Also, remove the tracker list from SolarDevice.qml as it is only required in specific pages, and those can load their own SolarTracker objects when needed. Rename SolarDeviceListPage to SolarInputListPage, as it shows a list of trackers and PV inverters, rather than a list of SolarDevice items. Fixes #1848
blammit
added a commit
that referenced
this issue
Jan 28, 2025
Add SolarInputModel to store the data for each tracker and PV inverter entry in the list. This allows the ListView to just create one list item for each entry in the model, instead of creating complex delegates with Column+Repeater objects when showing multiple trackers for a single solarcharger/multi/inverter service. Also, the model sorts its items to allow the use of ListView sections for creating the column headers. This makes the list load and scroll more quickly, especially when it contains a large number of trackers. Also, remove the tracker list from SolarDevice.qml as it is only required in specific pages, and those can load their own SolarTracker objects when needed. Rename SolarDeviceListPage to SolarInputListPage, as it shows a list of trackers and PV inverters, rather than a list of SolarDevice items. Fixes #1848
blammit
added a commit
that referenced
this issue
Jan 28, 2025
Add SolarInputModel to store the data for each tracker and PV inverter entry in the list. This allows the ListView to just create one list item for each entry in the model, instead of creating complex delegates with Column+Repeater objects when showing multiple trackers for a single solarcharger/multi/inverter service. Also, the model sorts its items to allow the use of ListView sections for creating the column headers. This makes the list load and scroll more quickly, especially when it contains a large number of trackers. Also, remove the tracker list from SolarDevice.qml as it is only required in specific pages, and those can load their own SolarTracker objects when needed. Rename SolarDeviceListPage to SolarInputListPage, as it shows a list of trackers and PV inverters, rather than a list of SolarDevice items. Fixes #1848
blammit
added a commit
that referenced
this issue
Jan 28, 2025
Add SolarInputModel to store the data for each tracker and PV inverter entry in the list. This allows the ListView to just create one list item for each entry in the model, instead of creating complex delegates with Column+Repeater objects when showing multiple trackers for a single solarcharger/multi/inverter service. Also, the model sorts its items to allow the use of ListView sections for creating the column headers. This makes the list load and scroll more quickly, especially when it contains a large number of trackers. Also, remove the tracker list from SolarDevice.qml as it is only required in specific pages, and those can load their own SolarTracker objects when needed. Rename SolarDeviceListPage to SolarInputListPage, as it shows a list of trackers and PV inverters, rather than a list of SolarDevice items. Fixes #1848
blammit
added a commit
that referenced
this issue
Jan 28, 2025
Add SolarInputModel to store the data for each tracker and PV inverter entry in the list. This allows the ListView to just create one list item for each entry in the model, instead of creating complex delegates with Column+Repeater objects when showing multiple trackers for a single solarcharger/multi/inverter service. Also, the model sorts its items to allow the use of ListView sections for creating the column headers. This greatly improves the list loading performance when there are a large number of trackers or PV inverters. Also, remove the tracker list from SolarDevice.qml as it is only required in specific pages, and those can load their own SolarTracker objects when needed. Rename SolarDeviceListPage to SolarInputListPage, as it shows a list of trackers and PV inverters, rather than a list of SolarDevice items. Fixes #1848
blammit
added a commit
that referenced
this issue
Jan 30, 2025
Add SolarInputModel to store the data for each tracker and PV inverter entry in the list. This allows the ListView to just create one list item for each entry in the model, instead of creating complex delegates with Column+Repeater objects when showing multiple trackers for a single solarcharger/multi/inverter service. Also, the model sorts its items to allow the use of ListView sections for creating the column headers. This greatly improves the list loading performance when there are a large number of trackers or PV inverters. Also, remove the tracker list from SolarDevice.qml as it is only required in specific pages, and those can load their own SolarTracker objects when needed. Rename SolarDeviceListPage to SolarInputListPage, as it shows a list of trackers and PV inverters, rather than a list of SolarDevice items. Fixes #1848
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
See https://victrondevelopment.slack.com/archives/C020QG3JVEW/p1736945953241439
SolarDeviceListPage is using Column+Repeater for trackers, as a convenience to include custom headers for "PV chargers" vs "PV inverters" in the view, but this is likely causing the performance issues reported in the thread (with e.g. 30 devices), because:
Just fixing 1) should make a noticeable difference in a long list, but it would be best to fix 2) as well.
To reproduce this in mock mode on device, set the configuration to show at least 20 trackers.
The text was updated successfully, but these errors were encountered: