Как может, компилируя мое приложение для 64-разрядного, делают его быстрее или лучше?

Спасибо за вашу помощь, ребята, я пришел к решению просто выполнить поиск и заменить на sed в исходном xml-файле, прежде чем он будет обработан xml2js с помощью bash, поскольку это является частью скрипта, который сработал очень хорошо.

13
задан Brian Campbell 9 April 2009 в 14:18
поделиться

5 ответов

Для исходных приложений Вы извлекаете пользу как увеличенное адресное пространство и этажерка. Однако приложения.NET работают на CLR который краткие обзоры далеко любые различия в базовой архитектуре.

Принятие Вы просто имеете дело с управляемым кодом, нет никакого преимущества для предназначения для определенной платформы; Вы более обеспечены просто компиляция с набором флага "anycpu" (который идет по умолчанию). Это генерирует блоки агностика платформы, которые будут работать одинаково хорошо на любой архитектуре, на которой работает CLR.

Конкретно предназначение (говорит), что x64 не собирается давать Вам любое повышение производительности и будет препятствовать тому, чтобы Ваши блоки работали над 32-разрядной платформой.

Эта статья имеет немного больше информации о предмете.

Обновление: Scott Hanselman просто отправил хороший обзор этой темы также.

17
ответ дан 1 December 2019 в 21:25
поделиться

AS реальная действительность, приложения на 64 бита, которые не требуют пространства памяти большой емкости, имеет тенденцию работать медленнее. Одна из причин позади него - то, что необходимо переместить данные перемещения. Если бы Вы не можете использовать> 2 ГБ пространства памяти (для кэширования, например), я не рекомендовал бы это.

Вот интересная ссылка, я просто нашел http://www.osnews.com/story/5768 с большим количеством информации.

3
ответ дан 1 December 2019 в 21:25
поделиться

В теории программа, скомпилированная для x64, будет работать быстрее, чем программа, скомпилированная для x86. Причина этого состоит в том, потому что существуют более регистры общего назначения в x64 архитектуре. 32-разрядный x86 имеет только 4 регистра общего назначения. AMD добавил еще 8 регистров общего назначения в их x64 расширениях. Это допускает меньше загрузок в память и (немного) более быстрой производительности.

В действительности это не имеет огромной разницы в производительности, но она должна сделать небольшой.

Размер двоичного файла и объема потребляемой памяти увеличится несколько с использования 64-разрядных инструкций, но потому что x64 является все еще CISC archictecture, двоичный размер не удваивается, как это было бы в архитектуре RISC. Большинство инструкций еще короче, чем 64 бита в длине.

4
ответ дан 1 December 2019 в 21:25
поделиться

Я сомневаюсь относительно этого (учитывая платформу C#/.NET), если Вы не используете Собственный код. Помните, управляемый код.NET компилируется в IL и значения по умолчанию переключателя платформы к anycpu, таким образом, необходимо получить лучшую производительность на 64-разрядной ОС с существующим двоичным файлом:

http://blogs.msdn.com/gauravseth/archive/2006/03/07/545104.aspx

Эта статья имеет тонну полезной информации включая оценку инструмента CorFlags, который позволит Вам осмотреть заголовок PE.

В целом, для двоичных файлов собственного кода, да.

2
ответ дан 1 December 2019 в 21:25
поделиться

Я - действительно не эксперт в архитектурах ЦП, поэтому возьмите мои комментарии слегка. Википедия имеет статью, описывающую x86-64 архитектуру (текст ссылки).

x86-64 имеет больше регистров, это одно должно помочь сделать программу быстрее. Также эта новая архитектура предлагает новые системы команд, которые могли улучшить скорость, если компилятор использует в своих интересах ее.

Другим фактором для принятия во внимание является количество доступных систем команд. То, когда программа обычно компилируется в x86, это - цель, столкнуться со всеми существующими 32-разрядными CPU (Pentium 1, 2, 3, 4, ядро* и т.д.). Каждое новое поколение ЦП добавляет новые наборы инструкций, это, инструкции не могут использоваться программой, которая хочет быть полностью портативной в двоичном формате среди всех x86 CPU. Как x86-64 бит новая архитектура, перекомпилировать программу для этой машины дает компилятору более широкий набор инструкций использовать, не вызывая беспокойство слишком много о совместимости на уровне двоичных кодов среди различных 64-разрядных CPU.

0
ответ дан 1 December 2019 в 21:25
поделиться
Другие вопросы по тегам:

Похожие вопросы: