Making Libraries Consumable for Non-C++ Developers– Non-Reference Counted Common ways of facilitating interop scenarios with a Garbage Collector (GC). 1. Handles – Level of indirection. • Usually requires a “platform” API to use the memory. • .NET through JNI, exposes most memory as a handle – jobject, jstring, jintArray, etc. 2. Pinning – Tell GC to not move object. • The platform needs to provide a mechanism. • .NET has GCHandle and C# has fixed0 码力 | 29 页 | 1.21 MB | 6 月前3
C++高性能并行编程与优化 - 课件 - 02 现代 C++ 入门:RAII 内存管理标准保证当异常发生时,会调用已创建对象的解构函数 。 因此 C++ 中没有(也不需要) finally 语句。 如果此处不关闭,则可等 待稍后垃圾回收时关闭。 虽然最后还是关了,但如 果对时序有要求或对性能 有要求就不能依靠 GC 。 比如 mutex 忘记 unlock 造成死锁等等…… RAII :离不开构造函数 • 如题,那么如何定义构造函数呢? BV1h64y197Fd 自定义构造函数:无参数 自定义构造函数:无参数(使用初始化表达式) 管理的对象生命周期长度,取决于他所属的唯一一个引用的寿命 。 那是不是只要 shared_ptr 就行,不用 unique_ptr 了? • 可以适当使用减轻初学者的压力,因为他的行为和 Python 等 GC 语言的引用计数机制很像。但从长远 来看是不行的,因为: 1. shared_ptr 需要维护一个 atomic 的引用计数器, 效率低,需要额外的一块管理内存,访问实际对象 需要二级指针,而且0 码力 | 96 页 | 16.28 MB | 1 年前3
ClickHouse: настоящее и будущееissues with zxid overflow • No issues with large packets • Better memory usage • No issues with GC and Java heap 2. Может запускаться встроенным в clickhouse-server • Нет необходимости в отдельном0 码力 | 32 页 | 2.62 MB | 1 年前3
Rust分布式账务系统 - 胡宇分布式账务系统 第一个吃螃蟹的人从招聘到上线的干货 心路历程 落地第一个 Rust 项目 磨刀霍霍 – 技术选型 心路历程 ● 对新技术持开放态度 ● Kotlin :简洁, JVM, GC ● Rust 引入 Linux 内核 ● Android 支持 Rust ● 积极探索新技术对金融科技的改变 ● 对于核心领域系统,追求极致性能,使用 Rust Airwallex 业界0 码力 | 27 页 | 12.60 MB | 1 年前3
新一代分布式高性能图数据库的构建 - 沈游人01 可静态分发的 Trait 在不带来性 能损失的同时也提高代码组织性 02 03 强大的跨平台能力,在不同架构 下可以准确的控制代码行为 编译期间对生命周期检查确保内 存安全,无 GC 和运行时损耗 01 完善的测试类型支持,包括单元 测试、集成测试、基准测试等 02 03 和文档系统以及 CI/CD 工具的良 好集成 完整的断言系统 异步协程 零成本抽象 强大的测试框架0 码力 | 38 页 | 24.68 MB | 1 年前3
共 5 条
- 1













