Sobes.tech
Junior — Middle

Соңғы сәтті орындаған тапсырмаңыз туралы айтып беріңіз және оған қалай қарайтыныңызды сипаттаңыз.

sobes.tech AI

AI-дан жауап

Жақында мен үлкен деректерді өңдейтін және баяу жұмыс істейтін Java-қосымшасының өнімділігін оңтайландыру мәселесін шештім.

Қадамдар:

  1. VisualVM көмегімен профилирлеу жүргізіп, негізгі тұйық жерлерді анықтадым.
  2. Уақыттың көп бөлігі объектілерді жиі құрып, жоятын процеске кететінін анықтадым.
  3. Құрылымдарды қайта пайдалану және пул қолдану арқылы кодтың бір бөлігін қайта жаздым, бұл жад жинағыштың жүктемесін азайтты.
  4. сұрыптау және сүзгілеу алгоритмдерін оңтайландырдым, оларды тиімдірек деректер құрылымдарына (мысалы, LinkedList-ті ArrayList-ке) ауыстырдым.
  5. Деректерді параллель өңдеу үшін ExecutorService қолдана отырып, көп ағынды өңдеуді қостым.

Нәтижесінде өңдеу уақыты шамамен 3 есе қысқарды, ал қосымша жауап беретін және тұрақты болды.