Есть ли большие преимущества того, чтобы его приложения на С++ работали в режиме 64 бит?
Я только заметил, что, например, у известного приложения, такого как хром, не было 64 версий, по крайней мере, под окнами.
В моей фирме я пишу приложения, которые работают под 64-разрядной версией окон в режиме 32 бит.
Мне интересно, могу ли я получить некоторые преимущества/производительность для создания приложений в режиме 64 бит, а не в 32 бит
Изменить:
Как правило, в каком виде программного обеспечения будет полезен увеличение числа регистров?
Ответы
Ответ 1
Биты 64 (x86_64) теперь являются основными.
2 больших преимущества здесь:
- Доступно больше памяти без каких-либо трюков
- Более общие и дополнительные регистры процессора
Но у вас есть небольшой недостаток:
- Больше потребления памяти (обычно 20-30% больше 32 бит)
Я думаю, что Google Chrome работает в 32-битном режиме в Windows, потому что есть слишком много 32-битных плагинов (например, Flash). Также есть версия linux для 64 бит.
Изменить для дополнительного вопроса
Как правило, вы получите преимущества, если ваше приложение использует математику (64-разрядную целочисленную арифметику), кодирование/кодирование/упаковку/распаковку, криптографию.
Также посмотрите руководство IBM для разработчиков решений для 64-разрядных вычислений
http://www.onitecservice.com.br/produtos/arquiv_pdf/nocona64bit_onitec_service.pdf
Какие типы приложений будут использовать и не будут использовать коммутатор от 32-разрядных до 64-разрядных вычислений?
В зависимости от наибольшей пользы, наименьшее преимущество:
- I/O интенсивный - любое приложение, которое тратит больше времени на получение данных с устройств, чем
его обработка: база данных, электронная коммерция, CRM, ERP, SAP, SAS, различные бизнес-критические и вертикальные приложения и любое другое приложение с большими требованиями к памяти. В
В общем, эти приложения должны увидеть значительные улучшения производительности от 64-битных
аппаратные средства, операционные системы и драйверы устройств, а также устранение памяти
наложения и другие ингибиторы производительности.
- Высокопроизводительные вычислительные вычисления (HPC) и научно-технические
вычислительные системы, включая биологические науки, геофизические исследования; рендеринг высококачественных графических изображений;
потоковое видео и любое другое приложение, которое тратит больше времени на обработку данных, чем их извлечение.
- Шлюз/инфраструктура безопасности - серверы SSL, службы каталогов, кеширование в Интернете и
базы данных. Эти приложения могут получить выгоду от коммутатора. Вам следует
свяжитесь с отдельными поставщиками программного обеспечения, чтобы узнать их планы по использованию 64-битных функций.
- Стандартная инфраструктура. Этот класс, как правило, мало пользы от 64-разрядных вычислений. Приложения включают в себя серверы файлов и печати, низкоуровневые/некритические бизнес-приложения и устаревшие приложения, которые вряд ли будут перезаписаны для 64 бит.
Ответ 2
Если у вас есть возможность скомпилировать для 64-битной цели, вы должны это сделать (imho). Вы можете попробовать и проанализировать свое приложение, чтобы увидеть, есть ли настоящая потребность (ограничения потребления памяти и т.д.), - но я хотел бы видеть маркер "64-разрядный" в моем инструменте управления приложениями при прокрутке запущенных процессов.
Существует несколько преимуществ приложений с 64-битным режимом, основной причиной которых является более доступная память. Если ваш компилятор правильно обрабатывает компиляцию и оптимизирует код, вы сможете получить дополнительную производительность.
Попробуйте выполнить "реальный мир" - скомпилируйте как в 64-х, так и в 32-битных, и составите некоторые диаграммы производительности. Я сделал это в приложении, и он показал повышение производительности на 20% (более быстрый расчет), и объем данных, которые программа могла загружать, внезапно казалась "бесконечной".
(Мое лучшее предположение об Chrome заключается в том, что они полагаются на некоторую стороннюю библиотеку, работающую только в 32-разрядной версии, или, возможно, с использованием только 32-битного Windows API.)
Ответ 3
Shamlessly просто сканируется http://en.wikipedia.org/wiki/64-bit
Есть плюсы и минусы, для получения подробной информации, посмотрите на эту страницу в Википедии.
Как указано там, главным преимуществом для 64-битных версий приложения является возможность доступа к большему количеству регистров в архитектуре x86-64.
Дайте эту страницу также, нет никаких указаний на то, что есть существенные выигрыши в производительности из коробки. Вам нужно будет настроить приложение, чтобы использовать функции, которые он предоставляет, то есть больше регистров и больше памяти, поскольку одни и те же данные занимают больше места в памяти (из-за более длинных указателей и, возможно, других типов и выравнивания).
Согласно W/P, скорее всего, основным недостатком является использование памяти. Короче говоря, производительность может быть достигнута, но ваша программа должна немного измениться, чтобы воспользоваться ею. Я бы предложил сравнить вашу программу на обеих архитектурах, чтобы увидеть, имеет ли она немедленную разницу (без изменения чего-либо).