Конференция "Прочее" » Как вы относитесь к использованию меток в Delphi?
 
  • Юрий Зотов © (29.05.16 12:34) [120]
    > DVM ©   (29.05.16 11:48) [119]

    > Мне кажется, если в программе возникает OutOfMemory - это
    > повод задуматься об алгоритмах и архитектуре программы,
    > а не добавлять недокументированные костыли.
    > Может я конечно не прав и в мире Java все не так.


    Прав, естественно. Только ошибку сначала надо локализовать, не так ли?
  • DVM © (29.05.16 18:14) [121]

    > Юрий Зотов ©   (29.05.16 12:34) [120]


    > Только ошибку сначала надо локализовать, не так ли?

    Разумеется, причем все такие места, т.к. их может быть не одно. Но как в этом поможет упомянутая freeMemory мне правда не понятно. Она скорее даже навредит, замаскировывая проблему. Плюс ее вызов, вероятно, приводит к некоторому замедлению работы программы из-за принудительной сборки мусора, если таковая имеет быть.
  • DayGaykin © (29.05.16 19:31) [122]

    > Юрий Зотов ©   (26.05.16 23:09) [109]
    >

    Интересно, почему Java сама не сделала сборку мусора, когда память закончилась.
  • Юрий Зотов © (29.05.16 19:37) [123]
    > Но как в этом поможет упомянутая freeMemory мне правда не
    > понятно.


    Надо же было как-то понять, где конкретно съедается много памяти.

    >  Плюс ее вызов, вероятно, приводит к некоторому замедлению
    > работы программы и


    При отладке это не имеет значения.

    > почему Java сама не сделала сборку мусора,

    Сам удивился.
  • Crysis © (29.05.16 23:42) [124]
    Заставь дурака Богу молиться, он и лоб расшибёт.
    Это относится как к ярым противникам goto, так и ярых его сторонников.
    Причём, к сожалению, вторых я не видел. А то я хотя бы понял, с кем тут борятся )
  • Плохиш © (30.05.16 00:47) [125]

    > Интересно, почему Java сама не сделала сборку мусора, когда
    > память закончилась.

    Сборка мусора имеет наименьший приоритет, поэтому она выполняется в моменты, когда программе ну совсем нечем заняться. Кстати, об этом в документации и по яве и по визуальной студии написано.
    В общем-то, по этой причине и сделаны функции принудительного запуска сборщика.
  • jack128 © (30.05.16 21:23) [126]

    > поэтому она выполняется в моменты, когда программе ну совсем
    > нечем заняться

    то есть такой простой код
    while(true) { new Object(); }


    на джаве с аут оф мемори упадет?
  • картман © (01.06.16 09:27) [127]

    > Сборка мусора имеет наименьший приоритет

    в отдельном потоке он


    > то есть такой простой код
    > while(true) { new Object(); }
    > на джаве с аут оф мемори упадет?

    нет, такой упадет:

    ArrayList list = new ArrayList();
    while(true) {
     list.add(new Object());
    }
  • Кщд © (01.06.16 13:35) [128]
    Плохиш ©   (30.05.16 00:47) [125]
    нету в Java принудительной сборке
    есть gc(), но ее вызов НЕ ГАРАНТИРУЕТ запуска сборщика
 
Конференция "Прочее" » Как вы относитесь к использованию меток в Delphi?
Есть новые Нет новых   [134432   +19][b:0.001][p:0.001]