Re[34]: Работа - с чего начать: С++ или С#?
От: vdimas Россия  
Дата: 20.05.09 20:20
Оценка: +2
Здравствуйте, samius, Вы писали:

S>У нас соотношение managed/native порядка 250/1. Интеропа почти нет.


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


S>На дотнете кончилась фантазия по выдумыванию как его ускорить, тупое переписывание один в один на плюсы дало ускорение в 1.5 раза.


Во-первых, один в один не всегда просто переписать, в нашем случае мессейджинг на ГЦ немного развязывает руки и всё упрощает.
Во-вторых, ускорение этого или другого подобного кода в 1.5 раза не прибавит и 1% общей производительности, т.к. этот код выполняется относительно редко, в моменты изменения состояний канала. И хоть такие изменения в независимых каналах происходят в нагруженной системе хаотично несколько раз в секунду, это все-равно очень редко.
В-третьих, если кусок кода после переписывания не ускоряется хотя бы вдвое, то я его оставляю до лучших времен.
В-четвертых, мне приходилось переписывать даже некоторый нативный код (над кодеками работал) для получения всего 20%-25% выигрыша, и оно того стоило.

----------
В общем, топик был про C# vs С++, я считаю полезным и то и другое. Из дотнета можно черпать мощь библиотек, из нейтива — мощь железки, сочетать с умом, и будет всем щастье.
Re[30]: Работа - с чего начать: С++ или С#?
От: MxKazan Португалия  
Дата: 20.05.09 20:20
Оценка: 2 (1)
Здравствуйте, MxKazan, Вы писали:

MK>Здравствуйте, vdimas, Вы писали:


V>>Тогда встречный ликбез для тебя: рантайм и основные .Net сборки (mscorlib, System) постоянно обновлялись после выхода второго фреймворка (когда я говорю второй фреймворк, то это именно релиз Microsoft .Net Framework 2.0, который действительно 2.0.50727). Одни из самых заметных обновлений рантайма, пришедшее с .Net 3.0 — это доработка GC, самое заметное изменение сборок версии 2.0.50727, пришедшее с .Net 3.5 — это интерфейс класса Socket из System.dll. А так по мелочи доработок была куча (начни от ссылки в пред. посте), от внутренних кишок System.Data, до дублирования и переноса по неймспейсам объявлений наиболее популярных интеропных COM структур и интерфейсов.

И для порядку, так сказать:

из презенташки Микрософта по 2010-й Студии...
Re[30]: Работа - с чего начать: С++ или С#?
От: criosray  
Дата: 20.05.09 21:23
Оценка: +1
Здравствуйте, MxKazan, Вы писали:

V>>Тогда встречный ликбез для тебя: рантайм и основные .Net сборки (mscorlib, System) постоянно обновлялись после выхода второго фреймворка (когда я говорю второй фреймворк, то это именно релиз Microsoft .Net Framework 2.0, который действительно 2.0.50727). Одни из самых заметных обновлений рантайма, пришедшее с .Net 3.0 — это доработка GC, самое заметное изменение сборок версии 2.0.50727, пришедшее с .Net 3.5 — это интерфейс класса Socket из System.dll. А так по мелочи доработок была куча (начни от ссылки в пред. посте), от внутренних кишок System.Data, до дублирования и переноса по неймспейсам объявлений наиболее популярных интеропных COM структур и интерфейсов.

MK>Короче это. Не сошлись вы в том, что один понял 3.0 как версию CLR, другой говорил о CLR, который шел вместе с 3-м FW. Вот и всё, рабочие моменты Кстати, я пару раз на собеседованиях слышал, что некоторые так и не перешли на третий FW, потому что ждут полноценно нового рантайма.

Очень глупо. 3.0 и особенно 3.5 это очень большой шаг вперед в сравнении с 2.0. CLR мало на что влияет как таковой.
Re[31]: Работа - с чего начать: С++ или С#?
От: criosray  
Дата: 20.05.09 21:50
Оценка:
Здравствуйте, MxKazan, Вы писали:

