08Plagiato aptikimas — našumo perrašymas·2020

Plagiato aptikimas

Perrašiau pagrindinį algoritmą iki ~12× greitesnio aptikimo milijonų dokumentų bazėje.

C++ branduolysPanašumo paieška~12x pagreitėjimasMilijonai dokumentųAlgoritmo perrašymas
Problema

Plagiato aptikimo sistema, naudota daugelyje universitetų, dideliame dokumentų kiekyje veikė per lėtai.

Ką padariau

Savo iniciatyva perrašiau pagrindinį panašumo paieškos algoritmą: vietoje įdėtų ciklų panaudojau raktinių žodžių paieškos struktūrą (~9× greičiau), tada branduolį perrašiau C++ kalba ir integravau su PHP sistema produkcijoje, pasiekdamas ~12× pagreitėjimą.

Rezultatas

~12× greitesnis aptikimas milijonų dokumentų bazėje, naudotoje daugelyje universitetų.

Svarbiausia
  • Įdėtus ciklus pakeičiau raktinių žodžių paieškos struktūra — ~9× greitesnis aptikimas.
  • C++ branduolys produkcijoje, integruotas su PHP sistema — ~12× pagreitėjimas.
Prieš
Po (C++)~12×
~12×
~12× greitesnis aptikimas milijonų dokumentų bazėje, naudotoje daugelyje universitetų.