|
Проблемы с преждевременностью, задержкой и недержанием...
|
|||
---|---|---|---|
#18+
...оптимизаций. Может кто пояснить, в этих ваших процессорах что, нет отдельных блоков, как в видеокартах - отдельно для половинок, отдельно для синглов, отдельно для даблов? Ну, не секрет же, что в видеокартах производительность в разной точности вычислений разная, потому что для каждого типа чисел у видеокарт свои блоки вычислений. А вот в процессорах как - так же? Я к тому, что если не так, то как? Вроде, слышал, что все эти (в терминах C#) byte, short, int, long, когда исполняются на 64-разрядном процессоре, дополняются до 64 бит нулевыми бытами в старшие разряды. Т. е., все мои переменные, которые я ввожу для "экономии памяти", типа float вместо double, byte или short вместо long и т. п. - всё это "разоптимизируется" обратно в самые удобные для процессора длины данных. Вроде, как в процессоре или компиляторе есть всякие такие штуки, что если подряд идут короткие типы данных и над ними подряд делается одна и та же операция, то он таки может затолкать несколько таких коротких данных в одно длинное и за одну операцию сделать несколько операций, но это редко когда - не всегда же такие подряд последовательности встречаются. Т. е. когда однотипных данных мало и операции над ними разные, то всегда идёт дополнение до максимальной разрядности. Так? Просьба ответить не ссылками на длинные статьи, а прям тут, несколькими предложениями. Я не полностью архитектуру и работу процессоров хочу понять, а просто уяснить для себя пару вопросов. Просто некоторые сишники и сиплюсплюсники и прочие ассемблерщики каждый битик считают. И когда видят мой код, где я размашисто так даблы везде использую, тут же говорят, а зачем тебе - у тебя же от силы половина точности. Ты давай на флоаты перейди, затолкай вот эту свою кучку флагов в битовые последовательности, считай не умножением или делением, а смещением битов. Как они надоели уже! Я им говорю, что у меня высокоуровневый язык, что обо всём этом компилятор позаботится. А если не позаботится, то и нафиг не надо. А они тут же начинают обзываться быдлокодеров, формошлёпом, "да нас за такое в своё время старшИе по рукам били". Такое ощущение, что "высокоуровневый" язык они понимают в смысле "для людей высокого положения, господ", а низкоуровневый - "для холопов". И обижаются, и стараются тебя унизить. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.04.2015, 05:05 |
|
Проблемы с преждевременностью, задержкой и недержанием...
|
|||
---|---|---|---|
#18+
авторИ когда видят мой код, где я размашисто так даблы везде использую, тут же говорят, а зачем тебе - у тебя же от силы половина точности. Ты давай на флоаты перейди Особенно интересно, что почти все методы в классе Math работают с даблами. При этом константы все - тоже даблы. И при этом они захардкодены всего до нескольких знаков после запятой. Число Пи? - Вам и пяти знаков после запятой хватит. Но при этом это дабл, да. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.04.2015, 05:22 |
|
Проблемы с преждевременностью, задержкой и недержанием...
|
|||
---|---|---|---|
#18+
НемоКэп42Я не полностью архитектуру и работу процессоров хочу понять, а просто уяснить для себя пару вопросов.Ответ на первый вопрос: открой для себя встроенный математический сопроцессор. НемоКэп42Просто некоторые сишники и сиплюсплюсники и прочие ассемблерщики каждый битик считают. И когда видят мой код...Ответ на второй вопрос: показывай не код, а бенчмарки. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.04.2015, 07:45 |
|
Проблемы с преждевременностью, задержкой и недержанием...
|
|||
---|---|---|---|
#18+
И ещё сейчас обязательно надо вставить что-нибудь про RyuJIT, SIMD и Бенуа Мандельброта. The JIT finally proposed. JIT and SIMD are getting married. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.04.2015, 07:57 |
|
Проблемы с преждевременностью, задержкой и недержанием...
|
|||
---|---|---|---|
#18+
НемоКэп42Просто некоторые сишники и сиплюсплюсники и прочие ассемблерщики каждый битик считают. И когда видят мой код, где я размашисто так даблы везде использую, тут же говорят, а зачем тебе - у тебя же от силы половина точности. Ты давай на флоаты перейди, затолкай вот эту свою кучку флагов в битовые последовательности, считай не умножением или делением, а смещением битов. Как они надоели уже! Я им говорю, что у меня высокоуровневый язык, что обо всём этом компилятор позаботится. А если не позаботится, то и нафиг не надо. А они тут же начинают обзываться быдлокодеров, формошлёпом, "да нас за такое в своё время старшИе по рукам били". Такое ощущение, что "высокоуровневый" язык они понимают в смысле "для людей высокого положения, господ", а низкоуровневый - "для холопов". И обижаются, и стараются тебя унизить.Предложи им написать какой-нибудь банальный SQL запрос к терабайтной БД - их ЧСВ понизится до нуля, некоторые впадут в депрессию. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.04.2015, 09:25 |
|
Проблемы с преждевременностью, задержкой и недержанием...
|
|||
---|---|---|---|
#18+
НемоКэп42...оптимизаций. Просто некоторые сишники и сиплюсплюсники и прочие ассемблерщики каждый битик считают. Есть и другие крайности - типа создания потоков в цикле. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.04.2015, 09:43 |
|
Проблемы с преждевременностью, задержкой и недержанием...
|
|||
---|---|---|---|
#18+
С# не предназначен для написания быстродействующих приложений, поэтому никакой приличной оптимизации там нет. На слабых машинах (субноуты к примеру) .NET отключает даже JIT компиляцию, и приложение работает в режиме интерпретации IL кода. Поэтому глупо сравнивать шарп с нативными компиляторами C/C++, это две разные вселенные живущие по-своим законам. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.04.2015, 10:48 |
|
Проблемы с преждевременностью, задержкой и недержанием...
|
|||
---|---|---|---|
#18+
EoltС# не предназначен для написания быстродействующих приложений, поэтому никакой приличной оптимизации там нет. На слабых машинах (субноуты к примеру) .NET отключает даже JIT компиляцию, и приложение работает в режиме интерпретации IL кода. Поэтому глупо сравнивать шарп с нативными компиляторами C/C++, это две разные вселенные живущие по-своим законам. +1. А ещё есть параллелинг. Пусть топикастерские сишники напишут функцию, которая разбивает поиск в массиве на потоки - и раздает эти потоки всем доступным ядрам в системе. :-) ... |
|||
:
Нравится:
Не нравится:
|
|||
07.04.2015, 11:32 |
|
Проблемы с преждевременностью, задержкой и недержанием...
|
|||
---|---|---|---|
#18+
D129EoltС# не предназначен для написания быстродействующих приложений, поэтому никакой приличной оптимизации там нет. На слабых машинах (субноуты к примеру) .NET отключает даже JIT компиляцию, и приложение работает в режиме интерпретации IL кода. Поэтому глупо сравнивать шарп с нативными компиляторами C/C++, это две разные вселенные живущие по-своим законам. +1. А ещё есть параллелинг. Пусть топикастерские сишники напишут функцию, которая разбивает поиск в массиве на потоки - и раздает эти потоки всем доступным ядрам в системе. :-) Пишем простой ThreadPool с async и future ... |
|||
:
Нравится:
Не нравится:
|
|||
07.04.2015, 11:37 |
|
Проблемы с преждевременностью, задержкой и недержанием...
|
|||
---|---|---|---|
#18+
EoltС# не предназначен для написания быстродействующих приложений, поэтому никакой приличной оптимизации там нет. На слабых машинах (субноуты к примеру) .NET отключает даже JIT компиляцию, и приложение работает в режиме интерпретации IL кода. Поэтому глупо сравнивать шарп с нативными компиляторами C/C++, это две разные вселенные живущие по-своим законам. Я бы так не сказал. Умеючи на C# из .NET-а можно выжать вполне приличную скорость, сопоставимую с аналогом на C++. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.04.2015, 11:46 |
|
Проблемы с преждевременностью, задержкой и недержанием...
|
|||
---|---|---|---|
#18+
Алексей К Вот оно! авторОкей, пул мы создали, как передать в него нашу функцию? Для этого мы используем новые возможности С++11 такие как std::bind, лямбды , std::function и variadic templates. И куда пойдет нанооптимизация в этом случае? :-) ... |
|||
:
Нравится:
Не нравится:
|
|||
07.04.2015, 11:50 |
|
Проблемы с преждевременностью, задержкой и недержанием...
|
|||
---|---|---|---|
#18+
EoltС# не предназначен для написания быстродействующих приложений, поэтому никакой приличной оптимизации там нет. На слабых машинах (субноуты к примеру) .NET отключает даже JIT компиляцию, и приложение работает в режиме интерпретации IL кода. Поэтому глупо сравнивать шарп с нативными компиляторами C/C++, это две разные вселенные живущие по-своим законам. а что, компилятор с++ сразу прям любой код сделает офигенным?:) ... |
|||
:
Нравится:
Не нравится:
|
|||
07.04.2015, 12:07 |
|
Проблемы с преждевременностью, задержкой и недержанием...
|
|||
---|---|---|---|
#18+
netivanа что, компилятор с++ сразу прям любой код сделает офигенным?:) естественно! и любые программы на с++ быстры. это ж очевидно! ... |
|||
:
Нравится:
Не нравится:
|
|||
07.04.2015, 12:09 |
|
Проблемы с преждевременностью, задержкой и недержанием...
|
|||
---|---|---|---|
#18+
netivanа что, компилятор с++ сразу прям любой код сделает офигенным?:) Да, и при этом крайне рекомендуется говнокодить, потому что компилятору интересно оптимизировать такой код в 'хороший и быстрый'. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.04.2015, 12:12 |
|
Проблемы с преждевременностью, задержкой и недержанием...
|
|||
---|---|---|---|
#18+
EoltС# не предназначен для написания быстродействующих приложений, поэтому никакой приличной оптимизации там нет.А по существу? Каких оптимизаций нет в Jit? И в каком из? :) ... |
|||
:
Нравится:
Не нравится:
|
|||
07.04.2015, 12:43 |
|
Проблемы с преждевременностью, задержкой и недержанием...
|
|||
---|---|---|---|
#18+
D129Алексей К Вот оно! авторОкей, пул мы создали, как передать в него нашу функцию? Для этого мы используем новые возможности С++11 такие как std::bind, лямбды , std::function и variadic templates. И куда пойдет нанооптимизация в этом случае? :-)Интерфейсы? ... |
|||
:
Нравится:
Не нравится:
|
|||
07.04.2015, 13:05 |
|
Проблемы с преждевременностью, задержкой и недержанием...
|
|||
---|---|---|---|
#18+
Алексей КИнтерфейсы? Не, я в том смысле, что общие библиотеки будут использовать более вместимые типы - для обеспечения прозрачности. И как раз преобразовывать float в double.... А лямбды - как-то должна быть организована уборка мусора - разве нет? И в результате - "брюки (С++) превращаются в элегантные шорты".... Все равно приходим к ситуации, что нанооптимизации не имеют смысла (оговорки естественно есть). ... |
|||
:
Нравится:
Не нравится:
|
|||
07.04.2015, 13:12 |
|
Проблемы с преждевременностью, задержкой и недержанием...
|
|||
---|---|---|---|
#18+
hVosttЯ бы так не сказал. Умеючи на C# из .NET-а можно выжать вполне приличную скорость, сопоставимую с аналогом на C++. Нельзя, всегда будут потери времени на JIT-компиляцию и отсутствие оптимизации кода компилятором. C# ни для этого создавался, это средство быстрой разработки, компонентов на форму навалил, минимум кода и прожка кое-как работает. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.04.2015, 13:23 |
|
Проблемы с преждевременностью, задержкой и недержанием...
|
|||
---|---|---|---|
#18+
Eolt, не заливайте, оптимизация кода в JIT-е присутсвует. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.04.2015, 13:29 |
|
Проблемы с преждевременностью, задержкой и недержанием...
|
|||
---|---|---|---|
#18+
skyANAEolt, не заливайте, оптимизация кода в JIT-е присутсвует. Какая еще оптимизация? Наличие галочки Optimize Code в свойствах проекта? На оптимизацию нужно большое время, можете сравнить время сборки проекта на плюсах с опцией /O2 и шарпового. У JIT-просто нет времени нормально оптимизировать код, он должен как можно быстрее скомпилировать код и запустить его, чтобы не вызывать раздражение пользователя. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.04.2015, 13:40 |
|
Проблемы с преждевременностью, задержкой и недержанием...
|
|||
---|---|---|---|
#18+
Eolt, Читаем матчасть про Release mode... ... |
|||
:
Нравится:
Не нравится:
|
|||
07.04.2015, 13:43 |
|
Проблемы с преждевременностью, задержкой и недержанием...
|
|||
---|---|---|---|
#18+
EoltskyANAEolt, не заливайте, оптимизация кода в JIT-е присутсвует. Какая еще оптимизация?Ну к примеру Jit Optimizations: Inlining . ... |
|||
:
Нравится:
Не нравится:
|
|||
07.04.2015, 13:47 |
|
Проблемы с преждевременностью, задержкой и недержанием...
|
|||
---|---|---|---|
#18+
... |
|||
:
Нравится:
Не нравится:
|
|||
07.04.2015, 13:51 |
|
Проблемы с преждевременностью, задержкой и недержанием...
|
|||
---|---|---|---|
#18+
EoltНельзя, всегда будут потери времени на JIT-компиляцию и отсутствие оптимизации кода компилятором. C# ни для этого создавался, это средство быстрой разработки, компонентов на форму навалил, минимум кода и прожка кое-как работает. Не буду спорить, так как видно, что ты просто не в теме. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.04.2015, 13:51 |
|
Проблемы с преждевременностью, задержкой и недержанием...
|
|||
---|---|---|---|
#18+
... |
|||
:
Нравится:
Не нравится:
|
|||
07.04.2015, 13:53 |
|
Проблемы с преждевременностью, задержкой и недержанием...
|
|||
---|---|---|---|
#18+
Вернёмся к теме: CLR and floating point: Some answers to common questions . ... |
|||
:
Нравится:
Не нравится:
|
|||
07.04.2015, 13:55 |
|
Проблемы с преждевременностью, задержкой и недержанием...
|
|||
---|---|---|---|
#18+
skyANAИ ещё сейчас обязательно надо вставить что-нибудь про RyuJIT, SIMD и Бенуа Мандельброта. The JIT finally proposed. JIT and SIMD are getting married. Круто выглядящая прожка! Ты написал? На universal apps with continuity? ... |
|||
:
Нравится:
Не нравится:
|
|||
07.04.2015, 13:55 |
|
Проблемы с преждевременностью, задержкой и недержанием...
|
|||
---|---|---|---|
#18+
AxeleronEolt, Читаем матчасть про Release mode... Поменьше читайте всякую лабуду. Практика лучше. К примеру я использую BCGControlBarPro для MFC и его клон BCGControlBarDotNet под .NET написанный на C++/CLI. И могу тупо сравнить быстродействие сэмплов в релизе на нативном коде и управляемом. И меня очень печалит медленная работа UI написанного .Net. Почему в 2015 году, на мощной машине я должен пользоваться тормозным GUI и видеть как прорисовываются менюшки и тултипы? Почему аналог для MFC работает со-скоростью пули, а .NET`овский тормозит безбожно? ... |
|||
:
Нравится:
Не нравится:
|
|||
07.04.2015, 14:01 |
|
Проблемы с преждевременностью, задержкой и недержанием...
|
|||
---|---|---|---|
#18+
EoltПоменьше читайте всякую лабуду. Практика лучше. Сколько лет у Вас практики написания .NET приложений? ... |
|||
:
Нравится:
Не нравится:
|
|||
07.04.2015, 14:05 |
|
Проблемы с преждевременностью, задержкой и недержанием...
|
|||
---|---|---|---|
#18+
EoltПочему аналог для MFC работает со-скоростью пули, а .NET`овский тормозит безбожно? Это насколько надо не разбираться в теме обсуждения, чтобы сравнивать managed и unmanaged код? Вы не попутали ничего? Сколько секунд занимает создать одно обычное окно с кнопкой и обработчиков для нее на C# и на C++ с нуля? ... |
|||
:
Нравится:
Не нравится:
|
|||
07.04.2015, 14:07 |
|
Проблемы с преждевременностью, задержкой и недержанием...
|
|||
---|---|---|---|
#18+
AxeleronСколько секунд занимает создать одно обычное окно с кнопкой и обработчиков для нее на C# и на C++ с нуля? А "с нуля" это как? Что на Дельфи, что на Винформах можно "программировать мышкой". Да и вообще, это нынче не показатель. Так-то по этому показателю будет джаваскрипт с HTML впереди всех - там вообще текстовый файлик обновил и ф5 нажал. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.04.2015, 14:17 |
|
Проблемы с преждевременностью, задержкой и недержанием...
|
|||
---|---|---|---|
#18+
EoltПочему аналог для MFC работает со-скоростью пули, а .NET`овский тормозит безбожно?Вангую, что клонировали через одно место. Код смотреть пробовали? Профилировать? ... |
|||
:
Нравится:
Не нравится:
|
|||
07.04.2015, 14:17 |
|
Проблемы с преждевременностью, задержкой и недержанием...
|
|||
---|---|---|---|
#18+
AxeleronEoltПочему аналог для MFC работает со-скоростью пули, а .NET`овский тормозит безбожно? Это насколько надо не разбираться в теме обсуждения, чтобы сравнивать managed и unmanaged код? Вы не попутали ничего? Сколько секунд занимает создать одно обычное окно с кнопкой и обработчиков для нее на C# и на C++ с нуля? Вы первый пост читали? Или сразу с середины обсуждения? Человек расстраивался, что его учат оптимизации злые сишники-байтоепы. На что я написал, что низкоуровненая оптимизация кода такого сверхвысокоуровневого языка как C# бессмысленна, нет смысла считать байты и выравнивать структуры в памяти, если у тебя по-сути полуинтерпритатор, не делающих серьезных оптимизаций во время сборки проекта. 1С код же не оптимизируют, не для этого создаются такие среды программирования. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.04.2015, 14:22 |
|
Проблемы с преждевременностью, задержкой и недержанием...
|
|||
---|---|---|---|
#18+
skyANAОтвет на первый вопрос: открой для себя встроенный математический сопроцессор. Да не так. Идея в том, что блоки в видюхах вроде как не по целости-вещественности чисел отличаются, а по размеру этих чисел. Т. е. для флоатов и для даблов там разные блоки. Причём не какие-то регистры памяти, а, как я понимаю, именно вычислительные блоки - все эти куды, шейдеры. Смотри, как Хуанг лохов обувает по даблам на новой титьке: http://www.pcworld.com/article/2896411/the-brutal-graphics-war-continues-as-nvidia-reveals-the-geforce-gtx-titan-x.html ... |
|||
:
Нравится:
Не нравится:
|
|||
07.04.2015, 14:23 |
|
Проблемы с преждевременностью, задержкой и недержанием...
|
|||
---|---|---|---|
#18+
НемоКэп42AxeleronСколько секунд занимает создать одно обычное окно с кнопкой и обработчиков для нее на C# и на C++ с нуля? А "с нуля" это как? А с нуля - это запустил среду разработки и вперед, время пошло, начиная от первой шага и до запуска готовой программы. НемоКэп42Что на Дельфи, что на Винформах можно "программировать мышкой". Да и вообще, это нынче не показатель. Это показатель, потому что на C++ и С# пишутся по сути разные целевые приложения, у которых свои требования. Вы ряд ли станете разрабатывать апликацию с гридами и вводом, выводом данных с базы на C++, потому что долго и непродуктивно. Человек этого не понимает - он хочет одинаковой скорости выполнения программы на том и другом языке. Он пока, правда, еще не знает, что для клиента на C# придется ставить .NET Framework... НемоКэп42Так-то по этому показателю будет джаваскрипт с HTML впереди всех - там вообще текстовый файлик обновил и ф5 нажал. JS - некомпилируемый язык, а интерпретируемый, так что он не в счет. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.04.2015, 14:24 |
|
Проблемы с преждевременностью, задержкой и недержанием...
|
|||
---|---|---|---|
#18+
НемоКэп42skyANAОтвет на первый вопрос: открой для себя встроенный математический сопроцессор. Да не так. Идея в том, что блоки в видюхах вроде как не по целости-вещественности чисел отличаются, а по размеру этих чисел. Т. е. для флоатов и для даблов там разные блоки. Причём не какие-то регистры памяти, а, как я понимаю, именно вычислительные блоки - все эти куды, шейдеры. Вот я и спрашивал - в обычных CPU тоже такое, или там самые длинные регистры берут на себя всю работу. И если второе - самые длинные - то как они работают с короткими данными? Дополняют их до длинных, или пихают несколько коротких в одно длинное, или ещё как-то? ... |
|||
:
Нравится:
Не нравится:
|
|||
07.04.2015, 14:25 |
|
Проблемы с преждевременностью, задержкой и недержанием...
|
|||
---|---|---|---|
#18+
skyANAEoltПочему аналог для MFC работает со-скоростью пули, а .NET`овский тормозит безбожно?Вангую, что клонировали через одно место. Возможно в BCGSoft плохие разработчики, и код пишут плохой. Не зря же у них Майкрософт купила их исходный код и внедрила в новый релиз MFC. авторКод смотреть пробовали? Профилировать? да, но какой смысл стегать кнутом мертвую лошадь? Что я смогу ускорить JIT-компиляцию? Или отключить сборщик мусора, чтобы он не ставил палки в колеса? ... |
|||
:
Нравится:
Не нравится:
|
|||
07.04.2015, 14:29 |
|
Проблемы с преждевременностью, задержкой и недержанием...
|
|||
---|---|---|---|
#18+
EoltAxeleronпропущено... Это насколько надо не разбираться в теме обсуждения, чтобы сравнивать managed и unmanaged код? Вы не попутали ничего? Сколько секунд занимает создать одно обычное окно с кнопкой и обработчиков для нее на C# и на C++ с нуля? Вы первый пост читали? Или сразу с середины обсуждения? Человек расстраивался, что его учат оптимизации злые сишники-байтоепы. На что я написал, что низкоуровненая оптимизация кода такого сверхвысокоуровневого языка как C# бессмысленна, нет смысла считать байты и выравнивать структуры в памяти, если у тебя по-сути полуинтерпритатор (???) (!!!) , не делающих серьезных оптимизаций во время сборки проекта. 1С код же не оптимизируют, не для этого создаются такие среды программирования. Нет никаких ни полу ни интерпретаторов для C#, это чисто и 100% компилируемый ЯП, во время компиляции переводимый в MSIL код, который заодно во время компиляции может быть и оптимизирован. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.04.2015, 14:29 |
|
Проблемы с преждевременностью, задержкой и недержанием...
|
|||
---|---|---|---|
#18+
EoltавторКод смотреть пробовали? Профилировать? да, но какой смысл стегать кнутом мертвую лошадь? Что я смогу ускорить JIT-компиляцию? Или отключить сборщик мусора, чтобы он не ставил палки в колеса?Профилировали? Ну и что конкретно тормозит? ... |
|||
:
Нравится:
Не нравится:
|
|||
07.04.2015, 14:30 |
|
Проблемы с преждевременностью, задержкой и недержанием...
|
|||
---|---|---|---|
#18+
Eoltда, но какой смысл стегать кнутом мертвую лошадь? Что я смогу ускорить JIT-компиляцию? Или отключить сборщик мусора, чтобы он не ставил палки в колеса? Ну все... С этого момента перемешались кони-люди... Вы отличаете compile-time от run-time? ... |
|||
:
Нравится:
Не нравится:
|
|||
07.04.2015, 14:30 |
|
Проблемы с преждевременностью, задержкой и недержанием...
|
|||
---|---|---|---|
#18+
EoltskyANAпропущено... Вангую, что клонировали через одно место. Возможно в BCGSoft плохие разработчики, и код пишут плохой. Не зря же у них Майкрософт купила их исходный код и внедрила в новый релиз MFC.C++ код у них хороший, а C# код говно. Что не так? ... |
|||
:
Нравится:
Не нравится:
|
|||
07.04.2015, 14:31 |
|
Проблемы с преждевременностью, задержкой и недержанием...
|
|||
---|---|---|---|
#18+
AxeleronEoltда, но какой смысл стегать кнутом мертвую лошадь? Что я смогу ускорить JIT-компиляцию? Или отключить сборщик мусора, чтобы он не ставил палки в колеса? Ну все... С этого момента перемешались кони-люди... Вы отличаете compile-time от run-time? С этим я погорячился ... |
|||
:
Нравится:
Не нравится:
|
|||
07.04.2015, 14:33 |
|
Проблемы с преждевременностью, задержкой и недержанием...
|
|||
---|---|---|---|
#18+
... |
|||
:
Нравится:
Не нравится:
|
|||
07.04.2015, 14:34 |
|
Проблемы с преждевременностью, задержкой и недержанием...
|
|||
---|---|---|---|
#18+
AxeleronНет никаких ни полу ни интерпретаторов для C#, это чисто и 100% компилируемый ЯП, во время компиляции переводимый в MSIL код, который заодно во время компиляции может быть и оптимизирован. А вы знаете, что MSIL код может не компилироваться JIT-компилятором, если загрузка системы в данный момент выше определенного уровня? Руссиновича читали? На слабых/загруженных системах, где нет ресурсов для работы JIT, IL-код будет работать в режиме интерпретации. Это не 100% компилятор, точно вам говорю. Это интерпретатор бай-кода. Конечно можно компилировать сборки во время установки NGEN`ом и копировать их в кэш, но это невсегда удобно. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.04.2015, 14:37 |
|
Проблемы с преждевременностью, задержкой и недержанием...
|
|||
---|---|---|---|
#18+
hVosttnetivanа что, компилятор с++ сразу прям любой код сделает офигенным?:) естественно! и любые программы на с++ быстры. это ж очевидно! В крайнем случае, любой программист С++ достаточно компетентен, чтобы не стрелять себе в ноги. А сколько лет он до этого ломал чужие сервера и коптил мир - это опустим за кадр. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.04.2015, 14:37 |
|
Проблемы с преждевременностью, задержкой и недержанием...
|
|||
---|---|---|---|
#18+
D129И в результате - "брюки (С++) превращаются в элегантные шорты".... В элегантные "шарпы". ... |
|||
:
Нравится:
Не нравится:
|
|||
07.04.2015, 14:40 |
|
Проблемы с преждевременностью, задержкой и недержанием...
|
|||
---|---|---|---|
#18+
НемоКэп42В крайнем случае, любой программист С++ достаточно компетентен, чтобы не стрелять себе в ноги. Это точно. У тех, кто приходит в шарп с бейсиков происходит ломка других шаблонов. :-) ... |
|||
:
Нравится:
Не нравится:
|
|||
07.04.2015, 14:43 |
|
Проблемы с преждевременностью, задержкой и недержанием...
|
|||
---|---|---|---|
#18+
EoltskyANAEolt, не заливайте, оптимизация кода в JIT-е присутсвует. Какая еще оптимизация? Наличие галочки Optimize Code в свойствах проекта? На оптимизацию нужно большое время, можете сравнить время сборки проекта на плюсах с опцией /O2 и шарпового. У JIT-просто нет времени нормально оптимизировать код, он должен как можно быстрее скомпилировать код и запустить его, чтобы не вызывать раздражение пользователя. А вроде в шарпе есть настройка типа "зааптимизировать прям щас, джиттер отключить"? Т. е. можно скомпилить для конкретной платформы и джиттер на этой платформе работать не будет. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.04.2015, 14:43 |
|
Проблемы с преждевременностью, задержкой и недержанием...
|
|||
---|---|---|---|
#18+
Axeleronчто для клиента на C# придется ставить .NET Framework... Нафиг клиентов, не уважающих винду. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.04.2015, 14:48 |
|
Проблемы с преждевременностью, задержкой и недержанием...
|
|||
---|---|---|---|
#18+
НемоКэп42В крайнем случае, любой программист С++ достаточно компетентен, чтобы не стрелять себе в ноги. А сколько лет он до этого ломал чужие сервера и коптил мир - это опустим за кадр. У меня дежавю какое-то. Нет, конечно это всё глупости, выдумки, и неправда. Не любой программист С++ достаточно компетентен, с другой стороны достаточно компетентный программист не будет стрелять себе в ногу в любом языке программирования, даже в JS. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.04.2015, 14:49 |
|
Проблемы с преждевременностью, задержкой и недержанием...
|
|||
---|---|---|---|
#18+
D129Алексей КИнтерфейсы? Не, я в том смысле, что общие библиотеки будут использовать более вместимые типы - для обеспечения прозрачности. И как раз преобразовывать float в double....Ну шаблоны/макросы есть, может и не придётся. D129А лямбды - как-то должна быть организована уборка мусора - разве нет?Возможна малобюджетная реализация без замыканий, как в Delphi. D129И в результате - "брюки (С++) превращаются в элегантные шорты".... Все равно приходим к ситуации, что нанооптимизации не имеют смысла (оговорки естественно есть).Да. Но возможность использования в программе 10+ способов работы со строками благоприятно влияет на ЧСВ. :-) ... |
|||
:
Нравится:
Не нравится:
|
|||
07.04.2015, 14:51 |
|
Проблемы с преждевременностью, задержкой и недержанием...
|
|||
---|---|---|---|
#18+
НемоКэп42Eoltпропущено... Какая еще оптимизация? Наличие галочки Optimize Code в свойствах проекта? На оптимизацию нужно большое время, можете сравнить время сборки проекта на плюсах с опцией /O2 и шарпового. У JIT-просто нет времени нормально оптимизировать код, он должен как можно быстрее скомпилировать код и запустить его, чтобы не вызывать раздражение пользователя. А вроде в шарпе есть настройка типа "зааптимизировать прям щас, джиттер отключить"? Т. е. можно скомпилить для конкретной платформы и джиттер на этой платформе работать не будет. Можно на машине, где будет запускаться JIT компиляция и исполняться код предкомпилировать (подготовить) вызываемые методы из сборок 'вручную' заранее. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.04.2015, 14:56 |
|
Проблемы с преждевременностью, задержкой и недержанием...
|
|||
---|---|---|---|
#18+
AxeleronМожно на машине, где будет запускаться JIT компиляция и исполняться код предкомпилировать (подготовить) вызываемые методы из сборок 'вручную' заранее. Да можно, но сборщик мусора вашим пожеланиями не управляется. Это в некоторых игрушках на C# хорошо видно, когда игровой процесс замораживается на какое-то время, сразу ясно что GC сейчас работает. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.04.2015, 14:59 |
|
Проблемы с преждевременностью, задержкой и недержанием...
|
|||
---|---|---|---|
#18+
Сдаётся мне, что тормоза .Net к наличию JIT не имеют никакого отношения... ... |
|||
:
Нравится:
Не нравится:
|
|||
07.04.2015, 14:59 |
|
Проблемы с преждевременностью, задержкой и недержанием...
|
|||
---|---|---|---|
#18+
EoltAxeleronМожно на машине, где будет запускаться JIT компиляция и исполняться код предкомпилировать (подготовить) вызываемые методы из сборок 'вручную' заранее. Да можно, но сборщик мусора вашим пожеланиями не управляется. Это в некоторых игрушках на C# хорошо видно, когда игровой процесс замораживается на какое-то время, сразу ясно что GC сейчас работает.О недостатках сказал, теперь самое время поговорить о преимуществах. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.04.2015, 15:00 |
|
Проблемы с преждевременностью, задержкой и недержанием...
|
|||
---|---|---|---|
#18+
EoltДа можно, но сборщик мусора вашим пожеланиями не управляется. Это в некоторых игрушках на C# хорошо видно, когда игровой процесс замораживается на какое-то время, сразу ясно что GC сейчас работает. Т.е. вы искренне считаете, что памятью в .NET нельзя управлять на манер C++? Ну если так, то да ... |
|||
:
Нравится:
Не нравится:
|
|||
07.04.2015, 15:05 |
|
Проблемы с преждевременностью, задержкой и недержанием...
|
|||
---|---|---|---|
#18+
Алексей КО недостатках сказал, теперь самое время поговорить о преимуществах. Это недостаток знаний и опыта всего лишь. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.04.2015, 15:06 |
|
Проблемы с преждевременностью, задержкой и недержанием...
|
|||
---|---|---|---|
#18+
Алексей КСдаётся мне, что тормоза .Net к наличию JIT не имеют никакого отношения... JIT это не единственная причина, по-которой управляемые приложения медленнее нативных. Тут еще огромный слой библиотек над нативным Win32/64 API. Это когда вызываешь функцию .NET а она обертка над WinAPI функцией. Но можно сразу вызывать WinAPI напрямую не пользуясь какой-то там .NET прокладкой. Экономить время и ресурсы. Это и дурацкие, не отключаемые в .NET проверки переполнения переменных, выходы за границы массивов и т.д. Понятно, что для школьника и студента такие проверки необходимы, но профи в нативных языках всегда выключает эти проверки, чтобы ускорить работу кода и ничего, все как-то работает. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.04.2015, 15:10 |
|
Проблемы с преждевременностью, задержкой и недержанием...
|
|||
---|---|---|---|
#18+
Eolt, И какой смысл тогда вообще использовать managed код? Или есть вера в то, что его придумали только для студентишек? ... |
|||
:
Нравится:
Не нравится:
|
|||
07.04.2015, 15:12 |
|
Проблемы с преждевременностью, задержкой и недержанием...
|
|||
---|---|---|---|
#18+
EoltРуссиновича читали? На слабых/загруженных системах, где нет ресурсов для работы JIT, IL-код будет работать в режиме интерпретации. Ссылку и/или цитату не затруднит привести? ... |
|||
:
Нравится:
Не нравится:
|
|||
07.04.2015, 15:13 |
|
Проблемы с преждевременностью, задержкой и недержанием...
|
|||
---|---|---|---|
#18+
EoltАлексей КСдаётся мне, что тормоза .Net к наличию JIT не имеют никакого отношения... JIT это не единственная причина, по-которой управляемые приложения медленнее нативных. Тут еще огромный слой библиотек над нативным Win32/64 API. Это когда вызываешь функцию .NET а она обертка над WinAPI функцией. Но можно сразу вызывать WinAPI напрямую не пользуясь какой-то там .NET прокладкой. Экономить время и ресурсы.И сколько там потребляет эта "обёртка"? Например, в WinForms основные тормоза связаны с отрисовкой через GDI+. Этот факт, научно доказанный много лет назад, к .Net не имеет никакого отношения. EoltЭто и дурацкие, не отключаемые в .NET проверки переполнения переменных, выходы за границы массивов и т.д.Откажись от безопасного кода и используй указатели. Скорость выполнения сразу повысится до скорости С++. EoltПонятно, что для школьника и студента такие проверки необходимы, но профи в нативных языках всегда выключает эти проверки, чтобы ускорить работу кода и ничего, все как-то работает."Профи" гораздо важнее надёжность программы, чем незначительный прирост производительности. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.04.2015, 15:17 |
|
Проблемы с преждевременностью, задержкой и недержанием...
|
|||
---|---|---|---|
#18+
hVosttАлексей КО недостатках сказал, теперь самое время поговорить о преимуществах. Это недостаток знаний и опыта всего лишь.Все когда-то были такими. :-) ... |
|||
:
Нравится:
Не нравится:
|
|||
07.04.2015, 15:18 |
|
Проблемы с преждевременностью, задержкой и недержанием...
|
|||
---|---|---|---|
#18+
EoltJIT это не единственная причина, по-которой управляемые приложения медленнее нативных. Тут еще огромный слой библиотек над нативным Win32/64 API. Это когда вызываешь функцию .NET а она обертка над WinAPI функцией. Но можно сразу вызывать WinAPI напрямую не пользуясь какой-то там .NET прокладкой. Экономить время и ресурсы. Это и дурацкие, не отключаемые в .NET проверки переполнения переменных, выходы за границы массивов и т.д. Понятно, что для школьника и студента такие проверки необходимы, но профи в нативных языках всегда выключает эти проверки, чтобы ускорить работу кода и ничего, все как-то работает. Давненько подобного бреда не читал. Человек наверное никогда в жизни не слыхал про такое понятие, как "профилирование" и "узкие места". Это синдром школьника с единственно правильным решением ... |
|||
:
Нравится:
Не нравится:
|
|||
07.04.2015, 15:18 |
|
Проблемы с преждевременностью, задержкой и недержанием...
|
|||
---|---|---|---|
#18+
Алексей КВсе когда-то были такими. :-) Есть подозрения на тонкий троллинг, мистер Ватсон ... |
|||
:
Нравится:
Не нравится:
|
|||
07.04.2015, 15:19 |
|
Проблемы с преждевременностью, задержкой и недержанием...
|
|||
---|---|---|---|
#18+
EoltАлексей КСдаётся мне, что тормоза .Net к наличию JIT не имеют никакого отношения... JIT это не единственная причина, по-которой управляемые приложения медленнее нативных.Повторюсь, JIT - это вообще не причина. А всякие "развороты циклов", и прочие С++ные оптимизации, можно производить на этапе компиляции C# => IL. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.04.2015, 15:20 |
|
Проблемы с преждевременностью, задержкой и недержанием...
|
|||
---|---|---|---|
#18+
hVosttАлексей КВсе когда-то были такими. :-) Есть подозрения на тонкий троллинг, мистер Ватсон Да и пусть. Лучше чем ничего. :-) ... |
|||
:
Нравится:
Не нравится:
|
|||
07.04.2015, 15:21 |
|
Проблемы с преждевременностью, задержкой и недержанием...
|
|||
---|---|---|---|
#18+
Алексей КО недостатках сказал, теперь самое время поговорить о преимуществах. Преимущества: - Простота и дешевизна разработки (почти как на VBA или 1С) - не нужно управлять памятью (GC) - не нужно освобождать ресурсы (GC) - не нужно учитывать разрядность платформы (AnyCPU) - не нужно изучать UI (всегда можно накидать контролов в WinForms) - не нужно изучать WinAPI (есть толстая прокладка .NET) - не нужно учиться работать с указателями (это же небезопасно!) - не нужно возится с ключами оптимизацией (есть галочка Optimize Code) - не нужно писать ассемблерные вставки (это же слишком сложно) - etc ... |
|||
:
Нравится:
Не нравится:
|
|||
07.04.2015, 15:22 |
|
Проблемы с преждевременностью, задержкой и недержанием...
|
|||
---|---|---|---|
#18+
EoltЭто и дурацкие, не отключаемые в .NET проверки переполнения переменных, выходы за границы массивов и т.д. Отключать проверку за выходы границы масивов - это то самое жгучее желание выстрелить себе в ногу? А про переменные - откройте для себя (последняя опция, кстати, по умолчанию всегда отключена): 1. checked / unchecked . 2. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.04.2015, 15:22 |
|
Проблемы с преждевременностью, задержкой и недержанием...
|
|||
---|---|---|---|
#18+
AxeleronEolt, И какой смысл тогда вообще использовать managed код? Или есть вера в то, что его придумали только для студентишек? Только одна причина. Разработка на managed коде значительно быстрее/дешевле, чем в нативном. Разумеется за счет падения производительности ваших приложений. За скорость и дешевизну создания кода платим его медленной работой. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.04.2015, 15:26 |
|
Проблемы с преждевременностью, задержкой и недержанием...
|
|||
---|---|---|---|
#18+
Eolt- Простота и дешевизна разработки (почти как на VBA или 1С) - не нужно управлять памятью (GC) - не нужно освобождать ресурсы (GC) - не нужно учитывать разрядность платформы (AnyCPU) - не нужно изучать UI (всегда можно накидать контролов в WinForms) - не нужно изучать WinAPI (есть толстая прокладка .NET) - не нужно учиться работать с указателями (это же небезопасно!) - не нужно возится с ключами оптимизацией (есть галочка Optimize Code) - не нужно писать ассемблерные вставки (это же слишком сложно) - зависит от требований к программе; - зависит от требований к программе - при желании вполне можно; - зависит от требований к программе - при желании вполне можно; - в ряде случаев очень даже нужно (Platform Target в свойствах проекта, ага) - для кучи случаев этой прокладки не хватает (поищите по форуму сообщения от Дмитрий77), так что WinAPI вполне доводится использовать; - allow unsafe code в свойствах проекта+директива unsafe - и вперед, было бы желание - и слава б-гу - и слава б-гу - etc ... |
|||
:
Нравится:
Не нравится:
|
|||
07.04.2015, 15:28 |
|
Проблемы с преждевременностью, задержкой и недержанием...
|
|||
---|---|---|---|
#18+
Алексей КИ сколько там потребляет эта "обёртка"? Например, в WinForms основные тормоза связаны с отрисовкой через GDI+. Этот факт, научно доказанный много лет назад, к .Net не имеет никакого отношения. Я не знаю сколько она потребляет. Не замерял. Я всего лишь расстроенный пользователь .Net приложений, которого печалит медленный и неотзывчивый GUI от .NET. У меня есть комп на i7 с 16 Гигами оперативки, вот на этой машине дотнетовские приложения ведут себя прилично. Почти не тормозят. Но у многих пользователей на компах обычные Celeron с 2-4 гигами оперативки и 32-битной версией Windows, вот там торможение управляемого кода очень четко заметно. Даже выполнение обычных операций в UI приводит к замедленному отклику приложения. Например нажимая кнопку Открытия файла на риббоне, я ожидаю появление стандартного окна открытия файла почти сразу, как это происходит в нативных приложениях написанных на C++, и меня расстраивает, когда это окно в шарповом приложении прорисовывается через 5 секунд, со скрипом жесткого диска и кучей сожраной памяти. Печально, когда вывод окна предосмотра печати с содержимым занимает на управляемом приложении секунд 5-10, ведь в нативном приложении оно отрисовывается мгновенно. автор"Профи" гораздо важнее надёжность программы, чем незначительный прирост производительности. Прирост получается слишком значительным, чтобы его игнорировать, тут есть из-за чего помучится с отладкой. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.04.2015, 15:42 |
|
Проблемы с преждевременностью, задержкой и недержанием...
|
|||
---|---|---|---|
#18+
EoltAxeleronEolt, И какой смысл тогда вообще использовать managed код? Или есть вера в то, что его придумали только для студентишек? Только одна причина. Разработка на managed коде значительно быстрее/дешевле, чем в нативном. Разумеется за счет падения производительности ваших приложений. За скорость и дешевизну создания кода платим его медленной работой. Да, на managed ЯП быстрее писать программы и дешевле, но для того они и создавались - для решения определенных типов задач. Не вижу смысла писать вэб приложение на unmanaged C++. Скорость и цена разработки в данном случае многократно окупят мнимую низкую скорость приложения. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.04.2015, 15:43 |
|
Проблемы с преждевременностью, задержкой и недержанием...
|
|||
---|---|---|---|
#18+
AxeleronНе вижу смысла писать вэб приложение на unmanaged C++. Скорость и цена разработки в данном случае многократно окупят мнимую низкую скорость приложения. Вот именно - мнимую. В качестве примера в который раз можно привести stackoverflow с его даппером. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.04.2015, 15:47 |
|
Проблемы с преждевременностью, задержкой и недержанием...
|
|||
---|---|---|---|
#18+
EoltАлексей КИ сколько там потребляет эта "обёртка"? Например, в WinForms основные тормоза связаны с отрисовкой через GDI+. Этот факт, научно доказанный много лет назад, к .Net не имеет никакого отношения. Я не знаю сколько она потребляет. Не замерял. Я всего лишь расстроенный пользователь .Net приложений, которого печалит медленный и неотзывчивый GUI от .NET. У меня есть комп на i7 с 16 Гигами оперативки, вот на этой машине дотнетовские приложения ведут себя прилично. Почти не тормозят. Но у многих пользователей на компах обычные Celeron с 2-4 гигами оперативки и 32-битной версией Windows, вот там торможение управляемого кода очень четко заметно. Даже выполнение обычных операций в UI приводит к замедленному отклику приложения. Например нажимая кнопку Открытия файла на риббоне, я ожидаю появление стандартного окна открытия файла почти сразу, как это происходит в нативных приложениях написанных на C++, и меня расстраивает, когда это окно в шарповом приложении прорисовывается через 5 секунд, со скрипом жесткого диска и кучей сожраной памяти. Печально, когда вывод окна предосмотра печати с содержимым занимает на управляемом приложении секунд 5-10, ведь в нативном приложении оно отрисовывается мгновенно.Ты упоминал MFC, значит работаешь с Visual Studio. Так вот, VS2010+ написан на .Net + WPF. Где там что медленно работает, не связанное с обработкой больших объёмов данных? ... |
|||
:
Нравится:
Не нравится:
|
|||
07.04.2015, 15:57 |
|
Проблемы с преждевременностью, задержкой и недержанием...
|
|||
---|---|---|---|
#18+
EoltАлексей КИ сколько там потребляет эта "обёртка"? Например, в WinForms основные тормоза связаны с отрисовкой через GDI+. Этот факт, научно доказанный много лет назад, к .Net не имеет никакого отношения. Я не знаю сколько она потребляет. Не замерял.А замерь. Возьми профайлер и убедись в том, что это не C# тормозной, а просто у кого-то руки кривые. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.04.2015, 16:28 |
|
|
start [/forum/topic.php?all=1&fid=20&tid=1401694]: |
0ms |
get settings: |
8ms |
get forum list: |
11ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
27ms |
get topic data: |
11ms |
get forum data: |
2ms |
get page messages: |
90ms |
get tp. blocked users: |
2ms |
others: | 339ms |
total: | 498ms |
0 / 0 |