Обмежені бюджети парсера PDF

Бюджети парсера в межах документа зупиняють ворожий чи пошкоджений вхід до того, як побудова токенів, сукупна робота з токенами, ріст масивів чи словників або повторювані пошкоджені токени вичерпають надмірні ресурси

Типові значення сумісності

Встановіть будь-яку межу в нуль, щоб вимкнути цю окрему межу

Від'ємні значення кидають ERangeError

Строга політика

ApplyStrictParserBudgetPolicy обирає межу токенів 1 МБ, 100 000 сумарних токенів, 10 000 записів контейнерів та 8 пошкоджених токенів

PDF.ApplyStrictParserBudgetPolicy;
try
  PDF.LoadFromFile(UntrustedFileName);
except
  on E: EHPDFParserBudgetExceeded do
    LogParserRejection(E.Limit, E.Observed, E.Maximum);
end;

ResetParserBudgetPolicy відновлює типові значення сумісності

Помилка та телеметрія

Порушена межа кидає EHPDFParserBudgetExceeded із значеннями Limit, Observed та Maximum

THPDFParserBudgetLimit ідентифікує pblTokenBytes, pblTotalTokens, pblContainerItems або pblBadTokens

GetLastParserBudgetStatistics повертає знімок THPDFParserBudgetStatistics із налаштованими межами, лічильниками токенів і пошкоджених токенів, піковими розмірами токенів і контейнерів, інформацією про порушення та валідністю сеансу

Винятки бюджету залишаються термінальними в сучасному розборі, традиційному розборі, відновленні перехресних посилань та ізоляції збоїв по об'єктах

Затвор продуктивності

Затвор регресу Win32 відхиляє токен 2 МБ за 215 мс при піковій пам'яті 34 476 032 байти та відхиляє контейнер з одним мільйоном токенів за 199 мс при піковій пам'яті 36 839 424 байти

Дивіться також: ApplyStrictParserBudgetPolicy, ResetParserBudgetPolicy, GetLastParserBudgetStatistics, Масштабоване завантаження