Приступая к планированию переноса проекта на 64-битную систему, необходимо уметь оценить объем работ и материальные затраты. Рассмотрим те элементы, из которых будет складываться цена создания 64-битного программного проекта.
В случае затруднений с оценками стоимости перехода на 64-битные системы, вы можете обратиться за консультацией к специалистам нашей компании "Системы программной верификации". Наша компания также может взять на себя часть работ или полностью выполнить адаптацию ваших проектов для 64-битных систем.
При разработке 64-битной версии приложения дополнительное внимание стоит уделить и вопросу дистрибуции программы. Ведь при установке на 64-битной операционной системе есть несколько нюансов, забыв о которых можно получить неработающий инсталляционный пакет.
Прежде всего, надо понимать, что сам дистрибутив программы (exe-файл, который запускает установку) может быть технически как 32-битным приложением, так и 64-битным. И если сделать этот дистрибутив 64-битным, то он не запустится на 32-битной системе. Обратите внимание, что он не сможет выдать сообщение вроде: "Вы пытаетесь установить дистрибутив 64-битной программы в 32-битной системе". Он просто выдаст сообщение о поврежденном файле. Таким образом, в большинстве случаев разумно делать инсталлятор всегда 32-битным приложением, даже если устанавливаться он должен только на 64-битной системе.
После компиляции программы в 64-битном режиме она начинает потреблять большее количество памяти, чем ее 32-битный вариант. Часто это увеличение почти незаметно, но иногда потребление памяти может возрастать в 2 раза. Увеличение расхода памяти связано со следующими причинами:
Знакомство с паттернами 64-битных ошибок закончено, и возможно у вас возникло желание на практике поэкспериментировать с опасными конструкциями и попробовать PVS-Studio для их обнаружения. Удовлетворить свой интерес вы можете, установив демонстрационный проект PortSample, входящий в состав PVS-Studio (рисунок 1).
Мы закончили рассмотрение паттернов 64-битных ошибок. Последнее на чем мы остановимся в связи с этими ошибками, является то, как они могут проявляться в программах.
Дело в том, что не так просто показать в примере, что приведенный 64-битный код приведет к ошибке при большом значении N:
size_t N = ... for (int i = 0; i != N; ++i) { ... }
|
Программирование для чайников.
|