64-bit

64-битные программы и вычисления с плавающей точкой

К нам в поддержку обратился разработчик, занимающийся портированием своего Windows-приложения на 64-битную платформу. Он задал вопрос, связанный с использованием вычислений с плавающей точкой. С его разрешения мы публикуем в блоге ответ на вопрос, поскольку эта тема может быть интересна и другим разработчикам.

Текст письма


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

Memories of how I once ported a project to 64 bits

Some time ago I’ve ported some library from the 32-bit version to the 64-bit one (С++, MSVS 2008, Windows). I felt a temptation to write about it immediately after that but I had no time then. That is why I am writing about it now and I think it is not too bad since I will write about those things that really stuck in my memory.

The reasons why 64-bit programs require more stack memory

In forums, people often say that 64-bit versions of programs consume a larger amount of memory and stack. Saying so, they usually argue that the sizes of data have become twice larger. But this statement is unfounded since the size of most types (char, short, int, float) in the C/C++ language remains the same on 64-bit systems. Of course, for instance, the size of a pointer has increased but far not all the data in a program consist of pointers.

Воспоминания об одном портировании на 64 бита

Какое-то время назад я занимался портированием одной библиотеки с 32-х на 64-битную версию (С++, MSVS 2008, Windows). Был соблазн написать об этом сразу, но не было времени. Поэтому пишу об этом сейчас, и это, наверное, не так плохо, так как я напишу о тех моментах, которые действительно запомнились.

Новые диагностические возможности, реализованные в PVS-Studio 3.60

1. Устаревшие функции. Диагностическое сообщение V303.


В Win64 API присутствует ряд функций, которые присутствуют для совместимости, хотя могут привести к возникновению ошибок в 64-битных программах. Классическим примером является функция SetWindowLong.
LONG SetWindowLong(HWND hWnd, int nIndex, LONG dwNewLong);

Причины, по которым 64-битные программы требуют больше стековой памяти

В форумах люди часто упоминают, что 64-битные версии программ поглощают больший объем памяти и стека. При этом обычно ссылаются на то, что размеры данных стали в 2 раза больше. Однако это необоснованное утверждение, так как размер большинства типов (char, short, int, float) в языке Си/Си++ остался прежним на 64-битных системах. Конечно, например, увеличился размер указателей, но ведь не все данные в программе состоят из указателей. Причины роста потребляемой памяти и стека более сложны.

Best notes from OOO "Program Verification Systems" company's blog on parallel and 64-bit software development

This text contains links to the best posts of the blog conducted by the workers of OOO "Program Verification Systems" company. The notes are devoted to the topic of 64-bit and parallel OpenMP software development.
  • 64-bit Coding
  • 64-bit
  • PVS-Studio
  • OpenMP*
  • Parallélisation
  • База знаний по вопросам разработки 64-битных и параллельных приложений

    Основным методом продвижения нашего программного продукта PVS-Studio является знакомство разработчиков с типовыми проблемами, которые позволяет решить данный инструмент.

    In what way can C++0x standard help you eliminate 64-bit errors

    Programmers see in C++0x standard an opportunity to use lambda-functions and other entities I do not quite understand :). But personally I see convenient means in it that allow us to get rid of many 64-bit errors.

    Consider a function that returns "true" if at least one string contains the sequence "ABC".
    typedef vector<string> ArrayOfStrings;

    bool Find_Incorrect(const ArrayOfStrings &arrStr)
    {

    Pages

    S’abonner à 64-bit