Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Прочее";
Текущий архив: 2009.03.01;
Скачать: [xml.tar.bz2];

Вниз

А так ли нужен сборщик мусора?   Найти похожие ветки 

 
Alkid   (2008-12-29 21:15) [120]


> Городской Шаман   (29.12.08 21:03) [119]

Справедливо ли то, что ты сказал, относительно всех феймворков или же .NET тут чем-то особенно отличился? Я сильно не знаю XNA, но, насколько мне известно, предлагаемые ею шаблоны можно и не использовать, сторя приложение как себе вздумается.

И опять же, это не то, что я хочу увидеть. Как говорил герой одноц книги: "если бы за каждое логически безупречное утверждение, которое на пратктике оказалось полной чушью я получил по доллару, я бы давно стал миллиардером". Так же и тут - рассуждать можно сколько угодно, но это не заменит статистики, ибо практика - критерий истинности.


 
Anatoly Podgoretsky ©   (2008-12-29 21:20) [121]

> Городской Шаман  (29.12.2008 21:03:59)  [119]

> Нужно самому прорабатывать архитектуру игры.

А какой язык или технология прорабатывае архитектуру вместо разработчика. Я знаю только одну - деньги и нанять специалиста.


 
Eraser ©   (2008-12-29 22:21) [122]

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


 
DVM ©   (2008-12-29 22:22) [123]


> на .net не пишут шаровары

уже стали появляться


 
oxffff ©   (2008-12-29 23:14) [124]

Давайте уже опускаться в глубины. Разберем так сказать по косточкам.


 
Игорь Шевченко ©   (2008-12-29 23:26) [125]


> Так что основной вывод - .NET со своим сборщиком мусора
> сделана для выпускников ПТУ, чтобы программирование не было
> сложнее укладки кирпичей на стройке. Но это не особо работает.
>


Тебе самому не смешно ? Жил народ в заблуждении, Софт им открыл глаза, все срочно сваливают с .Net и пишут на ассемблере, так как нет языка более достойного для не-ПТУшников.

Впрочем, про твой случай еще Иван Андреевич Крылов писал, в басне, начинающейся со слов: "По улице слона водили".


 
Agent13 ©   (2008-12-29 23:37) [126]


> > А вообще я о качестве выполнения софта. к Паинт НЕту есть
> > претензии по качеству?
>
> Есть - поделка уровня курсового в нормальном университете.
>  Есть куча шаровар на нативных языках выше по качеству (в
> том числе специализированных).


Критерии поделки в студию. А именно, по каким признакам определено, что одна хорошо и стабильно работающая программа по качеству хуже другой?


> Что мы имеем - .NET привлекательная своей ПТУ-шной направленностью,
>  так как позволяет быстро собрать какую-то поделку из кирпичиков
> среднего уровня не особо понимая как оно всё работает.

Ну это вообще аргументы из знакомой серии: в Дельфи любой ламер может накидать батонов и считать себя крутым программистом, значит Дельфи остой для ламеров.

Кстати, по поводу упомянутого движка Ogre. Я специально нагуглил:
http://www.ogre3d.org/wiki/index.php/MOGRE - а это для кого тогда? Для извращенцев что ли?


 
Городской Шаман   (2008-12-29 23:38) [127]


> Игорь Шевченко ©   (29.12.08 23:26) [125]
>
> Впрочем, про твой случай еще Иван Андреевич Крылов писал,
>  в басне, начинающейся со слов: "По улице слона водили".


Мне больше нравится басня "Квартет"

  И ноты есть у нас, и инструменты есть;
  Скажи лишь, как нам сесть!" -
  ...
  А вы, друзья, как ни садитесь,
  Все в музыканты не годитесь".


Хороший программист будет писать хорошие программы как сборщиком мусора, так и без (и не факт что сборщик будет давать ему больше преимуществ, чем проблем), а плохому нужно рассказать "как сесть". Вот для этого и был создан .ПТУ. Только пользы от "правильности посадки" не особо много.


 
Городской Шаман   (2008-12-29 23:45) [128]


