2
0
mirror of https://github.com/boostorg/uuid.git synced 2026-01-19 04:42:16 +00:00
Andrey Semashev 97dc5c35ba Added SSE2 SIMD implementation of to_chars.
This adds SSE2 code paths to to_chars_x86.hpp. The performance effect on
Intel Golden Cove (Core i7-12700K), gcc 13.3, in millions of to_chars() calls
per second with a 16-byte aligned output buffer:

Char     | Generic | SSE2            | SSE4.1           | AVX2             | AVX10.1
=========+=========+=================+==================+==================+=================
char     | 202.314 | 564.857 (2.79x) | 1194.772 (5.91x) | 1192.094 (5.89x) | 1191.838 (5.89x)
char16_t | 188.532 | 457.281 (2.43x) |  795.798 (4.22x) |  935.016 (4.96x) |  938.368 (4.98x)
char32_t | 193.151 | 345.612 (1.79x) |  489.620 (2.53x) |  688.829 (3.57x) |  689.617 (3.57x)

Here, Generic column was generated with BOOST_UUID_NO_SIMD defined and
SSE2 with -march=x86-64. SSE2 support can be useful in cases when users
need to be compatible with the base x86-64 ISA.
2026-01-10 12:15:59 +03:00
2024-04-25 22:50:04 +03:00
2026-01-10 02:41:29 +02:00
2024-04-20 23:08:51 +03:00
2024-08-23 19:43:03 +03:00
2024-04-24 20:29:41 +03:00
2018-04-29 09:57:56 -04:00

Boost.Uuid

Boost.Uuid, part of Boost C++ Libraries, provides a C++ implementation of Universally Unique Identifiers (UUID) as described in RFC 4122 and RFC 9562.

See the documentation for more information.

License

Distributed under the Boost Software License, Version 1.0.

Properties

  • C++11 (since Boost 1.86.0)
  • Header-only

Current Status

Branch Github Actions Appveyor Dependencies Documentation Test Matrix
master Build Status Build status Deps Documentation Enter the Matrix
develop Build Status Build status Deps Documentation Enter the Matrix

More Information

  • Ask questions
  • Report bugs: Be sure to mention Boost version, platform and compiler you're using. A small compilable code sample to reproduce the problem is always good as well.
  • Submit your patches as pull requests against the develop branch. Note that by submitting patches you agree to license your modifications under the Boost Software License, Version 1.0.
  • Discussions about the library are held on the Boost developers mailing list. Be sure to read the discussion policy before posting and add the [uuid] tag at the beginning of the subject line.

Code Example - UUID Generation

//  mkuuid.cpp example

#include <boost/uuid.hpp>
#include <iostream>

int main()
{
    boost::uuids::random_generator gen;
    std::cout << gen() << std::endl;
}
$ clang++ -Wall -Wextra -std=c++11 -O2 mkuuid.cpp -o mkuuid
$ ./mkuuid
2c186eb0-89cf-4a3c-9b97-86db1670d5f4
$ ./mkuuid
a9d3fbb9-0383-4389-a8a8-61f6629f90b6
Description
Mirrored via gitea-mirror
Readme BSL-1.0 1.4 MiB
Languages
C++ 98.3%
CMake 1.1%
Shell 0.3%
Batchfile 0.2%