I have just done some testing with my app which relies heavily on linked rows and this simple change has had a massive increase on performance. The server code and timing below shows seconds taken across the server call, the repeating panel population and the drop down list population respectively
Before:
data['docs'] = app_tables.documents.search()
Docs starting call 3.63272
repeat panel 13.77057
pop dds 0.002875
After:
data['docs'] = app_tables.documents.search()
data['docs'] = [dict(row) for row in docs]
Docs starting call 3.593985
repeat panel 2.95227
pop dds 0.00303
Epic!!
Edit: Updated code to reflect @jonathan.falk and @stucork’s updates above and below. Timing is still accurate