luceneplusplus / LucenePlusPlus

Lucene++ is an up to date C++ port of the popular Java Lucene library, a high-performance, full-featured text search engine.
luceneplusplus@googlegroups.com
Other
738 stars 232 forks source link

performance optimization #178

Open FishermanZzhang opened 3 years ago

FishermanZzhang commented 3 years ago

This work is really great, and it is also very important for us to carry out secondary development. However, we found that the performance does not seem to be very good, so read the code one step further. The coding is in accordance with the java style. We expect to change to c++ style. And we made some simple optimizations. We will submit it after finishing the code. But further optimization is needed.

FishermanZzhang commented 3 years ago

benchmark-game Screenshot from 2021-09-02 16-09-03

we found that the construction and destruction of smart pointers is time-consuming. perf info: Screenshot from 2021-09-03 16-08-38

FishermanZzhang commented 3 years ago

We have made some optimizations without changing any logic. And the performance has been greatly improved. But we expect better than lucene-3.0.3(java) BTW: Anyone interested in this work can contact me(allen.zhang@vectbase.com)

Screenshot from 2021-09-09 17-02-57

FishermanZzhang commented 3 years ago

@alanw We want to further accelerate the project, as fast or even faster as Java. Do you have any plan?

Cas-pian commented 3 years ago

@alanw Thanks for your nice work. I'll also submit my code to optimize the indexing performance. And we are very happy to discuss more optimizations.

sonic182 commented 2 years ago

Hi @FishermanZzhang @alanw @Cas-pian

It may be interesting to use a GC, so the pointer destruction's can be schedule for a later moment, that way it will be faster to respond the searches, also when exposed with a http api.

https://www.hboehm.info/gc/ Is a possible GC to use that is used for crystal lang


on other topic, this project could be boosted having better docs, and an http api with a json interface simmilar to ES, to make it easily usable (coud be another repo that uses this lib of course) that may boost this repo for sure

finddit commented 2 years ago

@alanw We want to further accelerate the project, as fast or even faster as Java. Do you have any plan?

I do. Forked the project to work on various aspects. Will contribute back to here once I am in a stage where it makes sense. Could take a few months.