V>>>Тогда встречный ликбез для тебя: рантайм и основные .Net сборки (mscorlib, System) постоянно обновлялись после выхода второго фреймворка (когда я говорю второй фреймворк, то это именно релиз Microsoft .Net Framework 2.0, который действительно 2.0.50727). Одни из самых заметных обновлений рантайма, пришедшее с .Net 3.0 — это доработка GC, самое заметное изменение сборок версии 2.0.50727, пришедшее с .Net 3.5 — это интерфейс класса Socket из System.dll. А так по мелочи доработок была куча (начни от ссылки в пред. посте), от внутренних кишок System.Data, до дублирования и переноса по неймспейсам объявлений наиболее популярных интеропных COM структур и интерфейсов.

MK>И для порядку, так сказать:
MK>
MK>из презенташки Микрософта по 2010-й Студии...

vdimas: Я все еще жду от Вас публичных извинений и признания неправоты...
Re[30]: Работа - с чего начать: С++ или С#?
От: vdimas Россия  
Дата: 20.05.09 21:56
Оценка: 1 (1) +3 :))
Здравствуйте, MxKazan, Вы писали:

MK>- Изначально ты написал: "И еще забыл, что последние года 4 тактовая частота процов практически не растет, а обсуждаемого скачка оптимизации JIT-а при переходе на 3.0 версию не было ВООБЩЕ".

MK>- На что получил ответ, что рантайм по прежнему 2.0, что он не менялся со времен второго дотНета, ну нету CLR 3.0 и всё.

А откуда взялось слово CLR? Почему ты решил, что речь о CLR, а не о .Net Framework, например?

MK>- Тем не менее, как контраргумент ты выдвинул такое: "Тем не менее, сам рантайм и .Net-сборки от второго фреймворка обновлялись с выходом каждого последующего или их SP. Для интереса, вот список изменений только лишь для 2.0SP1 http://support.microsoft.com/kb/945757, остальное найти так же не трудно, если есть желание."


Человек дал понять, что там ничего и не могло поменяться, ввиду того, что версия CLR не менялась. Я попытался опровергнуть это "мнение", дав немного информации для затравки.

MK>Собственно отсюда и вывод, что сервис-паки каким-то магическим образом повышают версию.


А ну тогда ты прав, ведь .Net Framework 3.5SP1 — это следующая (более высокая) версия после .Net Framework 3.5

Знаешь, вот какая-то сплошная лень и инфатильность прет из форумов последние годы. Раньше достаточно было просто намекнуть, и все всё понимали, а теперь разжевать мало, надо не забыть в рот положить...

Ok, вот ложу еще и в рот:

В Windows версия файла состояит из 4-х полей: major, minor, build, revision. MS для версий своих продуктов тоже использует подобную маркировку, причем версии файлов старается маркировать так же как версии продуктов (не всегда правда, но не суть). Далее, хотя последние 2 поля давно используются по другому назначению, чем значит их перевод на русский, тем не менее для обозначения версии используюся именно целочисленных 4 поля (в классике было по 2 байта на каждое). Так вот, мой оппонент даже не потрудился открыть эксплорер и посмотреть на все 4 поля версии, про которую он так много говорил. Он бы тогда обнаружил, что последнее поле в версии постоянно изменяется, и оно вовсе не одинаковое у всех файлов. (Например сейчас последнее поле версии у разных файлов колеблется от 42 до 3053, а после первого выхода .Net 2.0SP1 номер в этом поле выше 926 не поднимался)

Итого: менялся сам рантайм, и, разумеется, менялись версии файлов, его составляющих (нельзя же было заменить файл, не обновив ему версию).

------------------
Для интереса — как это выглядит с моей стороны:
— я припомнил Владу те времена, когда он регулярно вещал не только про Немерле, но и про .Net, рассказывая как много и как просто будут делать будущие оптимизации. Потом это дело притихло, за год примерно перед выходом .Net 3.0 стала просачиваться сюда инсайдерская инфомация об возможных улучшениях рантайма, привязанная к выходу нового фреймворка, и опять же была куча разговоров о "перспективности" и оптимизациях и святого духа, Аминь.
— тут влазит некто, и озвучивает что-то про версию CLR и тут же озвучил мнение, что я не в курсе этого.
— я спрашиваю: и при чем тут?
— в ответ: ты даже не отличаешь CLR от .Net Framework и по той причине ламер.
Дабы не спугнуть, хотел аккуратными вопросами подвести человека к самостоятельному пониманию глубины поримой им... как бы это... невпопадицы, во.

