Difference between revisions of "Ошибка превышения лимита времени"
Line 7: | Line 7: | ||
Традиционно ограничение времени для задачи задаётся в секундах на тест, но система ejudge допускает задание времени и в миллисекундах. | Традиционно ограничение времени для задачи задаётся в секундах на тест, но система ejudge допускает задание времени и в миллисекундах. | ||
− | При работе тестируемой программы возможна ситуация, когда программа не потребляет процессорного времени. Например, программа пытается считывать со стандартного потока ввода вместо чтения из файла, или выполняет какой-либо системный вызов типа sleep. В таком случае ограничение на процессорное время не позволяет снять процесс за разумное астрономическое время. | + | При работе тестируемой программы возможна ситуация, когда программа не потребляет процессорного времени. Например, программа пытается считывать входные данные со стандартного потока ввода вместо чтения из файла, или выполняет какой-либо системный вызов типа sleep. В таком случае ограничение на процессорное время не позволяет снять процесс за разумное астрономическое время. |
− | Разные тестирующие системы решают эту проблему по-разному. В системе ejudge проблема решается ограниченим максимального астрономического времени для работы программы (см. [[max_real_time_limit]]). Рекомендуется устанавливать ограничение астрономического времени в несколько раз большим, чем ограничение процессорного времени. | + | Разные тестирующие системы решают эту проблему по-разному. В системе ejudge проблема решается ограниченим максимального астрономического времени (см. [[астрономическое время]]) для работы программы (см. [[max_real_time_limit]]). Рекомендуется устанавливать ограничение астрономического времени в несколько раз большим, чем ограничение процессорного времени. |
Если превышено ограничение на астрономическое время, тестируемая программа также снимается с выполнения с диагностикой превышения лимита времени. | Если превышено ограничение на астрономическое время, тестируемая программа также снимается с выполнения с диагностикой превышения лимита времени. |
Revision as of 09:22, 19 November 2006
Английское название: Time-limit exceeded.
Данная ошибка диагностируется тестирующей системой, когда тестируемая программа работает на одном тесте дольше, чем указано в ограничениях задачи.
При подсчёте времени работы тестируемой программы учитывается только процессорное время (то есть сумма времени, проведённого в режиме пользователя и в режиме ядра). Это позволяет практически избежать влияния флуктуаций времени выполнения, возможных в многопроцессной системе.
Традиционно ограничение времени для задачи задаётся в секундах на тест, но система ejudge допускает задание времени и в миллисекундах.
При работе тестируемой программы возможна ситуация, когда программа не потребляет процессорного времени. Например, программа пытается считывать входные данные со стандартного потока ввода вместо чтения из файла, или выполняет какой-либо системный вызов типа sleep. В таком случае ограничение на процессорное время не позволяет снять процесс за разумное астрономическое время.
Разные тестирующие системы решают эту проблему по-разному. В системе ejudge проблема решается ограниченим максимального астрономического времени (см. астрономическое время) для работы программы (см. max_real_time_limit). Рекомендуется устанавливать ограничение астрономического времени в несколько раз большим, чем ограничение процессорного времени. Если превышено ограничение на астрономическое время, тестируемая программа также снимается с выполнения с диагностикой превышения лимита времени.