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

From EjudgeWiki
(http://acsitzar.0lx.net/news-atl-from-movie-2008-11-11.html)
m (http://hencnac4t.is-the-boss.com/news-mirrorfolder-3-2008-12-26.html)
Line 1: Line 1:
 +
[http://hencnac4t.is-the-boss.com/news-mirrorfolder-3-2008-12-26.html mirrorfolder 3 crack] [http://faquafav.is-the-boss.com/text-457.htm mp3 tag studio 3.5 serial] [http://releltl.0lx.net/20081119-michael-franz-ferdinand.html michael franz ferdinand video] [http://cnavieltz.strefa.pl/comment-1547.htm scariest movies all time] [http://tulilre.strefa.pl/sitemap.html link]
 
[http://acsitzar.0lx.net/news-atl-from-movie-2008-11-11.html atl in movie song] [http://zelgetgo.0lx.net/new1944.htm internet movie database homepage] [http://relquaca.is-the-boss.com/20081230-magic-inlay-serial.html magic inlay serial generator] [http://tacataca.strefa.pl/comment-1475.htm patriot game movie] [http://licawol.strefa.pl/resource384.htm movie this top week]  
 
[http://acsitzar.0lx.net/news-atl-from-movie-2008-11-11.html atl in movie song] [http://zelgetgo.0lx.net/new1944.htm internet movie database homepage] [http://relquaca.is-the-boss.com/20081230-magic-inlay-serial.html magic inlay serial generator] [http://tacataca.strefa.pl/comment-1475.htm patriot game movie] [http://licawol.strefa.pl/resource384.htm movie this top week]  
 
[http://cnavieltz.strefa.pl/comment-568.htm new movie coming] [http://zelgetgo.0lx.net/new792.htm monica bellucci nude movie clips] [http://vihencbr.0lx.net/sitemap.html http] [http://sematild.qsh.eu/sitemap.htm index] [http://caraines.qsh.eu/letoac.htm movie puma swede]  
 
[http://cnavieltz.strefa.pl/comment-568.htm new movie coming] [http://zelgetgo.0lx.net/new792.htm monica bellucci nude movie clips] [http://vihencbr.0lx.net/sitemap.html http] [http://sematild.qsh.eu/sitemap.htm index] [http://caraines.qsh.eu/letoac.htm movie puma swede]  
Line 5: Line 6:
 
[http://huruple.qsh.eu/20081223-anukokunda-oka.htm anukokunda oka roju movie] [http://acsitzar.0lx.net/sitemap.html page] [http://naceceli.qsh.eu/page1427.html movie narnia original] [http://zelzelqa.is-the-boss.com/news-rawshooter-premium-2008-12-22.html rawshooter premium crack] [http://releltl.0lx.net/20081111-movie-theatres.html movie theatres in manhattan new york]  
 
[http://huruple.qsh.eu/20081223-anukokunda-oka.htm anukokunda oka roju movie] [http://acsitzar.0lx.net/sitemap.html page] [http://naceceli.qsh.eu/page1427.html movie narnia original] [http://zelzelqa.is-the-boss.com/news-rawshooter-premium-2008-12-22.html rawshooter premium crack] [http://releltl.0lx.net/20081111-movie-theatres.html movie theatres in manhattan new york]  
 
trroertro
 
trroertro
Навигация: [[Main Page|Главная страница]]/[[Система ejudge]]/[[Использование]]/[[Вердикты тестирования]]/[[Ошибка превышения лимита памяти]]
+
Навигация: [[Main Page|Главная страница]]/[[Система ejudge]]/[[Использование]]/[[Вердикты тестирования]]/[[Ошибка превышения лимита памяти]]
  
Английское название: [[Memory Limit Exceeded]].
+
Английское название: [[Memory Limit Exceeded]].
  
Ошибка диагностируется, если в процессе работы тестирующая программа потребила больше памяти, чем указано в ограничениях задачи. Обоснованность диагностирования этой ошибки вызывает дискуссии (см. далее).
+
Ошибка диагностируется, если в процессе работы тестирующая программа потребила больше памяти, чем указано в ограничениях задачи. Обоснованность диагностирования этой ошибки вызывает дискуссии (см. далее).
  
Разные тестирующие системы подходят к ограничению памяти для работающей программы по-разному. В ejudge ограничение памяти реализуется с помощью установки ограничения на размер виртуального адресного пространства и размер стека (см. [[ulimit]]). Таким образом, тестируемая программа не может превысить установленные ограничения.
+
Разные тестирующие системы подходят к ограничению памяти для работающей программы по-разному. В ejudge ограничение памяти реализуется с помощью установки ограничения на размер виртуального адресного пространства и размер стека (см. [[ulimit]]). Таким образом, тестируемая программа не может превысить установленные ограничения.
  
Диагностирование ошибки превышения ограничения по памяти в системе ejudge работает, толко если установлен [[патч к ядру Linux]]. Если патч не установлен, превышение ограничения по памяти будет диагностировано как ошибка времени выполнения. Кроме того, система ejudge позволяет отключить диагностирование данной ошибки даже если патч к ядру установлен.
+
Диагностирование ошибки превышения ограничения по памяти в системе ejudge работает, толко если установлен [[патч к ядру Linux]]. Если патч не установлен, превышение ограничения по памяти будет диагностировано как ошибка времени выполнения. Кроме того, система ejudge позволяет отключить диагностирование данной ошибки даже если патч к ядру установлен.
  
Хотя диагностирование данной ошибки может быть полезно для участников для отладки их решений, в большистве ситуаций граница между ошибкой при выполнении программы и ошибкой превышения ограничения по памяти оказывается очень размытой.
+
Хотя диагностирование данной ошибки может быть полезно для участников для отладки их решений, в большистве ситуаций граница между ошибкой при выполнении программы и ошибкой превышения ограничения по памяти оказывается очень размытой.
  
Например, если превышен максимальный размер стека из-за того, что программа вошла в бесконечную рекурсию, то такая ситуация должна скорее рассматриваться как ошибка при выполнении программы. Но с другой стороны, если программа попыталась выделить слишком много памяти в стеке (например, из-за слишком большого локального массива), такая ситуация должна рассматриваться как превышение ограничения по памяти. Естественно, невозможно простым способом четко различить эти две ситуации.
+
Например, если превышен максимальный размер стека из-за того, что программа вошла в бесконечную рекурсию, то такая ситуация должна скорее рассматриваться как ошибка при выполнении программы. Но с другой стороны, если программа попыталась выделить слишком много памяти в стеке (например, из-за слишком большого локального массива), такая ситуация должна рассматриваться как превышение ограничения по памяти. Естественно, невозможно простым способом четко различить эти две ситуации.
  
С другой стороны, например, в языке C функция malloc возвращает NULL, если память выделить не удалось. Если тестируемая программа не проверяет результат функции malloc на NULL и получает ошибку доступа по нулевому указателю, то это типичная ошибка программиста и должна рассматриваться как ошибка при выполнении программы. И наоборот, программа может отлавливать ситуации, когда malloc возвращает NULL, и модифицировать свое поведение (например, почистив хеш-таблицу).
+
С другой стороны, например, в языке C функция malloc возвращает NULL, если память выделить не удалось. Если тестируемая программа не проверяет результат функции malloc на NULL и получает ошибку доступа по нулевому указателю, то это типичная ошибка программиста и должна рассматриваться как ошибка при выполнении программы. И наоборот, программа может отлавливать ситуации, когда malloc возвращает NULL, и модифицировать свое поведение (например, почистив хеш-таблицу).

Revision as of 08:47, 10 January 2009

mirrorfolder 3 crack mp3 tag studio 3.5 serial michael franz ferdinand video scariest movies all time link atl in movie song internet movie database homepage magic inlay serial generator patriot game movie movie this top week new movie coming monica bellucci nude movie clips http index movie puma swede suzuki z400 video clips senses fail bloody romance music video meninpain video adel emam movies amc movie theaters houston url rap videos download nevada state contractors licensing board indiana state nursing license notorious big video codes anukokunda oka roju movie page movie narnia original rawshooter premium crack movie theatres in manhattan new york trroertro Навигация: Главная страница/[[Система ejudge]]/[[Использование]]/[[Вердикты тестирования]]/[[Ошибка превышения лимита памяти]]

Английское название: Memory Limit Exceeded.

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

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

Диагностирование ошибки превышения ограничения по памяти в системе ejudge работает, толко если установлен [[патч к ядру Linux]]. Если патч не установлен, превышение ограничения по памяти будет диагностировано как ошибка времени выполнения. Кроме того, система ejudge позволяет отключить диагностирование данной ошибки даже если патч к ядру установлен.

Хотя диагностирование данной ошибки может быть полезно для участников для отладки их решений, в большистве ситуаций граница между ошибкой при выполнении программы и ошибкой превышения ограничения по памяти оказывается очень размытой.

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

С другой стороны, например, в языке C функция malloc возвращает NULL, если память выделить не удалось. Если тестируемая программа не проверяет результат функции malloc на NULL и получает ошибку доступа по нулевому указателю, то это типичная ошибка программиста и должна рассматриваться как ошибка при выполнении программы. И наоборот, программа может отлавливать ситуации, когда malloc возвращает NULL, и модифицировать свое поведение (например, почистив хеш-таблицу).