Но не иначе там оказался кремень... по всему объему тела, не исключая жизненно важного для программиста органа, раз из-за такой, мягко говоря, муйни, вытекло столько постов.
Re[32]: Работа - с чего начать: С++ или С#?
От: vdimas Россия  
Дата: 20.05.09 22:22
Оценка:
Здравствуйте, criosray, Вы писали:

C>vdimas: Я все еще жду от Вас публичных извинений и признания неправоты...


Тут: http://www.rsdn.ru/Forum/message/3398010.1.aspx
Автор: vdimas
Дата: 21.05.09
Re[31]: Работа - с чего начать: С++ или С#?
От: criosray  
Дата: 20.05.09 22:42
Оценка:
Здравствуйте, vdimas, Вы писали:

MK>>- Изначально ты написал: "И еще забыл, что последние года 4 тактовая частота процов практически не растет, а обсуждаемого скачка оптимизации JIT-а при переходе на 3.0 версию не было ВООБЩЕ".

MK>>- На что получил ответ, что рантайм по прежнему 2.0, что он не менялся со времен второго дотНета, ну нету CLR 3.0 и всё.

V>А откуда взялось слово CLR? Почему ты решил, что речь о CLR, а не о .Net Framework, например?


Потому, что оптимизацией занимается именно CLR.
Re[32]: Работа - с чего начать: С++ или С#?
От: vdimas Россия  
Дата: 20.05.09 23:32
Оценка:
Здравствуйте, gandjustas, Вы писали:

G>>>Как это "априори неизвестен"? покажи мне API которые возвращают "незивестно сколько данных".

V>>Оно не возвращает, оно читает из сокета в наш предвыделенный буфер. После прочтения возвращает кол-во прочитанных байт. В пакете заголовок и собственно сами данные с неким смещением (зависит от заголовка). Данные обрабатываются прямо из этого буфера по указанной выше причине.
G>Так всетаки известно сколько данных.

Ну да, залили в буфер и нам известно сколько в нем прочитанных байт, мы это кол-во в _buffLen и храним.
Я действительно так непонятно выражаться стал, что из предыдущего не понял?


G>Так это и есть обычный FIR, надо будет тесты написать насколько хреново он работает в .NET.


Разве рекурсивный фильтр это FIR? В том сообщении я характер вычислений привел, а не всё целиком. Хотя, это не суть, просто БИХ, ИМХО, более экономные по вычислениям и сами вычисления не зависят от отношения частот семплов и среза.

V>>Да почитал, почитал. Сейчас я тебе контекст обрисовал, ты и сам видишь, что дополнительно параллелить там нечего. Вся система асинхронная, по приходу UDP-пакета ...

G>В вашем случае нужна система на базе асинхронных агентов, работающих с асинхронным IO.

Все еще нужна, или я таки озвучил "асинхронно"?

G>Не обязательно. Рецепт производства хороших hiload систем уже давно известен.


РецептЫ. Много аспектов, разная их важность и влияние на конкретные сценарии. В общем, система постоянно оптимизируется и будет оптимизироваться, но прямо все и сразу невозможно, поэтому по всем правилам военного исскуства сделаны пока лишь самые критические вещи.

G>Ну если выделенная память живет недолго, то в под .NET можно и выделять. Хотя это уже в конкретных случаях тестить надо.


Тестили многократно, сотни тысяч раз в секунду выделять нельзя, GC начинает мешать работе.
Re[31]: Работа - с чего начать: С++ или С#?
От: MxKazan Португалия  
Дата: 21.05.09 02:40
Оценка: -1
Здравствуйте, vdimas, Вы писали:

V>Здравствуйте, MxKazan, Вы писали:


MK>>- Изначально ты написал: "И еще забыл, что последние года 4 тактовая частота процов практически не растет, а обсуждаемого скачка оптимизации JIT-а при переходе на 3.0 версию не было ВООБЩЕ".