> Agent13 ©   (29.12.08 23:37) [126]
> Кстати, по поводу упомянутого движка Ogre. Я специально
> нагуглил:
> http://www.ogre3d.org/wiki/index.php/MOGRE - а это для кого
> тогда? Для извращенцев что ли?


Для тех у кого нет части мозга, отвечающей за понимание указателей (с) Джоель Спольски

Тот же wxWidgets написан на С++, но его можно забиндить также и на python, и на Perl, и на C#. Но это не означает что C# лучше C++.


 
oxffff ©   (2008-12-29 23:53) [129]


> Городской Шаман   (29.12.08 23:38) [127]


Я честно какое время пристально обращал внимание .NET.
Читал, причем читал не простую литературу, которую тут приводили в качестве мастер-класс(дядю Рихтера тут любят по поводу и без повода).
А гораздо посерьезней.
И со временем к .NET как платформы для всего я охладел.
А то, что .NET это для так называемых .ПТУ я отчасти согласен.
Однако лично я стал чуствовать силу в связке между Native C++/Managed C++(С#).
Поэтому для некритичной и ленивой халявы - .NET, для критичной части С++|Delphi|ASM.


 
oxffff ©   (2008-12-30 00:13) [130]

А вообще эта тема не раз пройдена и обмусолена.
Достаточно набрать в поисковике С++ vs C# или Delphi vs C#.
Там будут и доводы и доказательства.


 
boa_kaa ©   (2008-12-30 00:31) [131]


> oxffff ©   (29.12.08 23:53) [129]

Да ради бога
Просто не надо кидаться тапочками и рассказывать всем про то, какие они адиёты, что им сборщик нравится
Мне он, например, ни разу не мешает, а только помогает
Пусть ему самому иногда нужно помочь тоже
Зато это помогает наводить генеральную уборку "когда хочешь" вместо педантичного поднимания фантиков
И не только
Просто пользоваться этим можно как мощным инструментом, а можно как дудкой-затычкой
И хорошо, что у разработчика есть выбор
У нативных его нет

Жаль, что кому-то что-то вечно нужно доказать


 
test   (2008-12-30 05:29) [132]

boa_kaa ©   (30.12.08 00:31) [131]
Проблема не в том что он есть, а в том что он иной раз такие фокусы показывает, мало не покажется.


 
Вариант   (2008-12-30 06:29) [133]


> test   (30.12.08 05:29) [132]

Фокусы показывают все и вся, что сделано человеком. Примеров можно найти и для дельфи и для с++ и для чего угодно.

Кому не нравится сборщик мусора, тот ведь им и не пользуется?
Что касается меня, то у меня такая ассоциация - есть автомобиль с механической коробокй передач и есть с автоматической. Но коробка передач не отменяет необходимости знания и соблюдения правил дорожного движения. Для меня сборщик мусора- это коробка автомат. У механики есть свои преимущества, у автомата есть свои удобства. Ко всему надо привыкать и осваиваться.


 
oxffff ©   (2008-12-30 07:43) [134]


> boa_kaa ©   (30.12.08 00:31) [131]
>
> > oxffff ©   (29.12.08 23:53) [129]
>
> Да ради бога
> Просто не надо кидаться тапочками и рассказывать всем про
> то, какие они адиёты, что им сборщик нравится


Я и не кидаюсь. Беру и читаю.
А вы как то трусливо пропустили мои посты [72],[73].
А я все жду.


 
test   (2008-12-30 10:36) [135]

Вариант   (30.12.08 06:29) [133]
Зачем про сборщик мусора Java в документации заведомо ложные сведенья дают?
После выхода из видимости обьект сразу уничтожается, в реальности он удаляется когда на него ссылок 0.


 
Alkid   (2008-12-30 11:18) [136]


> test   (30.12.08 10:36) [135]
> После выхода из видимости обьект сразу уничтожается, в реальности
> он удаляется когда на него ссылок 0.

Оба утверждения неверны!


 
Вариант   (2008-12-30 12:00) [137]


> test   (30.12.08 10:36) [135]


> Зачем про сборщик мусора Java в документации заведомо ложные
> сведенья дают?
> После выхода из видимости обьект сразу уничтожается

Я не читал такого в JAVA, и в статьях по GC для JAVA. Я признаю, что читал в основном переводную литературу, а не оригинальную документацию...но возможно вы ошиблись? Но даже если нет, суть не в JAVA, тема поднята о сборщике мусора вообще, как "инструменте" А он существует и в .NET. и в оберонах и в функциональных языках. И технологии сборки мусора используются разные. Вопрос в том, а хороша ли сама идея? На это я писал про коробку автомат в [133].


 
test   (2008-12-30 13:12) [138]

Вариант   (30.12.08 12:00) [137]
C Оберонами и .Net не работал говорю про то что на опыте пробывал.
Сама иде нормальна, не плохая, не хорошая, конкретные реализации вызывают уже другие чуства.

Alkid   (30.12.08 11:18) [136]
В какой момент времени будет удален java.sql.Statement, после того как выполнил запрос и отдыл результат в java.sql.ResultSet? /*один из моментов который начинает очень интересно работать не под управлением сервера Tomcat  и иже с ними*/


 
Alkid   (2008-12-30 13:17) [139]


> test   (30.12.08 13:12) [138]

Ты имеешь в виду удаление самого объекта или закрытие запроса?
Я говорю об удалении объекта, это то, чем занимается сборщик мусора. Объект будет удалён при ближайшем запуске GC, если при этом он недостижим от корней. При этом на него могут ссылаться другие объекты. Если все они образуют часть графа объектов, недостижимую от корней, то все эти объекты будут уничтожены.


 
test   (2008-12-30 14:01) [140]

Alkid   (30.12.08 13:17) [139]
Висеть в памяти этот обьект не удаляясь будет достаточно долго, проще пользоваться одним Statement на всю прогу, чем ждать когда память очистит сборщик.


 
clickmaker ©   (2008-12-30 14:16) [141]

> [127] Городской Шаман   (29.12.08 23:38)

спор про "написание шаровар на плюсах vs написание шаровар на .нет" - это примерно спорить от том, что лучше: водка или коньяк.
Если хочешь быстро убраться в дрова - махни полбанки водки.
Если хочешь провести приятно время - сиди и цеди дорогой коньяк весь вечер

.нет изначально не задумывалась как среда для standalone-приложений. Она задумывалась как среда для корпоративных распределенных систем, работающих при определенных требованиях к софту и железу.
В отличие от шароварных поделок, которые в принципе должны работать под чем угодно и на чем угодно, уж коль скоро их выставили на обозрение всей общественности


 
Eraser ©   (2008-12-30 14:19) [142]

> [141] clickmaker ©   (30.12.08 14:16)


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

опыт показывает, что поделки как раз "копроративный софт", ну а в целом согласен.


 
iZEN ©   (2008-12-30 15:54) [143]


> oxffff ©   (29.12.08 23:53) [129]
>
> Однако лично я стал чуствовать силу в связке между Native
> C++/Managed C++(С#).
> Поэтому для некритичной и ленивой халявы - .NET, для критичной
> части С++|Delphi|ASM.

Вот из-за таких как ты многие предприятия остаются на Windows.
Так как такие уродливые программы не могут работать ни в WINE@Ethersoft, ни в Mono 2.0.


 
Mystic ©   (2008-12-30 16:58) [144]


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


Никто никому ничего не должен. Есть еще фактор, что многие shareware имеют свою долгую историю с времен, когда не было ни .NET, ни Java.


 
oxffff ©   (2008-12-30 23:23) [145]


> iZEN ©   (30.12.08 15:54) [143]
>
> > oxffff ©   (29.12.08 23:53) [129]
> >
> > Однако лично я стал чуствовать силу в связке между Native
>
> > C++/Managed C++(С#).
> > Поэтому для некритичной и ленивой халявы - .NET, для критичной
>
> > части С++|Delphi|ASM.
>
> Вот из-за таких как ты многие предприятия остаются на Windows.
>
> Так как такие уродливые программы не могут работать ни в
> WINE@Ethersoft, ни в Mono 2.0.


:)
Далекоидущие выводы мне всегда интересны. Всегда готов на конструктивную критику. Только где аргументы?


 
Дмитрий Белькевич ©   (2008-12-31 00:51) [146]

>Вот из-за таких как ты многие предприятия остаются на Windows.
>Так как такие уродливые программы не могут работать ни в WINE@Ethersoft,

Ничего. Скоро дополируют РеактОС. Необходимость в альтернативах окончательно отпадёт. И это хорошо.


 
test   (2008-12-31 08:59) [147]

iZEN ©   (30.12.08 15:54) [143]
А разве нативная часть не пишется под ОС отдельно? Что винь, что линь.


 
iZEN ©   (2009-01-01 02:02) [148]


> Дмитрий Белькевич ©   (31.12.08 00:51) [146]
>
> >Вот из-за таких как ты многие предприятия остаются на Windows.
>
> >Так как такие уродливые программы не могут работать ни
> в WINE@Ethersoft,
>
> Ничего. Скоро дополируют РеактОС. Необходимость в альтернативах
> окончательно отпадёт. И это хорошо.


Ага. Придётся ставить в Wine микрософтовский .Net, и уже в нём запускать программы Windows, которые работают с .Net. Ж) Про Mono можно будет забыть как про страшный сон. Ж) Вот тогда воистину победит многоплатформенность Win32, а не .Net. Ж)

