Object Lifetime: From Start to Finish
}; int main() { auto v1 = Foo(1); { auto v2 = Foo(2); } auto v3 = Foo(3); auto v4 = new Foo(4); } https://godbolt.org/z/4WroY5311 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 1653 using }; int main() { auto v1 = Foo(1); { auto v2 = Foo(2); } auto v3 = Foo(3); auto v4 = new Foo(4); } https://godbolt.org/z/4WroY5311 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 1654 using { auto v1 = Foo(1); // Foo(1) { auto v2 = Foo(2); } auto v3 = Foo(3); auto v4 = new Foo(4); } https://godbolt.org/z/4WroY5311 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 1655 using0 码力 | 214 页 | 9.34 MB | 5 月前3Exploration of Strongly-typed Units: A Case Study from Digital Audio
units auto v3 = avg_speed(220. * isq::distance[km], 2 * h); // 110.0 km/h auto v4 = avg_speed(isq::distance(140. * mi), 2 * h); // 70.0 mi/hhello, units constexpr t; } auto v3 = avg_speed(220. * isq::distance[km], 2 * h); // 110.0 km/h auto v4 = avg_speed(isq::distance(140. * mi), 2 * h); // 70.0 mi/hhello, units auto / t; } auto v3 = avg_speed(220. * isq::distance[km], 2 * h); // 110.0 km/h auto v4 = avg_speed(isq::distance(140. * mi), 2 * h); // 70.0 mi/hhello, units auto0 码力 | 106 页 | 5.66 MB | 5 月前3Embracing CTAD
auto v3 = make_vector(1); // std::vectorauto v4 = make_vector(v1); static_assert(std::is_same_v v4), std::vector >); } CTAD prefers copying over conv auto v3 = make_vector(1); // std::vector auto v4 = make_vector(v1); static_assert(std::is_same_v v4), std::vector >); } CTAD prefers copying over conversion#include auto v3 = make_vector(1); // std::vector auto v4 = make_vector(v1); static_assert(std::is_same_v v4), std::vector >); } CTAD prefers copying over conversionstd::pair 0 码力 | 98 页 | 4.62 MB | 5 月前3CppCon 2021: Persistent Data Structures
copyIdx copyDone size slots newTable K1 V1 K2 V2 K3 V3 K4 V4 Table pairs CHM copyIdx copyDone size slots newTable K1 V1 K2 V2 K3 V3 K4 V4 K5 V5 K6 V6 K7 V7 K8 V8 K1 V1 K2 V2 1.dat 2.dat 3.dat Table copyIdx copyDone size slots newTable K1 V1 K2 V2 K3 V3 K4 V4 Table pairs CHM copyIdx copyDone size slots newTable K1 V1 K2 V2 K3 V3 K4 V4 K5 V5 K6 V6 K7 V7 K8 V8 K1 V1 K2 V2 1.dat 2.dat 3.dat Table copyIdx copyDone size slots newTable K1 V1 K2 V2 K3 V3 K4 V4 Table pairs CHM copyIdx copyDone size slots newTable K1 V1 K2 V2 K3 V3 K4 V4 K5 V5 K6 V6 K7 V7 K8 V8 K1 V1 K2 V2 1.dat 2.dat 3.dat Table0 码力 | 56 页 | 1.90 MB | 5 月前3Hidden Overhead of a Function API
z3$[rsp] mov DWORD PTR z2$[rsp], eax mov eax, DWORD PTR y3$[rsp] movsd QWORD PTR v4$[rsp], xmm0 mov rcx, QWORD PTR v4$[rsp] mov rdx, rcx mov DWORD PTR y2$[rsp], eax shr rdx, 32 add rsp, 104 jmp z3$[rsp] mov DWORD PTR z2$[rsp], eax mov eax, DWORD PTR y3$[rsp] movsd QWORD PTR v4$[rsp], xmm0 mov rcx, QWORD PTR v4$[rsp] mov rdx, rcx mov DWORD PTR y2$[rsp], eax shr rdx, 32 add rsp, 104 jmp z3$[rsp] mov DWORD PTR z2$[rsp], eax mov eax, DWORD PTR y3$[rsp] movsd QWORD PTR v4$[rsp], xmm0 mov rcx, QWORD PTR v4$[rsp] mov rdx, rcx mov DWORD PTR y2$[rsp], eax shr rdx, 32 add rsp, 104 jmp0 码力 | 158 页 | 2.46 MB | 5 月前3Curve设计要点
单卷4K随机读写平均延迟(ms) 1.244 3.2 3.1 0.998 4K随机写 4K随机读 61.12 % 67.8% 测试环境:6台服务器*20块SATA SSD,E5-2660 v4,256G,3副本场景 高性能高性能 • quorum机制:raft • 轻量级快照 • io路径上的优化 • filepool落盘零放大 • 轻量级线性一致性读 • io路径上用户空间零拷贝 21% 10卷4K随机读写平均延迟(ms) 4.34 7 3.7 2.423 4K随机写 4K随机读 38% 34.5% 测试环境:6台服务器*20块SATA SSD,E5-2660 v4,256G,3副本场景高可用 核心组件支持多实例部署,允许部分实例异常 MDS、Snapshotcloneserver 通过 etcd 选主,实现高可用高可用 chunkserver 使用raft,2N0 码力 | 35 页 | 2.03 MB | 5 月前3Coroutines and Structured Concurrency in Practice
io_context(/*threads = */ 1); tcp::acceptor acceptor(io_context, tcp::endpoint(tcp::v4, /*port = */ 12345)); asio::signal_set signals(io_context, SIGINT, SIGTERM); run(io, any uint16_t port) { n.start([&]() -> Task{ tcp::acceptor acc(io, tcp::endpoint(tcp::v4(), port)); for (;;) { auto s = co_await acc.async_accept(io, use_awaitable); 0 码力 | 103 页 | 1.98 MB | 5 月前3Vectorizing a CFD Code With std::simd Supplemented by Transparent Loading and Storing
Support g++(11.4, 12.2) -g -march=core-avx2 -O3 -std=gnu++20; Broadwell: Intel(R) Xeon(R) CPU E5-1650 v4 @ 3.60GHz (AVX2); Skylake: Intel(R) Xeon(R) W-2295 CPU @ 3.00GHz; Zen II: AMD EPYC 7702 64-Core Processor Support g++(11.4, 12.2) -g -march=core-avx2 -O3 -std=gnu++20; Broadwell: Intel(R) Xeon(R) CPU E5-1650 v4 @ 3.60GHz (AVX2); Skylake: Intel(R) Xeon(R) W-2295 CPU @ 3.00GHz; Zen II: AMD EPYC 7702 64-Core Processor0 码力 | 58 页 | 2.68 MB | 5 月前3Rust 程序设计语言 简体中文版 1.85.0
枚举来表现这个概念并列出可能的 IP 地址类型,V4 和 V6。这被称为枚举的变体(variants): enum IpAddrKind { V4, V6, } 现在 IpAddrKind 就是一个可以在代码中使用的自定义数据类型了。 枚举值 可以像这样创建 IpAddrKind 两个不同变体的实例: let four = IpAddrKind::V4; let six = 么设计的益处是现在 IpAddrKind::V4 和 IpAddrKind::V6 都是 IpAddrKind 类型的。例如,接着可以定义一个函数来 接收任何 IpAddrKind类型的参数: fn route(ip_kind: IpAddrKind) {} 现在可以使用任一变体来调用这个函数: route(IpAddrKind::V4); route(IpAddrKind::V6); enum IpAddrKind { V4, V6, } struct IpAddr { kind: IpAddrKind, address: String, } let home = IpAddr { kind: IpAddrKind::V4, address: String::from("1270 码力 | 562 页 | 3.23 MB | 14 天前3TVM工具组
caffe 模型文件,不需要预先安装 caffe 。 net 已测试网络:alexnet / densenet121 / inception v1 / inception v3 / inception v4 / mobilenet v1 / mobilenet v2 / resnet50 / squeezenet v1 / vgg16 / ssd / fcn-8s op 已测试 op:innerproduct0 码力 | 6 页 | 326.80 KB | 5 月前3
共 17 条
- 1
- 2
相关搜索词
ObjectLifetimeFromStarttoFinishExplorationofStronglytypedUnitsCaseStudyfromDigitalAudioEmbracingCTADCppCon2021PersistentDataStructuresHiddenOverheadFunctionAPICurve设计要点CoroutinesandStructuredConcurrencyinPracticeVectorizingCFDCodeWithstdsimdSupplementedbyTransparentLoadingStoringRust程序程序设计语言简体中文文版中文版简体中文版1.85TVM工具