MK>>- На что получил ответ, что рантайм по прежнему 2.0, что он не менялся со времен второго дотНета, ну нету CLR 3.0 и всё.
V>А откуда взялось слово CLR? Почему ты решил, что речь о CLR, а не о .Net Framework, например?
Видимо, потому что ты говорил о JIT-е, который таки является частью именно CLR. Ты картинку то поглядел? Мы за последнее время привыкли к незнанию предмета со стороны *упорно голосующих*, так что подобное непонимание не удивительно.
Re[26]: Работа - с чего начать: С++ или С#?
От: landerhigh Пират  
Дата: 21.05.09 03:23
Оценка:
Здравствуйте, criosray, Вы писали:

C>На детские болезни программистов и прочие грабли я налетал примерно 11 лет тому назад, когда работал С/С++ программистом. Так что Ваш комментарий, молодой человек, несколько "мимо тазика".

Так и работал, C/C++ программистом? А это ничего, что такого языка нет и не было?
Re[34]: Работа - с чего начать: С++ или С#?
От: minorlogic Украина  
Дата: 21.05.09 05:06
Оценка:
Здравствуйте, gandjustas, Вы писали:

G>Здравствуйте, FR, Вы писали:


FR>>Шаблоны и классы нужны, позволяют получить более шустрый код чем чистый си.


G>Пример?


http://www.boost.org/doc/libs/1_35_0/libs/numeric/ublas/doc/index.htm
... << RSDN@Home 1.2.0 alpha 4 rev. 1111>>
Ищу работу, 3D, SLAM, computer graphics/vision.
Re[27]: Работа - с чего начать: С++ или С#?
От: criosray  
Дата: 21.05.09 07:14
Оценка:
Здравствуйте, landerhigh, Вы писали:


C>>На детские болезни программистов и прочие грабли я налетал примерно 11 лет тому назад, когда работал С/С++ программистом. Так что Ваш комментарий, молодой человек, несколько "мимо тазика".

L>Так и работал, C/C++ программистом? А это ничего, что такого языка нет и не было?

В каком месте при чтении Вашего ответа следует начинать смеяться?
Re[36]: Работа - с чего начать: С++ или С#?
От: CreatorCray  
Дата: 21.05.09 07:14
Оценка: 1 (1) +2
Здравствуйте, gandjustas, Вы писали:

G>>>Кроме того, повышается переносимость кода. При удачном стечении обстоятельств можно взять код на С и запустить его на видеокарте с помощью CUDA.

CC>>Снимай уже розовые очки.
CC>>На CUDA перенести удается только хорошо параллелящиеся алгоритмы. Все остальное превращается в УГ.
G>Читай внимательнее выделенное.
Ты в выделенном забыл написать слово "очень" после "при".
Далеко не все алгоритмы ложатся на CUDA. Далеко не все объемы данных выгоднее считать на CUDA. Пока еще слишком много "но" в этой технологии.
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Забанили по IP, значит пора закрыть эту страницу.
Всем пока
Re[32]: Работа - с чего начать: С++ или С#?
От: criosray  
Дата: 21.05.09 07:15
Оценка: :)))
Здравствуйте, MxKazan, Вы писали:


MK>>>- Изначально ты написал: "И еще забыл, что последние года 4 тактовая частота процов практически не растет, а обсуждаемого скачка оптимизации JIT-а при переходе на 3.0 версию не было ВООБЩЕ".

MK>>>- На что получил ответ, что рантайм по прежнему 2.0, что он не менялся со времен второго дотНета, ну нету CLR 3.0 и всё.
V>>А откуда взялось слово CLR? Почему ты решил, что речь о CLR, а не о .Net Framework, например?
MK>Видимо, потому что ты говорил о JIT-е, который таки является частью именно CLR. Ты картинку то поглядел? Мы за последнее время привыкли к незнанию предмета со стороны *упорно голосующих*, так что подобное непонимание не удивительно.

