Server-side processing (performance)
In preparation for the next release of the Vulkan Hardware Capability Viewer I published a major change to the Vulkan online hardware database at http://vulkan.gpuinfo.org/.
Up until now all data was handled client-side, so when loading up the report listing all reports were fetched and displayed by the client. While this was more or less fine in the beginning, delivering all reports to the client even if only the 25 newest ones were visible now takes several seconds (even on a fast connection) and fetching all rows for each visitor is also putting strain on the database.
So I updated the report listing page (that does pretty much all the heavy lifting) to use server-side processing. So instead of the client fetching all data and handling paging, ordering, sorting and filtering this is now done by the database (that’s what databases are best at after all).
This means that from now only visible data is delivered to the client with the database (back-end) doing all the heavy lifting.
While the biggest and most obvious improvement are the faster page loading times, I also used this opportunity to add a few things that had been on my to-do list for a long time that could be easily achieved with server-side processing.
Improved filtering
The old column filtering drop downs have been replaced with text inputs (using SQL’s like operator). Filtering the report list is now much more flexible as all column filters are combined to form a final result set.
Result toggles
Not directly related to the server-side change I also added toggle links to the listing of reports by extensions, features, formats, etc. so you can now quickly toggle between e.g. the list of all reports supporting an extension and the list of reports not supporting it.