Boost interprocess что это за программа и нужна ли она

Boost C++ Libraries

PrevUpHomeNext

Boost.Interprocess simplifies the use of common interprocess communication and synchronization mechanisms and offers a wide range of them:

  • Shared memory.
  • Memory-mapped files.
  • Semaphores, mutexes, condition variables and upgradable mutex types to place them in shared memory and memory mapped files.
  • Named versions of those synchronization objects, similar to UNIX/Windows sem_open/CreateSemaphore API.
  • File locking.
  • Relative pointers.
  • Message queues.

Boost.Interprocess also offers higher-level interprocess mechanisms to allocate dynamically portions of a shared memory or a memory mapped file (in general, to allocate portions of a fixed size memory segment). Using these mechanisms, Boost.Interprocess offers useful tools to construct C++ objects, including STL-like containers, in shared memory and memory mapped files:

  • Dynamic creation of anonymous and named objects in a shared memory or memory mapped file.
  • STL-like containers compatible with shared memory/memory-mapped files.
  • STL-like allocators ready for shared memory/memory-mapped files implementing several memory allocation patterns (like pooling).

Building Boost.Interprocess

There is no need to compile Boost.Interprocess , since it’s a header only library. Just include your Boost header directory in your compiler include path.

Boost.Interprocess depends on Boost.DateTime , which needs separate compilation. However, the subset used by Boost.Interprocess does not need any separate compilation so the user can define BOOST_DATE_TIME_NO_LIB to avoid Boost from trying to automatically link the Boost.DateTime .

In POSIX systems, Boost.Interprocess uses pthread system calls to implement classes like mutexes, condition variables, etc. In some operating systems, these POSIX calls are implemented in separate libraries that are not automatically linked by the compiler. For example, in some Linux systems POSIX pthread functions are implemented in librt . a library, so you might need to add that library when linking an executable or shared library that uses Boost.Interprocess . If you obtain linking errors related to those pthread functions, please revise your system’s documentation to know which library implements them.

Tested compilers

Boost.Interprocess has been tested in the following compilers/platforms:

  • Visual C++ >= 7.1.
  • GCC >= 4.1.

boost_interprocess — что это за папка и можно ли ее удалить?

Приветствую друзья! Сегодня я постараюсь выяснить — что это за папка boost_interprocess, зачем она нужна и можно ли удалить. Постараюсь все написать простыми словами.

boost_interprocess — что это такое?

Папка от софта, который использует в своей работе библиотеку Boost.Interprocess.

boost_interprocess можно заметить в C:\ProgramData\ .

Может появиться при наличии ПО Geforce Experience (фирменное ПО для видеокарт NVIDIA).

Причина появления — софт использует кроссплатформенную библиотеку Boost.Interprocess (C++), которая эмулирует разделяемую память с поведением как в POSIX, то есть создавая файлы на диске и отображая их в память. Эти файлы и создаются в папке boost_interprocess.

Сегодня при разработке GeForce уже используется язык C++. Поэтому все сходится.

Простыми словами — программисты пишут софт, но не все функции нужно создавать заново, иначе это будет долго. Многие функции уже созданы давно и протестированы. Чтобы их можно было использовать при разработке ПО на многих языках — существуют библиотеки, внутри которых уже присутствуют функции. Одна из таких библиотек и есть Boost.Interprocess, которая для своей корректной работы создает папку boost_interprocess. Ну а эту библиотеку уже может использовать разный софт.

Можно ли удалить boost_interprocess?

В принципе удалять не стоит — может повлиять на работу ПО, которое использует библиотеку Boost.Interprocess.

Если папка постоянно пустая — значит она используется для временных файлов, которые после использования — удаляются. Это нормальное явление, даже грамотное.

Однако если удалить очень хочется, тогда предлагаю вам такой план действий:

  1. Создаем точку восстановления на всякий случаем и даем название, например До переименования boost_interprocess. Советую не игнорировать этот пункт!
  2. Выполняем перезагрузку ПК. После перезагрузки никакие программы не запускаем. А все, которые запустились автоматически — выходим из них.
  3. Папку не удаляете, а переименовываете, при этом лучше сохранить оригинальное название, я предлагаю просто добавить символ нижнего пробела _. Если при переименовании будут проблемы — используйте утилиту Unlocker, она спецом чтобы переименовывать и удалять неудаляемые папки/файлы.
  4. После переименования — выполняем перезагрузку. Тестируем некоторое время, день-два или больше.
  5. При проблемах — возвращаем оригинальное название папки и делаем перезагрузку. Если это не помогает — используем ранее созданную точку восстановления.
  6. Если проблем не будет, можем сделать вывод: папка временная, ее можно удалить, но если размер ее маленький — пусть будет, ведь компьютера она точно не грузит.

Судя по этой картинке — boost_interprocess может быть даже заблокирована:

Заключение

  • boost_interprocess — папка, создаваемая софтом, который использует в своей работе библиотеку Boost.Interprocess.
  • Таким софтом может выступать фирменное ПО для видеокарты, материнской платы.
  • Удалять не рекомендуется, только в случае когда занимает много места. Предварительно создав точку восстановления!

Boost C++ Libraries

PrevUpHomeNext

Boost.Interprocess simplifies the use of common interprocess communication and synchronization mechanisms and offers a wide range of them:

  • Shared memory.
  • Memory-mapped files.
  • Semaphores, mutexes, condition variables and upgradable mutex types to place them in shared memory and memory mapped files.
  • Named versions of those synchronization objects, similar to UNIX/Windows sem_open/CreateSemaphore API.
  • File locking.
  • Relative pointers.
  • Message queues.

Boost.Interprocess also offers higher-level interprocess mechanisms to allocate dynamically portions of a shared memory or a memory mapped file (in general, to allocate portions of a fixed size memory segment). Using these mechanisms, Boost.Interprocess offers useful tools to construct C++ objects, including STL-like containers, in shared memory and memory mapped files:

  • Dynamic creation of anonymous and named objects in a shared memory or memory mapped file.
  • STL-like containers compatible with shared memory/memory-mapped files.
  • STL-like allocators ready for shared memory/memory-mapped files implementing several memory allocation patterns (like pooling).

Building Boost.Interprocess

There is no need to compile Boost.Interprocess , since it’s a header only library. Just include your Boost header directory in your compiler include path.

Boost.Interprocess depends on Boost.DateTime , which needs separate compilation. However, the subset used by Boost.Interprocess does not need any separate compilation so the user can define BOOST_DATE_TIME_NO_LIB to avoid Boost from trying to automatically link the Boost.DateTime .

In POSIX systems, Boost.Interprocess uses pthread system calls to implement classes like mutexes, condition variables, etc. In some operating systems, these POSIX calls are implemented in separate libraries that are not automatically linked by the compiler. For example, in some Linux systems POSIX pthread functions are implemented in librt . a library, so you might need to add that library when linking an executable or shared library that uses Boost.Interprocess . If you obtain linking errors related to those pthread functions, please revise your system’s documentation to know which library implements them.

Tested compilers

Boost.Interprocess has been tested in the following compilers/platforms:

  • Visual C++ >= 7.1.
  • GCC >= 4.1.

При подготовке материала использовались источники:
https://www.boost.org/doc/libs/1_71_0/doc/html/interprocess.html

https://www.boost.org/doc/libs/develop/doc/html/interprocess.html

Добавить комментарий