Не тратье время на него. Человек привселюдно опозорился, теперь пытается "съехать", будучи не в состоянии признать свою неправоту. Классический юношеский максимализм на лицо...
Re[46]: Работа - с чего начать: С++ или С#?
От: vdimas Россия  
Дата: 21.05.09 08:04
Оценка: +1
Здравствуйте, criosray, Вы писали:

C>Детский сад, вторая группа.


Да понимаешь...
В нашей профессии ничего сакрального быть не может по-определнию, и любая Методология не сложнее Алгоритма. Не понял? Прочти еще раз.

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

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

Как итог, немного чувствуем себя в роли тех самых новых ворот, которым взбрендилось разговорить своего известного созерцателя... Абыдно за потраченное ни на что время... Либо еще можно махнуть рукой и откровенно развлекаться.
Re[32]: Работа - с чего начать: С++ или С#?
От: vdimas Россия  
Дата: 21.05.09 08:32
Оценка:
Здравствуйте, criosray, Вы писали:

V>>А откуда взялось слово CLR? Почему ты решил, что речь о CLR, а не о .Net Framework, например?


C>Потому, что оптимизацией занимается именно CLR.


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

Вот за тебя твое домашнее задание: эти цифры всего лишь означают привязку к спецификации на байткод/метаинформацию и прочее. И эта спецификация действительно не менялась, но это не значит, что реализация этой спецификации не менялась.

А тут в тебе говорит чванство и лень, раз тебе сложно открыть эксплорер и убедиться наконец самому в том, что CLR еще как менялся, не смотря на изменность первых 3-х цифр в номере версии.
Re[32]: Работа - с чего начать: С++ или С#?
От: vdimas Россия  
Дата: 21.05.09 08:32
Оценка:
Здравствуйте, MxKazan, Вы писали:

V>>А откуда взялось слово CLR? Почему ты решил, что речь о CLR, а не о .Net Framework, например?

MK>Видимо, потому что ты говорил о JIT-е, который таки является частью именно CLR.

А CLR у нас теперь отдельно от фреймворков идёт?
Re[33]: Работа - с чего начать: С++ или С#?
От: vdimas Россия  
Дата: 21.05.09 08:48
Оценка: +1 -1 :)
Здравствуйте, criosray, Вы писали:

C>Человек привселюдно опозорился...


Угу, а во рту "сладко, сладко, сладко".
Не в состоянии обосновать своих утверждений — расписался в бессилии.
Re[33]: Работа - с чего начать: С++ или С#?
От: anton_t Россия  
Дата: 21.05.09 09:00
Оценка:
Здравствуйте, vdimas, Вы писали:

V>Здравствуйте, criosray, Вы писали:


V>>>А откуда взялось слово CLR? Почему ты решил, что речь о CLR, а не о .Net Framework, например?


C>>Потому, что оптимизацией занимается именно CLR.


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


V>Вот за тебя твое домашнее задание: эти цифры всего лишь означают привязку к спецификации на байткод/метаинформацию и прочее. И эта спецификация действительно не менялась, но это не значит, что реализация этой спецификации не менялась.


V>А тут в тебе говорит чванство и лень, раз тебе сложно открыть эксплорер и убедиться наконец самому в том, что CLR еще как менялся, не смотря на изменность первых 3-х цифр в номере версии.


Чем правее самая старшая изменённая цифра в версии, тем меньше фич добавляется и тем мельче фичи. Причём чаще всего изменение младших двух цифр включет в себя в основном багфиксы. И ты хочешь, что бы при изменении самомй младшей цифры версии дотнета майкрософт начал переколбашивать jit?
Re[33]: Работа - с чего начать: С++ или С#?
От: MxKazan Португалия  
Дата: 21.05.09 09:20
Оценка:
Здравствуйте, vdimas, Вы писали:

V>Здравствуйте, MxKazan, Вы писали:


V>>>А откуда взялось слово CLR? Почему ты решил, что речь о CLR, а не о .Net Framework, например?

MK>>Видимо, потому что ты говорил о JIT-е, который таки является частью именно CLR.
V>А CLR у нас теперь отдельно от фреймворков идёт?
А что это меняет? Ну слушай, уже разобрались что к чему, давай не будем пускаться в демагогию.
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.