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

From EjudgeWiki
 
 
(5 intermediate revisions by the same user not shown)
Line 1: Line 1:
Английское название: [[Time-limit exceeded]].
+
Навигация: [[Main Page|Главная страница]]/[[Система ejudge]]/[[Использование]]/[[Вердикты тестирования]]/[[Ошибка превышения лимита времени]]
 +
 
 +
Английское название: [[Time-Limit Exceeded]], [[TL]]
  
 
Данная ошибка диагностируется тестирующей системой, когда тестируемая программа работает на одном тесте дольше, чем указано в ограничениях задачи.
 
Данная ошибка диагностируется тестирующей системой, когда тестируемая программа работает на одном тесте дольше, чем указано в ограничениях задачи.
Line 7: Line 9:
 
Традиционно ограничение времени для задачи задаётся в секундах на тест, но система ejudge допускает задание времени и в миллисекундах.
 
Традиционно ограничение времени для задачи задаётся в секундах на тест, но система ejudge допускает задание времени и в миллисекундах.
  
При работе тестируемой программы возможна ситуация, когда программа не потребляет процессорного времени. Например, программа пытается считывать со стандартного потока ввода вместо чтения из файла, или выполняет какой-либо системный вызов типа sleep. В таком случае ограничение на процессорное время не позволяет снять процесс за разумное астрономическое время.
+
При работе тестируемой программы возможна ситуация, когда программа не потребляет процессорного времени. Например, программа пытается считывать входные данные со стандартного потока ввода вместо чтения из файла, или выполняет какой-либо системный вызов типа sleep. В таком случае ограничение на процессорное время не позволяет снять процесс за разумное астрономическое время.
  
Разные тестирующие системы решают эту проблему по-разному. В системе ejudge проблема решается ограниченим максимального астрономического времени для работы программы (см. [[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 превышение лимита реального времени диагностируется как отдельная ошибка.