1 Отредактировано ArtemKadeev (2009-09-07 23:21:45)

Тема: Проблемы с Java на acm.sgu.ru

Любая Java программа, вне зависимости от кода отчего-то занимает 20мб памяти.
Это можно увидеть сдавая задачи с большим МЛ.

Но если МЛ = 4мб, то она выдает Runtime Error на совершенно безобидный код, который рекомендовался в FAQ.
Например этот код дал RE на задаче 101.

import java.util.*;
import java.io.*;

public class Solution 
{
  public static void main (String[] argv) throws IOException
  {
    System.out.println(5);
  }
}

Естественно, решения, которые раньше получали Accepted, теперь все валятся по рантайму.
Аналогичная ошибка похоже была и на недавних сборах. Только там было не столь фатально.
Там тоже непонятно откуда брались лишние 20мб, что все заметили в одной задаче.

Об этой проблеме я отписался три недели назад на форуме acm.sgu.ru, но адекватного ответа к сожалению не получил.
Хотелось бы, чтобы эта ошибка была исправлена. Тем более в свете предстоящего четвертьфинала.

Я понимаю, что все таки этот форум немного не то место, где стоит это высказывать, поэтому оффтопик...

2

Re: Проблемы с Java на acm.sgu.ru

Может стандартные библиотеки столько весят?
в Delphi тоже, изза библиотек часто таски не сдаются,где МЛ в притык (

3

Re: Проблемы с Java на acm.sgu.ru

Могу сказать, что ничего удивительного в том, что получен RE, а не МL, нет: когда программе не хватает памяти, виртуальная машина вылетает с эксепшеном (или еррором), что, видимо, всегда сгушным чекером интерпретируется как RE.

4

Re: Проблемы с Java на acm.sgu.ru

Всё-таки это поведение (ML => RE) не совсем адекватно. Более правильно, когда виртуальной машине всё-таки выделяют достаточно много памяти, а вот на всю виртуальную машину навешивают ограничение по памяти. Ограничение должно быть повешено таким образом, чтобы программе таки давали выделить память, но тут же останавливали её с TL; если же просто не дать ей выделить, то произойдёт RE.

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

5

Re: Проблемы с Java на acm.sgu.ru

Большое спасибо

6

Re: Проблемы с Java на acm.sgu.ru

Кстати, насколько я знаю, четвертьфинал проводится на другом контестере, написанном много лет назад и с тех пор практически не менявшемся (автор - Комков П.П.). Все остальные сайты *.sgu.ru/* работают на другом контестере, который живёт своей жизнью (первоначальный автор - Мирзаянов М.Р., а дальше уже, кроме него, вкладывали свои силы многие люди, проходившие через ЦОП).