mirror of
https://github.com/boostorg/uuid.git
synced 2026-01-19 04:42:16 +00:00
97dc5c35ba3d15069d97d55ad6bfa094432b436f
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.
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 |
|||||
develop |
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
Languages
C++
98.3%
CMake
1.1%
Shell
0.3%
Batchfile
0.2%