-
Notifications
You must be signed in to change notification settings - Fork 16
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
Performance Issue with over 800k registers, suggesting using sqlite to store and dynamically query the RDL database. #45
Comments
Thanks for the feedback! In your design of 800k registers, are many of your registers instances of the same type definition? Or are they all unique? When you mention using sqlite, can you elaborate what you mean by that? Would this be client-side processing of sqlite? Or a server-side database? |
Hi Alex, I would say these registers are different from each other in the scope of fields and register at block level, and are duplicated to some extent at SoC level. So I wonder how it would compress based on the literal meanings at block level, but I am sure that some for loops of duplication can be optimized anyway. The reason I am referring to sqlite is that we actually use it in a lot of production flows as a means for compression and randomized access. I would like to take some indutrial flows as an example. ARM uses protobufs (a google format) to store the tarmac outputs and some RISC-V community uses sqlite-like DBs to similarily store the critical debugging information as an intermediate means between opening a large waveform and viewing some raw logs. I am not an expert of sqlite in the website 'frontend' (though I think it is not a big deal to open tens or hundreds of megabytes of database in modern browsers and server machines), so I am not very sure whether to make it a server-side db or client-side one, but I am sure the RDL generation and rendering flow resembles a normal sqlite access -- store a large amount of random data (literally random but somehow organized), and render or iterate over the db afterwards. |
We found two issues
|
Hi @amykyta3,
I am using the PeakRDL-html 2.10.1 and find performance issue on a website for around 800k registers (and more fields obviously) similar to #34.
There are two major issues I would like to propose:
I found this issue on older releases of this tool (maybe two years ago), but I am not sure if it is resolved in the latest build due to the issue 2 below.
In our local frontend environment, we see sqlite significantly improves the overall query performance of such large scale of register information. So I would like to suggest using sqlite to store the generated RDL database, and dynamically query and generate the detail pages and hierarchy trees, instead of statically generate them in the content folder.
I wonder if it is planned in the future release of this tool. Thank you.
The text was updated successfully, but these errors were encountered: