|
Проблемы с преждевременностью, задержкой и недержанием...
|
|||
---|---|---|---|
#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 |
|
|
start [/forum/topic.php?fid=20&msg=38929055&tid=1401694]: |
0ms |
get settings: |
9ms |
get forum list: |
12ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
41ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
56ms |
get tp. blocked users: |
1ms |
others: | 13ms |
total: | 150ms |
0 / 0 |