S>"gandjustas" <67312@users.rsdn.ru> wrote in message news:3250557@news.rsdn.ru...
>> S>"Месяц работы программиста, который будет сэкономлен" — ты ж сам сказал, что разница месяц, нет? >> Это же от масштабов проекта зависит. Месяц это минимум.
S>Тут на самом деле можно поспорить. Я вот например не вижу, с чего бы это в масштабном проекте на дотнете писалось быстрее чем на плюсах. Наоборот, если быстродействие важно — с ним убъешся просто, с дотнетом этим. Так что утверждение "Месяц это минимум" неплохо бы сначала обосновать.
Поспорить тут можно только если на C# никогда не писал.
S>"gandjustas" <67312@users.rsdn.ru> wrote in message news:3250557@news.rsdn.ru...
>> S>"Месяц работы программиста, который будет сэкономлен" — ты ж сам сказал, что разница месяц, нет? >> Это же от масштабов проекта зависит. Месяц это минимум.
S>Тут на самом деле можно поспорить. Я вот например не вижу, с чего бы это в масштабном проекте на дотнете писалось быстрее чем на плюсах.
Плотность ошибок в коде мало зависит от языка. С# более высокоуровневый, чем C++, поэтому для реализации той же функциональности требуется написать меньше, а следственно ошибок в программе будет меньше. А .NET вам в случае ошибки четко покажет где она произошла, и выдаст адекватный stack trace.
Кроме того управляемая среда позволяет вам не париться по поводу выделяемой памяти, динамически генерировать код и тому подобное. Это позволяет использовать архитектурные приемы недоступные неуправляемым языкам.
В совокупности может огромный прирост производительности программиста дать.
Кстати, вы на .NET работали?
S>Наоборот, если быстродействие важно — с ним убъешся просто, с дотнетом этим. Так что утверждение "Месяц это минимум" неплохо бы сначала обосновать.
А вы поищите сравнения производительности на форуме. Нету супер-тормозов, кроме того программы на .NET параллелятся в разы проще.
Здравствуйте, gandjustas, Вы писали:
G>Слив засчитан.
Ой, вот только давайте без этого.
8>>>>Это про то кто дольше грузиться и сколько при старте памяти сжирает? Совершенно глупый пример. G>>>Чем глупый? Окна-то одинаковые показываются.
Гупый потому что сравниваете не сравниваемое.
Надо было сразу написать вот так:
Если приложение на .Net НЕ запускать, то запуск займет 0 времени и приложение займет 0 памяти,
а приложение на C++ если запустить, займет Х памяти и Y времени. Понимаете абсурдность?
А чушь типа "Окна-то одинаковые показываются", ну ни в какие ворота.
Хотите я на .Net напишу приложение которое будет открываться три дня и сожрет памяти по максимуму возможного,
но при этом окна-то одинаковые будут.
8>>>>Вообще странно что вы пытаетесь оспорить что приложение на управляемом языке требует больше памяти. G>>>Вообще странно что вы это утверждаете. Крупные программы на .NET кушают не больше памяти, чем аналогичные на C++.
Прочитайте про устройство GC. Или разработчики на .Net в такие подробности не лезут?
У вас вот уже пошли условия какие-то:
Крупные программы на .NET кушают не больше памяти, чем аналогичные на C++.
А 3 мелких приложения на .Net сожрут памяти как одно крупное на C++ ? Или как?
Здравствуйте, 8bit, Вы писали:
G>>Еще раз пример с фотошопом и Paint.NET привести?
8>Вообще странно что вы пытаетесь оспорить что приложение на управляемом языке требует больше памяти.
Вполне возможен случай, когда .NET-приложение будет требовать меньше памяти, чем Си-приложение, за счёт более плотной упаковки объектов. При этом выделение объектов на куче осуществляется быстрее, показатели временной и пространственной локальности лучше (⇒ меньше кэш-миссов).
Для сравнения посмотрим, как выделяется память в куче исполняющей среды С. Чтобы выделить в куче память для объекта, исполняющая среда С должна пройти по связному списку структур данных. Обнаружив свободный блок достаточного размера, среда разбивает его, модифицируя указатели в узлах связного списка, чтобы сохранить его целостность. Для сравнения: в случае управляемой кучи выделение памяти для объекта означает просто прибавление некоторого значения к указателю, что намного быстрее. По сути, объект в управляемой куче выделяется почти так же быстро, как память в стеке потока! Кроме того, в большинстве куч (таких как куча исполняющей среды С) память для объектов выделяется в любой свободной области. Поэтому вполне вероятно, что несколько последовательно созданных объектов окажутся разделенными мегабайтами адресного пространства. Но в управляемой куче последовательно созданные объекты гарантирован но будут расположены друг за другом.
(Зелёная Книжка Рихтера)
Здравствуйте, 8bit, Вы писали:
8>Здравствуйте, gandjustas, Вы писали:
G>>Слив засчитан. 8>Ой, вот только давайте без этого.
Ну зачем тогда вместо ответов на вопросы смайлики рисовать?
8>>>>>Это про то кто дольше грузиться и сколько при старте памяти сжирает? Совершенно глупый пример. G>>>>Чем глупый? Окна-то одинаковые показываются.
8>Гупый потому что сравниваете не сравниваемое. 8>Надо было сразу написать вот так: 8>Если приложение на .Net НЕ запускать, то запуск займет 0 времени и приложение займет 0 памяти, 8>а приложение на C++ если запустить, займет Х памяти и Y времени. Понимаете абсурдность?
Абсурдность ваших слов понимаю.
8>А чушь типа "Окна-то одинаковые показываются", ну ни в какие ворота. 8>Хотите я на .Net напишу приложение которое будет открываться три дня и сожрет памяти по максимуму возможного, 8>но при этом окна-то одинаковые будут.
Я не уверен что авторы фотошопа делали его тормозящим специально.
8>>>>>Вообще странно что вы пытаетесь оспорить что приложение на управляемом языке требует больше памяти. G>>>>Вообще странно что вы это утверждаете. Крупные программы на .NET кушают не больше памяти, чем аналогичные на C++.
8>Прочитайте про устройство GC. Или разработчики на .Net в такие подробности не лезут?
Да я хорошо устройство GC знаю, но где написано что не очищает память?
8>У вас вот уже пошли условия какие-то: 8>
8>Крупные программы на .NET кушают не больше памяти, чем аналогичные на C++.
8>А 3 мелких приложения на .Net сожрут памяти как одно крупное на C++ ? Или как?
Может так, может наоборот, это смотря как писать.
Здравствуйте, gandjustas, Вы писали: G>>>Слив засчитан. 8>>Ой, вот только давайте без этого. G>Ну зачем тогда вместо ответов на вопросы смайлики рисовать?
Дык, смешно потому что.
8>>>>>>Это про то кто дольше грузиться и сколько при старте памяти сжирает? Совершенно глупый пример. G>>>>>Чем глупый? Окна-то одинаковые показываются. 8>>Гупый потому что сравниваете не сравниваемое. 8>>Надо было сразу написать вот так: 8>>Если приложение на .Net НЕ запускать, то запуск займет 0 времени и приложение займет 0 памяти, 8>>а приложение на C++ если запустить, займет Х памяти и Y времени. Понимаете абсурдность? G>Абсурдность ваших слов понимаю. 8>>А чушь типа "Окна-то одинаковые показываются", ну ни в какие ворота. 8>>Хотите я на .Net напишу приложение которое будет открываться три дня и сожрет памяти по максимуму возможного, 8>>но при этом окна-то одинаковые будут. G>Я не уверен что авторы фотошопа делали его тормозящим специально.
и все таки .Net убивает ваш мозг.
8>>Прочитайте про устройство GC. Или разработчики на .Net в такие подробности не лезут? G>Да я хорошо устройство GC знаю
Плохо вы его знаете, плохо.
Здравствуйте, gandjustas, Вы писали:
B>>В общем вермена, когда надо было биться за каждый байт, давно прошли, B>>но то, что твориться сейчас — это тоже ненормально. G>А вас волнует цифирка в TaskManager или быстродействие? Обычно в компромисе время-память выбирают время.
Вообще-то именно быстродействие и волнует.
Я вообщем как юзер на ситуацию смотрю.
Цифиркb в TaskManager'е меня интерсуют только тогда, когда я пытаюсь понять,
что мне лучше закрыть, чтобы можно было нормально работать.
Ну а как программист, я просто вижу, что если о ресурсах вообще не думать,
и каждый будет так поступать, то в итоге юзеры тоже замечают, что 2 гига что-то маловато стало.
Здравствуйте, 8bit, Вы писали:
8>и все таки .Net убивает ваш мозг.
В первой версии был Silverlight.
8>>>Прочитайте про устройство GC. Или разработчики на .Net в такие подробности не лезут? G>>Да я хорошо устройство GC знаю 8>Плохо вы его знаете, плохо.
А вы прям специалист?
Короче не пишите больше в этой теме, все равно ни одного здравого аргумента привести не можете.
Здравствуйте, Qbit86, Вы писали:
Q>Я мог бы попросить ещё пример кода, реализующего аппаратное ускорение для гуёвых контролов, но боюсь его увидеть
А кто-нибудь может показать пример, где использование OpenGL/Direct3d ускорило какой-нибудь обычный гуевый контрол? Неужели рисование какого-нибудь radio button'a путем формирования серии треугольников и пересылки их видеокарте быстрее обычного растрового рисования? Контролы же обычно небольшие, чего там ускорять-то? И вообще, так ли часто отрисовка гуя занимает хоть сколь-нибудь заметное время на современных компах? Не припомню такого у обычных win32 приложений. В WinForms, помнится, были жалобы на медленный расчет layout'a, но его видеокарта быстрее не сделает..
"gandjustas" <67312@users.rsdn.ru> wrote in message news:3250615@news.rsdn.ru...
> S>Тут на самом деле можно поспорить. Я вот например не вижу, с чего бы это в масштабном проекте на дотнете писалось быстрее чем на плюсах. > Плотность ошибок в коде мало зависит от языка. С# более высокоуровневый, чем C++, поэтому для реализации той же функциональности требуется написать меньше, а следственно ошибок в программе будет меньше.
Да-да, даже наследования реализации нету — а кода меньше писать, ага.
> А .NET вам в случае ошибки четко покажет где она произошла, и выдаст адекватный stack trace.
Адекватный стек трейс у меня на плюсах выдается уже лет десять.
> Кроме того управляемая среда позволяет вам не париться по поводу выделяемой памяти,
Не парится по поводу выделяемой памяти в моем случае возможно только при переходе на x64 — чего в силу некоторых особенностей лицензионной политики MS пока не случилось. Трех гигов в вин32 хватает с трудом.
> динамически генерировать код и тому подобное.
И часто вам приходится динамически генерировать код?
> Это позволяет использовать архитектурные приемы недоступные неуправляемым языкам.
Какие конкретно архитектурные приемы?
> В совокупности может огромный прирост производительности программиста дать.
Или не дать
> Кстати, вы на .NET работали?
Не особо много — не понравилось.
> S>Наоборот, если быстродействие важно — с ним убъешся просто, с дотнетом этим. Так что утверждение "Месяц это минимум" неплохо бы сначала обосновать. > А вы поищите сравнения производительности на форуме. Нету супер-тормозов, кроме того программы на .NET параллелятся в разы проще.
Я не говорю про супер-тормоза, оно просто все равномерно работает раза в два медленнее. И иногда — большие провалы из-за каких-то специфических особенностей контейнеров. Не, может их и можно забороть, но на это время надо.
Posted via RSDN NNTP Server 2.1 beta
Одним из 33 полных кавалеров ордена "За заслуги перед Отечеством" является Геннадий Хазанов.
Здравствуйте, Qbit86, Вы писали:
Q>Здравствуйте, 8bit, Вы писали:
8>>Это вы к чему?
Q>Ещё раз засчитан.
И мне плиз засчитайте, ибо надоело уже.
Уже и на пальцах объясняли и к RTFM аппелировали...
Предлагаю прекратить спор, ибо возможности Qt сравнивать с чисто MS продуктом смешно хотя бы потому что первое — кроссплатформа, второе — нет.
Предлагаю на этом сойтись и все.
Зачтите мне слив пожалуйста.
С уважением Denys Valchuk
IMHO чем больше мнений тем оптимальней выбор варианта... :)
Здравствуйте, bkat, Вы писали:
B>Здравствуйте, gandjustas, Вы писали:
B>>>В общем вермена, когда надо было биться за каждый байт, давно прошли, B>>>но то, что твориться сейчас — это тоже ненормально. G>>А вас волнует цифирка в TaskManager или быстродействие? Обычно в компромисе время-память выбирают время.
B>Вообще-то именно быстродействие и волнует. B>Я вообщем как юзер на ситуацию смотрю. B>Цифиркb в TaskManager'е меня интерсуют только тогда, когда я пытаюсь понять, B>что мне лучше закрыть, чтобы можно было нормально работать.
У меня больше всех занимает браузер и студия, теперь их попеременно закрывать?
Вообще-то юзеры не ищут чего-бы закрыть.
B>Ну а как программист, я просто вижу, что если о ресурсах вообще не думать, B>и каждый будет так поступать, то в итоге юзеры тоже замечают, что 2 гига что-то маловато стало.
Лет 5 назад я мог себе позволить держать открытым браузер и делфи, если надо было открыть word, то приходилось что-нить закрывать. А антивирусник вообще предпочитал не ставить из-за тормозов.
Сейчас у меня на даже на ноуте дофига всего крутится.
Здравствуйте, 8bit, Вы писали:
8>Вообще странно что вы пытаетесь оспорить что приложение на управляемом языке требует больше памяти.
Это не так уж очевидно. Ведь когда выделяешь каким-нибудь malloc'ом, создаются служебные структуры менеджера памяти, они тоже свое место съедают. Если, допустим, у меня есть структура из 10 интов на 32-битной машине, и я создаю ее в куче, то в .net я потрачу кажися 12+10*4 байт, а в каком-нибудь окамле (язык со сборкой мусора) 4+10*4 байт. А сколько в случае С/С++?
"D. Mon" <58130@users.rsdn.ru> wrote in message news:3250668@news.rsdn.ru...
> Q>Я мог бы попросить ещё пример кода, реализующего аппаратное ускорение для гуёвых контролов, но боюсь его увидеть > > А кто-нибудь может показать пример, где использование OpenGL/Direct3d ускорило какой-нибудь обычный гуевый контрол? Неужели рисование какого-нибудь radio button'a путем формирования серии треугольников и пересылки их видеокарте быстрее обычного растрового рисования? Контролы же обычно небольшие, чего там ускорять-то? И вообще, так ли часто отрисовка гуя занимает хоть сколь-нибудь заметное время на современных компах? Не припомню такого у обычных win32 приложений. В WinForms, помнится, были жалобы на медленный расчет layout'a, но его видеокарта быстрее не сделает..
Тормоза при прорисовке видно вполне отчетливо, если в виндах не установить драйвер видеокарты — поскольку самый обычный GDI уже лет 15 как аппаратно-ускоренный.
Posted via RSDN NNTP Server 2.1 beta
Одним из 33 полных кавалеров ордена "За заслуги перед Отечеством" является Геннадий Хазанов.
Здравствуйте, Qbit86, Вы писали:
Q>Ещё раз засчитан.
О, еще один, со сливами
Вы к чему свой пост с "матчастью" привели?
Как опровержение слов "что приложение на управляемом языке требует больше памяти."
Дык ваш пост скорее наоборот это подтверждает
А отквоченные слова из книжки Рихтера вообще бред.
Потому что в С/С++ я могу выделять и освобождать память так как мне захочется.
Здравствуйте, Denys V., Вы писали:
DV>И мне плиз засчитайте, ибо надоело уже.
Тебе пока рано засчитывать, ты ещё не перешёл на беспомощные фразы «лишь бы сказать». Но уже близко :)
DV>Уже и на пальцах объясняли и к RTFM аппелировали...
. Мне же на пальцах втирали про какие-то мифические .NET'овские 600 Мб супротив Сишных 60-ти — неубедительно и неправдоподобно.
DV>Предлагаю прекратить спор, ибо возможности Qt сравнивать с чисто MS продуктом смешно хотя бы потому что первое — кроссплатформа, второе — нет.
В том-то и дело, что начиналось всё с GUI-фреймворков, а потом зачем-то перешли на платформы разработки.
Здравствуйте, D. Mon, Вы писали:
Q>>Я мог бы попросить ещё пример кода, реализующего аппаратное ускорение для гуёвых контролов, но боюсь его увидеть DM>А кто-нибудь может показать пример, где использование OpenGL/Direct3d ускорило какой-нибудь обычный гуевый контрол? Неужели рисование какого-нибудь radio button'a путем формирования серии треугольников и пересылки их видеокарте быстрее обычного растрового рисования? http://labs.trolltech.com/blogs/2008/10/22/so-long-and-thanks-for-the-blit/