P.S.
Ребята из РеактОС тесно сотрудничают с проектом Wine.


 
Игорь Шевченко ©   (2009-01-01 02:06) [149]


> Вот из-за таких как ты многие предприятия остаются на Windows.


а что, собственно, плохого в Windows ?


 
DVM ©   (2009-01-01 15:30) [150]


> Дмитрий Белькевич ©   (31.12.08 00:51) [146]


> Ничего. Скоро дополируют РеактОС.

Я просто уверен, что ее НИКОГДА не дополируют. Как и Linux.


 
boa_kaa ©   (2009-01-01 21:34) [151]


> oxffff ©   (30.12.08 07:43) [134]
> А вы как то трусливо пропустили мои посты [72],[73].

выражения выбираем
я тебе уже ответил


 
oxffff ©   (2009-01-01 23:48) [152]


> boa_kaa ©   (01.01.09 21:34) [151]


Где ты конкретно ответил на [72], [73]?
Твои ответы являются просто общим трепом, не более и не менее.

Я тебе конкретно написал [72]. Где хотя твой ответ такого уровня, кроме общих фраз, что GC это решение всех проблем?

Теперь про выбор выражений. Про тапочки и идиотов написал ты.
Так что заруй глаза.
Жду твой развернутый ответ.


 
oxffff ©   (2009-01-01 23:48) [153]


> заруй глаза.


разуй глаза. :)


 
iZEN   (2009-01-02 09:31) [154]


> Игорь Шевченко ©   (01.01.09 02:06) [149]
> а что, собственно, плохого в Windows ?


Неудачный дизайн.


 
boa_kaa ©   (2009-01-02 11:02) [155]


> oxffff ©   (01.01.09 23:48) [152]

покажи мне, где я писал, что GC - это решение всех проблем и я с тобой соглашусь. Детерминированно.

из всей твоей тиррады в 72 внимания заслуживает только последний факт кривого кода, когда разработчики действительно полагаются на сборщик, как на панацею. Потому что остальное лишь подводит к этому. И это единственная конкретика, остальное - вода.

что касается тормозов при освобождении "больших объектов". Большим может быть объект в двух случаях: либо он содержит большой объем данных (например, изображение), либо это объект с большим количеством объектов в себе (например, форма с двумястами батонами). При любых обстоятельствах освобождение памяти, используемой такими объектами - дело долгое. Дело выйдет из-под контроля только если программист - тапил и не понимает, что занятую память придется вернуть. И чем больше отгрызаемый кусок - тем быстрее. Если, конечно, он не используется. Но все эти случаи - скорее исключения, чем правила.


 
oxffff ©   (2009-01-02 15:26) [156]


