Подтвердить что ты не робот

Почему нет 64-разрядной версии VS2013?

Я загрузил Visual Studio 2013 из DreamSpark, но это 32-разрядная версия, и я не смог найти 64-битную версию. Нет, и если да, то почему нет 64-битной версии Visual Studio?

4b9b3361

Ответ 1

Во-первых, существует 64-разрядный компилятор С++, который поставляется с набором инструментов Visual Studio. Поэтому вы всегда можете изменить настройки своего проекта, чтобы при необходимости сделать 64-битные сборки вашего приложения.

Теперь, чтобы ответить на исходный вопрос.

Подумайте об этом с точки зрения затрат и рентабельности инвестиций. Начиная с лет поставки программного обеспечения в Microsoft, здесь, как я видел, что рассмотрение для 64-битных сборников получается.

  • Когда 32-разрядное приложение отлично работает на 64-разрядном, это почти не стартер, чтобы рассмотреть 64-разрядный.

  • Большинство проектов в Microsoft - это не просто небольшие проекты Visual Studio, в которых разработчик может просто перевернуть настройки проекта с 32-разрядной до 64-разрядной. (На самом деле я не знаю, компилирует ли Visual Studio Visual Studio с проектом VS.) Они часто содержат более миллиона строк кода, которые строятся с помощью набора компиляторов VS, но из командной строки и среды Makefile. Переключение на 64-битное означает обновление большой части этой инфраструктуры построения.

  • Существует стоимость переноса с 32-битного на 64-разрядный. Первая стоимость - это просто исправление ошибок, получение кода для компиляции, реструктуризация среды сборки и все начальные работы только для того, чтобы получить начальную сборку.

  • Существует текущая стоимость, которую вы платите за отдельные 32-битные и 64-битные сборки приложения. Вы должны строить его дважды каждый день. Вы должны запускать тестовое обеспечение на нем два раза в день. Это не 2x стоимость, но и не бесплатная.

  • С большим количеством SKU с той же базой кода, это увеличивает вероятность того, что разработчик что-то сломает, когда он проверит. Конечно, могут быть автоматические тесты, чтобы предотвратить это, но это замедлит разработчика после того, как он должен будет вернуться и исправить другой SKU, который он не установил локально на своей тестовой машине.

Теперь вот некоторые из мотивов перехода на 64-разрядные:

  • Вам действительно нужно использовать преимущества 64-битной архитектуры производительности и памяти. Большие серверы баз данных, которые используют как можно больше памяти, получат доступ к ограничениям более 2 ГБ, наложенным на процесс 32-разрядной Windows.

  • Вам нужно интегрироваться с чем-то, уже скомпилированным с 64-битным. Например, если вы хотите написать расширение оболочки для Windows, вам понадобится 64-разрядная версия для работы в 64-разрядной Windows. Это не означает, что все приложение нужно портировать, но это означает, что для этого компонента потребуется отдельная 64-битная сборка.

  • У вас есть платформа или история API для внешних разработчиков. Обычно у них есть свои собственные потребности для 64-битных сборок. Следовательно, им может понадобиться 64-битный API-интерфейс, даже если ваше родное приложение может уйти с 32-разрядной поддержкой.

  • Ваша команда только что была реорганизована в подразделение Windows, и ваш командный код считается необходимым для включения в следующую версию Windows. Там больше не будет принято решение - ваш код будет компилироваться для 32-битных, 64-битных и ARM (Surface RT).

Ответ 2

Файлы исходного кода не должны быть несколько гигабайт - нет причин, по которым текстовый редактор/среда разработки должны использовать 64-разрядные указатели, которые потребляют в два раза больше ОЗУ без выгоды. Более крупные указатели делают структуры данных, содержащие указатели большими, требуя большего объема памяти, чтобы перемещать их, и устанавливая меньше внутри кэша данных ЦП, так что количество промахов в кэше также может увеличиваться.

32-разрядный редактор отлично способен запускать и взаимодействовать с 64-разрядными компиляторами, компоновщиками и отладчиками, когда это необходимо. Наличие только 32-разрядного редактора значительно упрощает модель плагина.

Ответ 3

Причина такая же, как и всегда. Это потребует значительных усилий для переноса базы кода размером с Visual Studio до 64-разрядной версии, и, по словам Microsoft, выгоды будут незначительными и далеко друг от друга.

Фактически MS утверждает, что такой порт может замедлить работу Visual Studio из-за потребления большего объема памяти. Было бы меньше места в кеше из-за того, что 64-битные указатели сохранялись в разных местах кода. В VS есть много кода, в котором используются специализированные распределители на основе арены, хотя MS пытается избавиться от них. Это также может привести к снижению производительности, поскольку управление указателями на арене будет иметь дело с 64-битными указателями, которые занимают в два раза больше пространства их текущих 32-разрядных копий.

Учитывая десятки миллионов строк кода, которые являются Visual Studio, усилия по конвертации, тестированию и настройке 64-битной версии кажутся чреватыми задержками, имея, казалось бы, небольшой шанс получить положительный результат. Во всяком случае, MS, похоже, больше намерена перенести Visual Studio на управляемый код, чтобы воспользоваться преимуществами, присутствующими там, - это решение, которое нам сложно решить разработчиками С++.

В настоящий момент Microsoft рекомендует запускать Visual Studio в 64-разрядной версии Windows, тем самым удваивая доступное адресное пространство (от 2 ГБ до 4 ГБ) без выплаты штрафа 2x за хранилище указателей в процессе VS.