Search engine technologies are complex pieces of software that require thorough profiling tools. We chose to use Puffin, which the Rust gaming industry uses extensively. You can export and import the profiling reports using the top bar's File menu options in Puffin Viewer.
When you enable the exportPuffinReports
experimental feature of Meilisearch, Puffin reports with the .puffin
extension will be automatically exported to disk. When this option is enabled, the engine will automatically create a "frame" whenever it executes the IndexScheduler::tick
method.
Puffin Viewer is used to analyze the reports. Those reports show areas where Meilisearch spent time during indexing.
Another piece of advice on the Puffin viewer UI interface is to consider the Merge children with same ID option. It can hide the exact actual timings at which events were sent. Please turn it off when you see strange gaps on the Flamegraph. It can help.
We still need to take the time to profile the search side of the engine with Puffin. It would require time to profile the filtering phase, query parsing, creation, and execution. We could even profile the Actix HTTP server.
The only issue we see is the framing system. Puffin requires a global frame-based profiling phase, which collides with Meilisearch's ability to accept and answer multiple requests on different threads simultaneously.
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。