|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
24.03.2015, 23:43 | #1 |
Пользователь
Регистрация: 13.08.2008
Сообщений: 76
|
Особенности разработки 64 битных приложений
Здравствуйте!
Кто располагает информацией по основным правилам и особенностям написания 64-битных приложений, пожалуйста, поделитесь информацией. Интересует все от ключей компиляции до примеров оптимизированного кода. |
24.03.2015, 23:53 | #2 |
Старожил
Регистрация: 30.12.2009
Сообщений: 11,426
|
Ключи и прочее - в документации
Ничем особо не отличается, разве что использование 64-битных регистров в собственном ассемблерном коде, примеры можете глянуть в том же system.pas. За вас уже все сделано в RTL, VCL. Были бы вы разработчиком KOL&MCK тогда да, огребли бы гемороя)) |
25.03.2015, 08:15 | #3 | |
Участник клуба
Регистрация: 12.09.2012
Сообщений: 1,030
|
Цитата:
1. Зачастую не запускаются под 32-битной ОС. 2. За один такт процессора выполняется 64 строки кода вместо 32(Прим. Кол-во тактов в сек ~ Частота процессора). 3. 64 - битные приложения получают гораздо больше RAM в пользование. 4. Должны быть скомпилированны под 64-битным компилятором или ОС. 5. Весят чуть больше.
Что нужно программисту: Компьютер, Среда программирование, Воображение, Прямые руки, Мозги, Знания этой среды программирования.
Программист-это профессия, а программирование-это моё хобби. |
|
25.03.2015, 11:41 | #4 |
Тот ещё
Старожил
Регистрация: 14.11.2007
Сообщений: 2,242
|
Человек_Борща всё правильно сказал. С точки зрения работы приложения на уровне процессора заморачиваться не стоит, всё уже давно сделали за/для вас. Проблемы могут возникнуть при работе с типизированными файлами. Если у вас имеются и x86 и x64 версии вашей программы, то при чтении/записи в файл нужно четко контролировать размер блоков. Ибо один и тот же тип данных в x86 и в x64 может иметь разный размер. Как то например:
Записали в x64-версии число типа NativeInt, прочитали под x86 -> Потеряли данные Записали в x86, прочитали под x64 -> Получили ошибку (типа файл кончился) Вот такой тип Код:
Еще интереснее штука с Extended (см. справку). Короче нужно использовать платформо независимые типы данных. В реальных задачах прикладного уровня это не заметишь. Все основные простые типы и так платформонезависимые. |
25.03.2015, 11:51 | #5 | |
Старожил
Регистрация: 28.01.2009
Сообщений: 21,000
|
Цитата:
флаги в PE разные. 2)что за бред? строки вообще к скорости отношения не имеют, я могу код в одну строку записать, он что быстрее станет? 3)почти верно, 32-битное приложение на самом деле тоже может много памяти иметь, но неудобно. 4)абсолютно верно. 5)нет. Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел. Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите. |
|
25.03.2015, 12:00 | #6 | ||||
Старожил
Регистрация: 30.12.2009
Сообщений: 11,426
|
Цитата:
Цитата:
Цитата:
FASM внезапно генерирует одинаковое кол-во байт для 32й и 64й программы. Цитата:
|
||||
25.03.2015, 16:13 | #7 |
Пользователь
Регистрация: 13.08.2008
Сообщений: 76
|
Добрго дня!
С типизированными файлами понятно. Обмен между 32/64 версиями побайтным преобразованием. Отказ от магических констант, указатели в в 64 бита, отдельные процедуры работы с битовыми операциями и т.д. Хэлпы не изобилуют информацией. Немного про размер данных. В Delphi вроде не так запущено как в С. Кроссплатформенность не учитываем, потому что там и short в ряде случаев 64 битный. Какие преимущества 64 бит кроме математических вычислений: более быстрые операции сравнения, строковые процедуры, работа с массивами, потоками? Интересуют как раз принципы написания, благодаря которым 64-битное приложение оказывается эффективнее по скорости выполнения. По идее, раз обрабатывается в два раза больше данных за такт (за вычетом пропускной способности шины) хоть в 25 процентов скорости прирост должен быть. Необходимость в огромных объемах памяти отсутствует. Важна скорость. Примеров, чтобы бенчмаркнуть одно и то же приложение под 32 и под 64 не встречал даже в чужеземных интернетах. Последний раз редактировалось Turbine; 25.03.2015 в 17:05. |
25.03.2015, 17:49 | #8 |
Тот ещё
Старожил
Регистрация: 14.11.2007
Сообщений: 2,242
|
Turbine, не. Тут же нужно конкретную задачу смотреть. По-моему каких-то универсальных принципов не существует. Опять же на практике прирост именно в скорости в любом случае будет не очень большой. Это ведь как с многоядерностью.
Ну вот пара задач, которые, на мой взгляд, можно не плохо оптимизировать при x64: - архиваторы - графические фильтры Вообще, математика с возможностью запараллеливать расчеты векторов. Последний раз редактировалось Sibedir; 25.03.2015 в 18:13. |
25.03.2015, 17:59 | #9 | |
Старожил
Регистрация: 30.12.2009
Сообщений: 11,426
|
Цитата:
Для delphi особо ничего нового, вот типы и их размеры под 32 и 64. Будите писать что-то на встроенном assembler, будет иметь смысл 32 или 64. в system.pas есть примеры. В противном случае не парьтесь, за вас все написано. |
|
25.03.2015, 18:03 | #10 |
Участник клуба
Регистрация: 16.06.2011
Сообщений: 1,428
|
Turbine, Криса Касперского читал???
Нашедшего выход - затаптывают первым..
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Собираем команду для разработки игрушек,приложений | DenDan | Фриланс | 12 | 16.02.2015 16:41 |
Создание игры::особенности коллективной разработки флеш приложений | АТИКОН | Gamedev - cоздание игр: Unity, OpenGL, DirectX | 9 | 21.08.2011 19:51 |
Особенности окон Java-приложений | Gonzo | Win Api | 3 | 18.08.2011 17:35 |