C сам по себе является почти сборкой, всего в 100 раз более читаемым, и он помогает вам, когда у вас много активных переменных. Однако это близко к ассемблеру. В C нет операции, которая почти не соответствует (или даже напрямую) на языке ассемблера.
ASM: «делать именно то, что я говорю, точно, как я говорю это»
C: «делать то, что я имею в виду, и вы можете сделать некоторые ограниченные изменения порядка, если это быстрее и не будет разрушить результаты "
C определенно способ пойти на что угодно, кроме очень маленьких заглушек, которые напрямую связаны с процессором или оборудованием, что сложно от C (например, для специальных инструкций). Даже тогда хорошие компиляторы C предоставляют вам эти специальные инструкции через встроенные функции.
Современные процессоры настолько сложны, что человеку трудно предсказать, какое действие будет иметь последовательность инструкций. Компилятор может фактически управлять всеми задержками и пропускной способностью и последовательно использовать (близкие) последовательности оптимальных инструкций. Компилятор C сегодня почти наверняка выйдет из программы программистов на типичном коде. Для плотных петель оптимизированная для человека сборка может превосходит C, но обычно это не так много.
Я предполагаю, что с хорошей встроенной сборкой вы можете получить лучшие результаты по сравнению с чистой сборкой, поскольку компилятор выполнит некоторые оптимизации. –
Обычно оптимизатор остается вне встроенных сегментов сборки, исходя из предположения, что, если вы попытаетесь написать его, вы действительно это имели в виду. Это может иметь решающее значение для встроенной прошивки встроенной системы, где вы можете использовать определенную инструкцию для получения эффекта или намеренно отложить слот задержки в конвейере, чтобы правильно настроить цикл. Ваш пробег будет отличаться, проверьте свое руководство и, конечно же, он прочно выполняет определенную реализацию и не очень портативен. – RBerteig
C# bytecode - это MSIL, если я не ошибаюсь, язык CLR. Вы можете сделать некоторые настройки, но я думаю, что интерпретатор C# делает довольно приличную работу. Лино интересно в экспериментальной форме. Если ничего другого, он получает справедливое практическое применение своим создателем. Когда-то хорошо, что он теоретически переносится в любую систему. – CodexArcanum