Hidden Overhead of a Function API
performance, we typically think about the function logic. We’ll see that a well designed function API can have an even larger impact.How will we compare performance? ● Benchmarks at this low level are as an implicit parameter. The callee then constructs the return value into this address. C++ reference: Trivial class A trivial class is a class that ● is trivially copyable, and ● has one or more constructor, or destructor, or ● all of its copy and move constructors are deleted. different from C++ reference: Trivially copyable class Also requires trivial copy and move assignment operators. 55Wrapper0 码力 | 158 页 | 2.46 MB | 5 月前3GraphBLAS: Building a C++ Matrix API for Graph Algorithms
the important data structures and concepts? Prior work in the GraphBLAS community, C API Overview of our draft C++ API How might this interoperate with standard C++, graph library proposal? 4[DISTRIBUTION the important data structures and concepts? Prior work in the GraphBLAS community, C API Overview of our draft C++ API How might this interoperate with standard C++, graph library proposal? 5[DISTRIBUTION the important data structures and concepts? Prior work in the GraphBLAS community, C API Overview of our draft C++ API How might this interoperate with standard C++, graph library proposal? 6[DISTRIBUTION0 码力 | 172 页 | 7.40 MB | 5 月前3The Many Shades of reference_wrapper
some_object; if (cond) dialog = some_other_object; // ?? process(dialog); 3 CppCon 2020C++ reference can only be bound once auto& dialog = [&]() -> auto& { if (cond) return some_object; else return 2020Reference “assignment” 8 CppCon 2020 Python dialog = some_object if cond: dialog = some_other_object C++ auto& dialog = some_object; if (cond) dialog = some_other_object;C++ reference • initialization initialization binds the object to the reference • assignment assigns to the bounded object (so called “assign-through”) 9 CppCon 2020What if initialization and assignment both bind objects? • initialization0 码力 | 49 页 | 575.61 KB | 5 月前3Lock-Free Atomic Shared Pointers Without a Split Reference Count? It Can Be Done!
Atomics and concurrency patterns • How existing atomicare implemented (the split reference count technique) • Deferred reclamation, i.e., garbage collection in C++ Some assumed knowledge Atomics and concurrency patterns • How existing atomic are implemented (the split reference count technique) • Deferred reclamation, i.e., garbage collection in C++ Some assumed knowledge control_block pointer as a lock26 Daniel Anderson -- danielanderson.net Solution #2: The split reference count • Used by Folly (Facebook open-source library, used in production), • Used by JustThreads 0 码力 | 45 页 | 5.12 MB | 5 月前3Conan 2.0 Documentation
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 2.3 New public Python API . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 2.4 New build commands examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 235 8 Reference 241 8.1 Commands . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . multiple auth protocols (LDAP), Virtual and Remote repositories to create advanced topologies, a Rest API, and generic repositories to host any artifact. • The conan_server is a small server distributed together0 码力 | 652 页 | 4.00 MB | 1 年前3Conan 2.1 Documentation
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 2.3 New public Python API . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 2.4 New build commands examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 259 8 Reference 265 8.1 Commands . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . multiple auth protocols (LDAP), Virtual and Remote repositories to create advanced topologies, a Rest API, and generic repositories to host any artifact. • The conan_server is a small server distributed together0 码力 | 694 页 | 4.13 MB | 1 年前3Conan 2.5 Documentation
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 2.3 New public Python API . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 2.4 New build examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 285 8 Reference 299 8.1 Commands . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . multiple auth protocols (LDAP), Virtual and Remote repositories to create advanced topologies, a Rest API, and generic repositories to host any artifact. • The conan_server is a small server distributed together0 码力 | 769 页 | 4.70 MB | 1 年前3Conan 2.4 Documentation
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 2.3 New public Python API . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 2.4 New build examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 285 8 Reference 299 8.1 Commands . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . multiple auth protocols (LDAP), Virtual and Remote repositories to create advanced topologies, a Rest API, and generic repositories to host any artifact. • The conan_server is a small server distributed together0 码力 | 769 页 | 4.69 MB | 1 年前3Conan 2.3 Documentation
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 2.3 New public Python API . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 2.4 New build examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 279 8 Reference 293 8.1 Commands . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . multiple auth protocols (LDAP), Virtual and Remote repositories to create advanced topologies, a Rest API, and generic repositories to host any artifact. • The conan_server is a small server distributed together0 码力 | 748 页 | 4.65 MB | 1 年前3Conan 2.10 Documentation
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 2.3 New public Python API . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 2.4 New build examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 292 8 Reference 305 8.1 Commands . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . multiple auth protocols (LDAP), Virtual and Remote repositories to create advanced topologies, a Rest API, and generic repositories to host any artifact. • The conan_server is a small server distributed together0 码力 | 803 页 | 5.02 MB | 10 月前3
共 276 条
- 1
- 2
- 3
- 4
- 5
- 6
- 28