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

Delphi 64 бит?

64-разрядные Delphi находятся на своем пути, как все знают (по крайней мере, каждый программист Delphi). Помимо того, что codegear говорит о преимуществах 64-битного Delphi-приложения (и в кодеге не сказано много), что я получу от наличия 64-битного Delphi-приложения? Это действительно хорошая идея для переноса моего приложения на 64 бита, как только codegear выпустит его?

EDIT:

Я просто спрашиваю об этом, потому что я хочу, чтобы все мнения у меня были. На данный момент я могу сказать, что мне действительно нужно больше памяти для моего приложения, потому что оно потребляет много ресурсов. Я мог бы использовать больше скорости, если это возможно. Мне не нужны расширения оболочки ни плагины.

Мои клиенты также спрашивают меня о x64-версии моего приложения, но я действительно не понимаю, почему они просят об этом, потому что они на самом деле юристы, которые понятия не имеют, что такое 64-битное приложение.

ИЗМЕНИТЬ

Я фактически не участвую непосредственно в разработке приложений. Я - часть технологической команды, и я создаю материал, который другие разработчики в компании, в которой я работаю, используют, чтобы действительно разработать окончательное приложение. Итак, моя работа заключается в том, чтобы делать технические вещи, а порт приложения для x64 - это то, что я делаю, но мне нужно объяснить, почему я делаю это для своих начальников.

4b9b3361

Ответ 1

64-разрядная программа имеет следующие преимущества по сравнению с тем же, что и для 32-разрядной (x86):

  • Дополнительные регистры. 64-разрядные чипы x86 имеют несколько других регистров, и это может, в теория (если компилятор использует преимущество) в некоторых случаях приводит к ускорению кода.

  • Дополнительная память.. С 32-разрядной программой вы обычно ограничивались либо адресным пространством 2 ГБ, либо общим адресом 4 ГБ, если вы скомпилированы с /LARGEADDRESSAWARE, который был около 3,5 ГБ на практике из-за разделения ядра Windows/пользователей. 64-битный процесс может адресовать гораздо больше. Это важно, только если ваше приложение нуждается в большой памяти.

  • Возможность создавать плагины для 64-разрядных программ, например Explorer. Если вы не используете COM для плагина, где данные сортируются, вы не можете смешивать 32-разрядный и 64-разрядный код в одном процессе в Windows, например, 64-разрядную EXE-загрузку 32-разрядной библиотеки DLL. Например, если вы хотите написать плагин Explorer, вы не сможете работать с 64-разрядной версией Explorer со старыми версиями Delphi. Вы сможете с 64-разрядной версией.

  • Delphi-specific: компилятор будет использовать инструкции SSE/SSE2 для вычислений с плавающей запятой, где текущий 32-разрядный Компилятор использует только инструкции x90 FPU (я думаю.) Это должно дать увеличение скорости для математики с плавающей запятой. Вы, вероятно, даже не заметите, если ваше приложение сильно зависит от FP (игра, возможно, или приложение для обработки данных).

Ответ на ваш вопрос: "Получится ли у меня 64-битное приложение Delphi?" сильно зависит от вашего конкретного приложения. В целом, вряд ли будет много пользы, кроме, возможно, небольшого увеличения скорости. Не полагайтесь на 64-битное ускорение медленного приложения: вам все равно придется делать алгоритмические изменения для больших ускорений. 64-бит - не волшебная пуля. Помимо этого, вам нужно только изменить, если вы уже столкнулись с одним из ограничений, налагаемых 32-битным - я подозреваю, что вы этого не сделали, или вы не задали бы вопрос.

Если вы решили конвертировать, вы можете найти этот поток очень полезным.

Но еще одна вещь: даже если вам не нужно менять, вы можете захотеть, особенно если ваше приложение является личным проектом. Вы можете изучить материал, ваш код будет более качественным при исправлении 32/64-разрядных проблем, и подобный проект может быть интересным. В конце концов, вы программист:)

