М>Я не хотел-бы показаться навязчивым, но может быть стоит пока воздержаться от подведения итогов? Может быть Вы ещё что-нибудь пока не знаете, не только про выравнивание, как Вы думаете?
Конечно я много чего не знаю, но ваши примеры меня пока не убедили отказатся от С++:
Ваши примеры состоят просто из операций над локальными переменными в теле цикла. Это хорошо что вы показали что хотя бы такой код должен работать одинаково. Но это все еще не доказательство того что на шарпе можно писать эффективный unsafe код. Например С++ и ШАрп уже оказались не на равных из-за ключевого слова inline ( а я его использовал в С++). Конечно, в шарпе это можно компенсировать копипастом, но это уже геморой. Далее, какой код будет генерить .NET для вызова методов других классов — тоже вопрос.
В общем получается так: хочеш писать только на шарпе — придется сильно рефакторить узкие места, так что код станет абсолютно нечитабельным. Другой вариант — вынести код на С++ и воспользоватся всеми прелестями компилятора (inline,шаблоны).
Здравствуйте, barn_czn, Вы писали:
_>Конечно я много чего не знаю, но ваши примеры меня пока не убедили отказатся от С++: _>Ваши примеры состоят просто из операций над локальными переменными в теле цикла. Это хорошо что вы показали что хотя бы такой код должен работать одинаково. Но это все еще не доказательство того что на шарпе можно писать эффективный unsafe код. Например С++ и ШАрп уже оказались не на равных из-за ключевого слова inline ( а я его использовал в С++). Конечно, в шарпе это можно компенсировать копипастом, но это уже геморой. Далее, какой код будет генерить .NET для вызова методов других классов — тоже вопрос. _>В общем получается так: хочеш писать только на шарпе — придется сильно рефакторить узкие места, так что код станет абсолютно нечитабельным. Другой вариант — вынести код на С++ и воспользоватся всеми прелестями компилятора (inline,шаблоны).
Предлагаю тебе также посмотреть вот этот тред: С# vs C++, голые цифры
Здравствуйте, Аноним, Вы писали:
А>Как бы фигвам. Ключевое слово SSE ни о чем не говорит?
Да кто же не знает SSE? Это южно-американский сумчатый попугай.
Да Вы не напрягайтесь, относительно Вас я уже всё, что было нужно, понял. Ждите Nikov, хотя я бы на его месте ничего не стал бы говорить. А пока его нет, можно поразмыслить, почему в компиляторах Си для этих наборов предусмотрена специальная опция, а NET ничего подобного нет. А заодно, почему в компиляторе Си нет опции включения поддержки SSE9. Ну а про такую общеизвестную мелочь, как SSE4.1 vs SSE4a и напоминать не надо, Вы наверняка в курсе.
Вы вероятно неправильно меня поняли. Во-первых, я ни в чём не собирался Вас убеждать. Я лишь хотел обратить Ваше внимание, что Вы, возможно, ловите чёрную кошку не в той тёмной комнате. Это нормальная практика, когда в рамках одного проекта используется более одного инструмента. Вон посмотрите, во многих нативных компиляторах даже имеется возможность непосредственной вставки кода на ассемблере. Но при этом необходимо созновать, что увеличение числа языков автоматически означает увеличение геммороя и в развитии, и особенно в сопровождение проекта. И прежде чем на это идти, стоит совершенно чётко определить места, где от этого будет реальный выигрыш, и определить инструмент, который этот выигрыш даст. Может в Вашем случае вообще есть смысл узкие места реализовать с использованием интелловского компилятора и библиотек, лишь бы оно не оказалось перебором.