> boa_kaa ©   (02.01.09 11:02) [155]


При вызове сборщиком мусора финализатора, код финализатора может содержать time consuming операции. Для единичных объектов это может не являться проблемой. Однако для большого числа объектов это может приводить к проблемам. Поскольку достаточное количество объектов могут
входить в одно поколение и вызов их финализаторов может существенно занять время. Поскольку при сборке останавливаются все потоки
с управляемым кодом, приложение перестает откликаться и приминать внешние команды. А если приложение принимает видео-поток, то может просто потерять часть важных кадров, не дай бог это произвойдет в нужное время.
Все это наводит на простые мысли, что определенного круга задач программист должен использовать другую логику освобождения(неудобную для него логику), поскольку он уже обленился (.ПТУ) и просто полагается на сбор мусора.


 
oxffff ©   (2009-01-02 15:33) [157]

Однако при использование шаблона Dispose, его могут проверочные грабли.

 // Allow your Dispose method to be called multiple times,
  // but throw an exception if the object has been disposed.
  // Whenever you do something with this class,
  // check to see if it has been disposed.

  public void DoSomething()
  {
     if(this.disposed)
     {
        throw new ObjectDisposedException();
     }


 
boa_kaa ©   (2009-01-02 17:55) [158]


> oxffff ©   (02.01.09 15:26) [156]

А когда вызывается TForm.Free разве не останавливается выполнение?
А если контролов много и пошли по цепочке?
А описанную проблему с остановкой мне приходилось реально видеть только на Mono. Причем богом затертой версии.

Не понимаю, что ты хочешь доказать? Что сборщик - это мировое зло? Давай это объясним разработчикам The Bat!, которые за собой столько мусора оставляют...


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

а я тебе уже устал об этом говорить

Для всего есть одно объяснение: не умеешь - не берись


 
DVM ©   (2009-01-02 19:00) [159]


> Давай это объясним разработчикам The Bat!, которые за собой
> столько мусора оставляют...

Как установлено?


 
Alkid   (2009-01-02 19:17) [160]


> oxffff ©   (02.01.09 15:26) [156]
> При вызове сборщиком мусора финализатора, код финализатора
> может содержать time consuming операции. Для единичных объектов
> это может не являться проблемой.

Не являюсь экспертом по тому, как в .NET работает GC, но, ЕМНИП, финализаторы там исполняются в отдельном потоке *после* цикла сборки мусора, который требует останова всех рабочих потоков.



Страницы: 1 2 3 4 5 вся ветка

Форум: "Прочее";
Текущий архив: 2009.03.01;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.83 MB
Время: 0.031 c
4-1205607739
Пётр
2008-03-15 22:02
2009.03.01
Выключение монитора


15-1230995201
абдирофф
2009-01-03 18:06
2009.03.01
помогите разобратся с ошибками при компилировании программы


2-1232190104
ТАГ
2009-01-17 14:01
2009.03.01
Отчеты Rave


2-1232090677
Шакал
2009-01-16 10:24
2009.03.01
Замостить Timage


15-1230644649
Городской Шаман
2008-12-30 16:44
2009.03.01
Поздравляю Всех с Новым Годом.





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский