Re[12]: Следующий язык программирования
От: Sinclair Россия https://github.com/evilguest/
Дата: 27.09.05 09:30
Оценка: 2 (2) +2
Здравствуйте, Pavel Dvorkin, Вы писали:


PD>Вот и мои вопросы вовсе не тем объясняются, что не понимаю я идеологию .Net. Прекрасно понимаю, и что то, чего я хочу, не вполне корректно — тоже понимаю. Пока меня не припрет по скорости или памяти — я и не подумаю правила нарушать. А вот если припрет — может, и придется. Потому что отказаться от C# я, вполне возможно, и не смогу, а программу делать надо.


PD>И даже не это главное. Вопрос не столько в том, чтобы найти, где можно нарушить. Вопрос-то мой в совсем другом. Я же вижу, что попал в систему, в которой, мягко говоря, несколько иные принципы в плане эффективности исповедуются. Так вот, главное, что я понять хочу — где в ней основные неэффективнсти находятся !!!

Ты пытаешься сделать это очень странным методом. Ни по одному из вопросов, которые ты задаешь, не видно, что ты исследуешь эффективность дотнета.
Ну какое отношение к эффективности имеет возможность декларировать вложенные структуры в методах?
PD>Когда я в С++ програмирую, я всегда знаю, что мне та или иная конструкция стоить будет. А здесь — пока не знаю. И вот я вижу конструкцию, которая мне подозрительной по эффективности кажется. И спрашиваю — нельзя ли здесь как-то иначе. Потому как если начну я просто писать — как бы потом не вышло, что программа будет работать с неприемлемой скоростью. Подводные камни я найти хочу и знать о них заранее...
Угу. При этом ты почему-то вместо прямого вопроса типа "насколько дорого стоит A a = new A() для value-типов" начинаешь задавать совершенно другие вопросы, типа "как занулить все поля структуры, но по-другому, чем мне советуют".

Ты подходишь к дотнету с плохо скрытым внутренним вопросом типа "не правда ли, это тормозной и прожорливый отстой?" Это неправильный вопрос. Пока ты будешь им задаваться, никакого успеха ты не достигнешь. Надо ставить вопрос так: "Как писать эффективные приложения на дотнет?" Как ни странно, это возможно.
PD>А ты мне в ответ в 10-й раз — здесь указатели использовать нельзя и прямого доступа к памяти нет...
Верно. В общем, основная неэффективность в дотнете — это неэффективность слепого переноса привычных паттернов из других языков.


В общем и целом, этот вопрос уже поднимался не один раз. И в том числе на RSDN.
Для того, чтобы пользоваться дотнетом, надо научиться ровно одному — доверять рантайму. Ты уже доверяешь компилятору плюсов и тебе это кажется очевидным. (Хотя я вот лично знаю людей, которые до сих пор с подозрением относятся к плюсам и искренне полагают, что могут порвать любой компилер своими ассемблерными вставками. Увы, я пока ни разу не видел реального примера, где бы рвался хотя бы VC7.1 в релизе, не говоря уже про Intel)

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

И это все еще про джаву! А дотнет предоставляет еще больше средств повышения производительности. Как минимум, это value-типы, которых в джаве нет (тем не менее, веб приложения на джаве крайне трудно порвать хардкорным cgi на плюсах).
Кроме того, если тебе захочется написать в форум что-то типа "вот на плюсах я банально вызывал вот такую функцию из kernel32 и был щаслив", то не пиши это в форум. Банально вызови вот такую функцию из kernel32 через PInvoke и будь щаслив. В плюсах ты получаешь некоторую экномию времени только благодаря тому, что для тебя уже написаны тонны хидеров, корректно импортирующих все что надо. Для С# аналогом является http://pinvoke.net/. Все, что ты захочешь запэинвокать в ближайший год, там уже декларировано.

Удачи!
... << RSDN@Home 1.1.4 stable rev. 510>>
Уйдемте отсюда, Румата! У вас слишком богатые погреба.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.