Изменить: Я вижу, что вы обновили свой вопрос: "Я могу сказать, что мне действительно нужно больше памяти для моего приложения, потому что оно потребляет много ресурсов. Я действительно мог бы использовать большую скорость, если это возможно".

  • Какие ресурсы? Память? 64-бит даст вам большее адресное адресное пространство, чтобы оно было. Он не даст вам больше дескрипторов GDI и т.д., Если они считаются ресурсами. Однако, если вам действительно нужно больше памяти, тогда 64-битная версия будет стоить конвертировать.

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

  • "Мои клиенты также спрашивают меня о x64-версии моего приложения, но я действительно не понимаю, почему они просят об этом, потому что они на самом деле юристы, которые понятия не имеют, что такое 64-битное приложение." Скорее всего, они слышали, что 64-бит лучше или быстрее. В идеальном мире клиенты будут иметь требования к реальности, но это не всегда так. Прагматично говоря, если клиент хочет что-то вроде этого, может быть стоит конвертировать просто потому, что он делает их счастливыми: счастливые клиенты хороши, и они могут заплатить вам за новую версию, и это может помочь вашей репутации компании из уст в уста.

Ответ 2

Есть ли у вас фактическая потребность в доступе к большой ( > 4 ГБ) памяти в вашем приложении, например, видео или обработке изображений или обработке огромных объемов данных очень быстро? Является ли ваше приложение расширением оболочки, которое необходимо запустить в 64-разрядных версиях Windows? У вас есть клиенты или клиенты, которые жалуются, потому что 64-битная версия вашего приложения недоступна?

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

Ответ 3

Если вы пишете расширения оболочки, вы уже знаете, зачем вам нужно 64. В моем случае у меня есть DLL, загружаемая проводником Windows, и она не может, абсолютно не загружать 32-разрядную DLL. Там приложения, которые получат выгоду от 64-битных, но большинство, ИМО не будет. И для таких вещей, как мой, 64-битный больше раздражает, чем что-либо еще.

Хорошая идея? Только если вы думаете, что это сделает вас более $$$. В противном случае лучше потратить время на улучшение качества или добавление функций. Если вы не используете чистые средства управления VCL и библиотеки, вам, вероятно, придется дождаться поддержки сторонних разработчиков. Я по-прежнему исправляю и заменяю библиотеки, связанные с преобразованием в Unicode....

Ответ 4

В большинстве программ все равно.

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

Ответ 5

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

Кроме того, самый большой push to 64 bit предназначен для расширений для других программ. Например, расширения оболочки, надстройки Excel, расширения MATLAB и т.д.

Ответ 6

Нет, держите приложение 32 бит.

"Мои клиенты также спрашивают меня о x64-версии моего приложения, но я действительно не понимаю, почему они просят об этом"

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

Ответ 7

У меня есть эта проблема с некоторыми из моих клиентов. Это во многом происходит потому, что ИТ-отделы в своих соответствующих компаниях имеют контрольный список вещей, которые необходимо "рассматривать", когда компания приобретает новое программное обеспечение (или утверждает обновления и т.д.). Время от времени эти контрольные списки обновляются, чтобы лучше отражать современный ИТ-ландшафт, но это не всегда означает, что новые элементы имеют смысл в контексте вашего собственного прикладного программного обеспечения.

В какой-то момент люди начали говорить: "У нас 64-разрядная Windows XP/Vista/7 и т.д., мы должны убедиться, что любое новое программное обеспечение тоже 64-битное". Как разработчики мы знаем, что это не обязательно так, но если вы попытаетесь объяснить это нетехническим людям, это обычно происходит, когда вы пытаетесь скрыть тот факт, что ваше приложение на самом деле не 64-битное. Когда вы являетесь небольшим заказчиком в конкурентной борьбе с другими поставщиками, вы не можете позволить своей работе проиграть из-за в значительной степени несущественной/неважной "функции" в чек-списке кого-то.

До сих пор мой подход заключался в том, чтобы сообщить клиентам, что программное обеспечение было тщательно протестировано и проверено на 64-битной Windows, но разработано так, что одна и та же версия может работать на 32-битной или 64-битной Windows. Это совершенно верно, потому что мои приложения в основном основаны на Delphi 2007, и в прошлом году или около того я начал выполнять все мои тесты на 64-битной Win7 в качестве первого курорта (а затем снова выполнить подмножество тестов под 32-битным XP, при ключевом вехи).

Как в стороне, как в среде малого бизнеса, так и (что еще более удивительно) домашней, я видел гораздо более 64-битные установки Win7, чем 32-битные. Большинство новых машин, которые я видел за последние 6 месяцев, похоже, имеют 64-битную Win7, что я считаю довольно интересным.

Мне также нравится комментарий The_Fox к исходному вопросу - возможно, мне придется обновить свои экраны заставки. Особенно, если я могу обнаружить, что программа работает на 64-битной версии Windows...