Навчальний заклад: Ліцей № 1 міста Житомира
Автор: Новицький Олексій Олександрович
Відділення: Інформаційні технології
Секція: Програмна інженерія
Область: Житомирська
Опис:
В ході мого дослідження я розглянув проблеми швидкої передачі даних між клієнтом та сервером, провів порівняльний аналіз вебсерверів Apache та Nginx. Було виявлено недоліки даних прикладів програмного забезпечення для сайтів які орієнтовані на велику кількість відвідувачів. Було запропоновано рішення використання оперативної пам’ять комп’ютера в якості сховища для кешу, оскільки вона значно швидша за будь-який накопичувач. В досліджені запропоновано власна реалізація системи керування кешем в умовах багато-поточності. Було проведено експереметальні роботи з виявлення оптимального алгоритму обробки черги на базі LRU (Least Recently Used). Був реалізований прототип на мові С++ який містить в себе такі модулі як менеджер потоків, менеджер віртуальних хостів та менеджер LRU кешу. Забезпечено також інвалідаціяю кешу. Для забезпечення повноцінної функціональності сайтів, була додана підтримка інтерпретатора PHP. Було проведено порівняння двох реалізацій керування потоками: бібліотеки Intel TBB (Threading Building Blocks), яка надає шаблон контейнерів для використання в багатопотокових середовищах та стандартної бібліотеки шаблонів C++ - STL (Standart Template Library). Результатом став розроблений веб-сервер який перевищує швидкість відповіді на HTTTP запит Apache й Nginx в більш ніж на 265% та в 6.8 разів для статичних і динамічних сторінок.