Difference between revisions of "Ошибка превышения лимита времени"

From EjudgeWiki
 
(One intermediate revision by the same user not shown)
Line 11: Line 11:
 
При работе тестируемой программы возможна ситуация, когда программа не потребляет процессорного времени. Например, программа пытается считывать входные данные со стандартного потока ввода вместо чтения из файла, или выполняет какой-либо системный вызов типа sleep. В таком случае ограничение на процессорное время не позволяет снять процесс за разумное астрономическое время.
 
При работе тестируемой программы возможна ситуация, когда программа не потребляет процессорного времени. Например, программа пытается считывать входные данные со стандартного потока ввода вместо чтения из файла, или выполняет какой-либо системный вызов типа sleep. В таком случае ограничение на процессорное время не позволяет снять процесс за разумное астрономическое время.
  
Разные тестирующие системы решают эту проблему по-разному. В системе ejudge проблема решается ограниченим максимального астрономического времени (см. [[астрономическое время]]) для работы программы (см. [[serve.cfg:problem:max_real_time_limit|max_real_time_limit]]). Рекомендуется устанавливать ограничение астрономического времени в несколько раз большим, чем ограничение процессорного времени.
+
Разные тестирующие системы решают эту проблему по-разному. В системе ejudge проблема решается ограниченим максимального астрономического времени (см. [[астрономическое время]]) для работы программы (см. <tt>[[serve.cfg:problem:max_real_time_limit|max_real_time_limit]]</tt>). Рекомендуется устанавливать ограничение астрономического времени в несколько раз большим, чем ограничение процессорного времени.
 
Если превышено ограничение на астрономическое время, тестируемая программа также снимается с выполнения с диагностикой превышения лимита времени.
 
Если превышено ограничение на астрономическое время, тестируемая программа также снимается с выполнения с диагностикой превышения лимита времени.
 +
 +
Начиная с версии 2.3.25 [[ошибка превышения лимита реального времени|превышение лимита реального времени]] диагностируется как отдельная ошибка.

Latest revision as of 06:00, 16 November 2012

Навигация: Главная страница/Система ejudge/Использование/Вердикты тестирования/Ошибка превышения лимита времени

Английское название: Time-Limit Exceeded, TL

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

При подсчёте времени работы тестируемой программы учитывается только процессорное время (то есть сумма времени, проведённого в режиме пользователя и в режиме ядра). Это позволяет практически избежать влияния флуктуаций времени выполнения, возможных в многопроцессной системе.

Традиционно ограничение времени для задачи задаётся в секундах на тест, но система ejudge допускает задание времени и в миллисекундах.

При работе тестируемой программы возможна ситуация, когда программа не потребляет процессорного времени. Например, программа пытается считывать входные данные со стандартного потока ввода вместо чтения из файла, или выполняет какой-либо системный вызов типа sleep. В таком случае ограничение на процессорное время не позволяет снять процесс за разумное астрономическое время.

Разные тестирующие системы решают эту проблему по-разному. В системе ejudge проблема решается ограниченим максимального астрономического времени (см. астрономическое время) для работы программы (см. max_real_time_limit). Рекомендуется устанавливать ограничение астрономического времени в несколько раз большим, чем ограничение процессорного времени. Если превышено ограничение на астрономическое время, тестируемая программа также снимается с выполнения с диагностикой превышения лимита времени.

Начиная с версии 2.3.25 превышение лимита реального времени диагностируется как отдельная ошибка.