ОПТИМІЗАЦІЯ ВИКОРИСТАННЯ ПАМ’ЯТІ РЕАЛІЗАЦІЯМИ БАЗОВОГО МЕТОДУ CORDEGEN - ЮСИН, ЯКІВ (Herald of Khmelnytskyi National University. Technical sciences, 2025)
Ця робота присвячена задачі генерування корпусів текстів «на вимогу» в якості вхідних даних для вирішення задач програмної інженерії під час розроблення інформаційних систем для їх обробки. Одним із методів, що вирішує таку задачу, є базовий метод CorDeGen, проте, як показав проведений аналіз, практично жодна із існуючих робіт не розглядає питання оптимізації практичних метрик програмних реалізацій цього методу, таких як використання пам’яті. Лише деякі роботи пропонують попередньо виділяти пам’ять для генерованих текстів «з надлишком», щоб спростити та пришвидшити процес генерування за рахунок видалення зайвих перевірок та постійного виділення пам’яті. Але такий підхід, реалізований у вигляді швидкої евристичної формули, призводить до збільшеного використання пам’яті у більшості випадків.Для вирішення цього недоліку в роботі запропоновано формулу точної оцінки довжини кожного тексту за його порядковим індексом в залежності від вхідних параметрів базового методу CorDeGen (кількості унікальних термів). Ця формула враховує множину термів, що потрапляють до певного тексту, їх довжини, кількість входжень кожного, а також довжини роздільників між входженнями одного терму та між різними термами.Проведена експериментальна перевірка показала ефективність використання запропонованої формули точної оцінки довжини тексту у частині зменшення споживання пам’яті еталонною реалізацією базового методу CorDeGen та його паралельних модифікацій. Ефективність збільшується із розміром корпусу – від 3% для маленьких до 10% для надвеликих корпусів у порівнянні із використанням існуючої швидкої евристичної формули. При цьому ступінь уповільнення процесу генерування зменшується із збільшенням корпусу – від 17 до 6 відсотків на тих самих розмірах. На практиці, зменшення споживання пам’яті за рахунок збільшення «чистого» часу генерування може бути особливо корисним для систем із малою чи обмеженою кількістю доступної пам’яті, для уникнення її перевикористання.