You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
There is a request to /template/field/undefined fix: do not extract fields for blank template server#53477
This is most likely because the empty/default template uses a technically "invalid" negative integer file ID, so it is not a real file and therefore cannot have its fields extracted.
There are two WebDAV requests happening on the same file when it is opening
It seems like the Viewer app along with Richdocuments both send WebDAV requests to get file metadata/info, so while the Viewer API is still being refactored, we can try to find ways to reuse the file information in Richdocuments to avoid this second request.
The /token endpoint seems to takes a while
We can profile it in the backend with something like Blackfire to see if there is anything to be improved there
We can also take a closer look at any potential backend performance issues using the built-in profiler app
Also adding some screenshots for further reference
Total for opening a file after clicking on it
Just the Nextcloud side until the cool.html iframe is loaded 388ms
cool.html loading until document is shown and ui is rendered 1711ms
A few more observations:
I do not see any frontend side blocking scripts or network requests for Collabora so the question is probably what happens in the backend requests between both servers (as already noted as a last point)
Collabora: At the end we have some layout shift as the sidebar is showing and that is animated
Should we not hide it by default on load or can we not animate it
To save the webdav request after nextcloud/viewer#2989 we can actually reuse the Node object from the viewer and do not need to do another webdav propfind. This also means we can clean up quite some code for the files app integration
Ooh - the cool.html loading is too long indeed; do we have timings for the various WOPI fetches that go on for settings etc. behind the scenes there ? and I assume this is a bundled product build (the development build fragments the JS into hundreds of files which are slower to load separately) =) Thanks for chasing this!
I cannot easily visualize but it seems the document rendering is only finished after the last settings request has succeeded, but not fully sure about this part.
The request time of 120-150ms is reasonably good for a Nextcloud request, especially for the ones that need to access the file system and setup possibly complex mount point scenarios with shares
optimizing that is continuous effort and nothing that can easily be improved
However a few things that stand out:
Why are we loading odp templates here as the last one?
Why is browsersetting.json and xcu/documentView.xcu requested twice?
Is the document loading delayed until all those requests are finished?
Regarding those user / system settings, can we tell how often they are really updated? Currently we store them on disk, but it may be wise to have some in memory caching in between
Activity
elzody commentedon Jun 12, 2025
@juliusknorr and I spent some time analyzing the frontend profiling I did and found at least three things so far that should be looked into:
There is a request to
/template/field/undefinedfix: do not extract fields for blank template server#53477
This is most likely because the empty/default template uses a technically "invalid" negative integer file ID, so it is not a real file and therefore cannot have its fields extracted.
There are two WebDAV requests happening on the same file when it is opening
It seems like the Viewer app along with Richdocuments both send WebDAV requests to get file metadata/info, so while the Viewer API is still being refactored, we can try to find ways to reuse the file information in Richdocuments to avoid this second request.
The
/tokenendpoint seems to takes a whileWe can profile it in the backend with something like Blackfire to see if there is anything to be improved there
We can also take a closer look at any potential backend performance issues using the built-in profiler app
juliusknorr commentedon Jun 13, 2025
Also adding some screenshots for further reference
Total for opening a file after clicking on it
Just the Nextcloud side until the cool.html iframe is loaded 388ms
cool.html loading until document is shown and ui is rendered 1711ms
A few more observations:
juliusknorr commentedon Oct 22, 2025
To save the webdav request after nextcloud/viewer#2989 we can actually reuse the Node object from the viewer and do not need to do another webdav propfind. This also means we can clean up quite some code for the files app integration
mmeeks commentedon Oct 22, 2025
Ooh - the cool.html loading is too long indeed; do we have timings for the various WOPI fetches that go on for settings etc. behind the scenes there ? and I assume this is a bundled product build (the development build fragments the JS into hundreds of files which are slower to load separately) =) Thanks for chasing this!
juliusknorr commentedon Oct 22, 2025
Yes, that was on a production build with bundled js files.
I guess settings fetching is worth to investigate, from some production access logs, last number is the request time:
I cannot easily visualize but it seems the document rendering is only finished after the last settings request has succeeded, but not fully sure about this part.
juliusknorr commentedon Oct 22, 2025
Regarding those user / system settings, can we tell how often they are really updated? Currently we store them on disk, but it may be wise to have some in memory caching in between