积分充值
 首页
前端开发
AngularDartElectronFlutterHTML/CSSJavaScriptReactSvelteTypeScriptVue.js构建工具
后端开发
.NetC#C++C语言DenoffmpegGoIdrisJavaJuliaKotlinLeanMakefilenimNode.jsPascalPHPPythonRISC-VRubyRustSwiftUML其它语言区块链开发测试微服务敏捷开发架构设计汇编语言
数据库
Apache DorisApache HBaseCassandraClickHouseFirebirdGreenplumMongoDBMySQLPieCloudDBPostgreSQLRedisSQLSQLiteTiDBVitess数据库中间件数据库工具数据库设计
系统运维
AndroidDevOpshttpdJenkinsLinuxPrometheusTraefikZabbix存储网络与安全
云计算&大数据
Apache APISIXApache FlinkApache KarafApache KyuubiApache OzonedaprDockerHadoopHarborIstioKubernetesOpenShiftPandasrancherRocketMQServerlessService MeshVirtualBoxVMWare云原生CNCF机器学习边缘计算
综合其他
BlenderGIMPKiCadKritaWeblate产品与服务人工智能亿图数据可视化版本控制笔试面试
文库资料
前端
AngularAnt DesignBabelBootstrapChart.jsCSS3EchartsElectronHighchartsHTML/CSSHTML5JavaScriptJerryScriptJestReactSassTypeScriptVue前端工具小程序
后端
.NETApacheC/C++C#CMakeCrystalDartDenoDjangoDubboErlangFastifyFlaskGinGoGoFrameGuzzleIrisJavaJuliaLispLLVMLuaMatplotlibMicronautnimNode.jsPerlPHPPythonQtRPCRubyRustR语言ScalaShellVlangwasmYewZephirZig算法
移动端
AndroidAPP工具FlutterFramework7HarmonyHippyIoniciOSkotlinNativeObject-CPWAReactSwiftuni-appWeex
数据库
ApacheArangoDBCassandraClickHouseCouchDBCrateDBDB2DocumentDBDorisDragonflyDBEdgeDBetcdFirebirdGaussDBGraphGreenPlumHStreamDBHugeGraphimmudbIndexedDBInfluxDBIoTDBKey-ValueKitDBLevelDBM3DBMatrixOneMilvusMongoDBMySQLNavicatNebulaNewSQLNoSQLOceanBaseOpenTSDBOracleOrientDBPostgreSQLPrestoDBQuestDBRedisRocksDBSequoiaDBServerSkytableSQLSQLiteTiDBTiKVTimescaleDBYugabyteDB关系型数据库数据库数据库ORM数据库中间件数据库工具时序数据库
云计算&大数据
ActiveMQAerakiAgentAlluxioAntreaApacheApache APISIXAPISIXBFEBitBookKeeperChaosChoerodonCiliumCloudStackConsulDaprDataEaseDC/OSDockerDrillDruidElasticJobElasticSearchEnvoyErdaFlinkFluentGrafanaHadoopHarborHelmHudiInLongKafkaKnativeKongKubeCubeKubeEdgeKubeflowKubeOperatorKubernetesKubeSphereKubeVelaKumaKylinLibcloudLinkerdLonghornMeiliSearchMeshNacosNATSOKDOpenOpenEBSOpenKruiseOpenPitrixOpenSearchOpenStackOpenTracingOzonePaddlePaddlePolicyPulsarPyTorchRainbondRancherRediSearchScikit-learnServerlessShardingSphereShenYuSparkStormSupersetXuperChainZadig云原生CNCF人工智能区块链数据挖掘机器学习深度学习算法工程边缘计算
UI&美工&设计
BlenderKritaSketchUI设计
网络&系统&运维
AnsibleApacheAWKCeleryCephCI/CDCurveDevOpsGoCDHAProxyIstioJenkinsJumpServerLinuxMacNginxOpenRestyPrometheusServertraefikTrafficUnixWindowsZabbixZipkin安全防护系统内核网络运维监控
综合其它
文章资讯
 上传文档  发布文章  登录账户
IT文库
  • 综合
  • 文档
  • 文章

无数据

分类

全部后端开发(37)区块链(30)综合其他(6)Krita(6)C++(5)系统运维(2)存储(2)Rust(1)

语言

全部中文(简体)(45)

格式

全部PDF文档 PDF(21)其他文档 其他(20)PPT文档 PPT(4)
 
本次搜索耗时 0.080 秒,为您找到相关结果约 45 个.
  • 全部
  • 后端开发
  • 区块链
  • 综合其他
  • Krita
  • C++
  • 系统运维
  • 存储
  • Rust
  • 全部
  • 中文(简体)
  • 全部
  • PDF文档 PDF
  • 其他文档 其他
  • PPT文档 PPT
  • 默认排序
  • 最新排序
  • 页数排序
  • 大小排序
  • 全部时间
  • 最近一天
  • 最近一周
  • 最近一个月
  • 最近三个月
  • 最近半年
  • 最近一年
  • ppt文档 C++高性能并行编程与优化 - 课件 - 02 现代 C++ 入门:RAII 内存管理

    针。比如右边这样: 更智能的指针: shared_ptr • 使用起来很困难的原因,在于 unique_ptr 解决重复释放 的方式是禁止拷贝,这样虽然有效率高的优势,但导致使 用困难,容易犯错等。 • 相比之下, 牺牲效率换来自由度的 shared_ptr 则允许 拷贝,他解决重复释放的方式是通过引用计数: 1. 当一个 shared_ptr 初始化时,将计数器设为 1 。 2. 当一个 shared_ptr 被拷贝时,计数器加 1 。 3. 当一个 shared_ptr 被解构时,计数器减 1 。减到 0 时 ,则自动销毁他指向的对象。 • 从而可以保证,只要还有存在哪怕一个指针指向该对象 ,就不会被解构。 更智能的指针: shared_ptr (续) • 我们可以使用 p.use_count() 来获取当前 指针的引用计数,看看他是不是在智能地 增减引用计数器。 增减引用计数器。 注意 p.func() 是 shared_ptr 类型本身的成 员函数,而 p->func() 是 p 指向对象(也 就是 C )的成员函数,不要混淆。 不影响 shared_ptr 计数:弱引用 weak_ptr • 有时候我们希望维护一个 shared_ptr 的弱引用 weak_ptr ,即:弱引用的拷贝与解构不影响其 引用计数器。 • 之后有需要时,可以通过 lock()
    0 码力 | 96 页 | 16.28 MB | 1 年前
    3
  • pdf文档 现代C++ 教程:高速上手C++11/14/17/20

    . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52 5.2 std::shared_ptr . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53 5.3 std::unique_ptr 增加一次对同一个对象的引用,那 么引用对象的引用计数就会增加一次,每删除一次引用,引用计数就会减一,当一个对象的引用计数减 为零时,就自动删除指向的堆内存。 52 5.2 std::shared_ptr 第 5 章智能指针与内存管理 在传统 C++ 中,『记得』手动释放资源,总不是最佳实践。因为我们很有可能就忘记了去释放资源 而导致泄露。所以通常的做法是对于一个对象而言,我们在构造函数的时候申请空间,而在析构函数(在 员不再需要关心手动释放内存。这些智能指针包括 std::shared_ptr/std::unique_ptr/std::weak_ptr, 使用它们需要包含头文件 。 注意:引用计数不是垃圾回收,引用计数能够尽快收回不再被使用的对象,同时在回收的过 程中也不会造成长时间的等待,更能够清晰明确的表明资源的生命周期。 5.2 std::shared_ptr std::shared_ptr 是一种智能指针,它能够记录多少个
    0 码力 | 83 页 | 2.42 MB | 1 年前
    3
  • pdf文档 Curve支持S3 数据缓存方案

    () {} void Init(const S3ClientAdaptorOption option, S3Client *client, std::shared_ptr inodeManager);© XXX Page 5 of 9 int Write(Inode *inode, uint64_t offset, uint64_t allocateServerEps_; Thread bgFlushThread_; std::atomic toStop_; std::shared_ptr fsCacheManager_; std::shared_ptr inodeManager_; }; class S3ClientAdaptor; class ChunkCacheManager; class FileCacheManager; class FsCacheManager; using FileCacheManagerPtr = std::shared_ptr; using ChunkCacheManagerPtr = std::shared_ptr; using DataCachePtr = std::shared_ptr; class FsCacheManager { public: FsCacheManager()
    0 码力 | 9 页 | 179.72 KB | 6 月前
    3
  • ppt文档 C++高性能并行编程与优化 - 课件 - Zeno 中的现代 C++ 最佳实践

    ,就可以对猫和狗都适用,实现代码的复用( dont-repeat-yourself ), 也让函数的作者不必去关注点从猫和狗的其他具体细节,只需把握住他们统一具有的“吃”这个接口。 小知识: shared_ptr 如何深拷贝? 浅拷贝: 深拷贝: 思考:能不能把拷贝构造函数也作为虚函数? • 现在我们的需求有变,不是去对同一个对象调用两次 eatTwice ,而是先把对象复制一份 拷贝,然后对对象本身和他的拷贝都调用一次 IObjectClone 模板 类。其模板参数是他的派生类 Derived 。 • 然后在这个 IObjectClone 里实现 clone 即可。那为什么需要派生类作为模板参数 ? • 因为 shared_ptr 的深拷贝需要知道对象具 体的类型。注意这里不仅 make_shared 的参数有 Derived , this 指针(原本是 IObjectClone const * 类型)也需要转化成 个端口上,比如 {“PrimitiveCreate”, “prim”} 就表示这个端口连接了 PrimitiveCreate 节点的 prim 输出端口。 • ( zany 是 shared_ptr 的缩 写) 一个节点的定义,以 MakeBoxPrimitive 为例 MaxBoxPrimitive 节点的内部: apply 的定义 通过 get_input(“name”)
    0 码力 | 54 页 | 3.94 MB | 1 年前
    3
  • pdf文档 CurveFS S3本地缓存盘方案

    fullRatio_; int64_t safeRatio_; std::string cacheDir_; std::shared_ptr CacheWrite_; std::shared_ptr CacheRead_; std::set cachedObjName;
    0 码力 | 9 页 | 150.46 KB | 6 月前
    3
  • ppt文档 C++高性能并行编程与优化 - 课件 - 15 C++ 系列课:字符与字符串

    所以 cpp 之父曾经说,他设计 cpp11 的时候,是考虑“如何在对语言本身改动最小的情况下 ,尽量只在标准库里做手脚,尽可能只利用现有的语言特性,实现 cpp 的现代化。” • 例如 shared_ptr 可以通过利用语言本身的“拷贝构造函数”实现引用计数,没必要在编译器里 开洞。但“移动语义”这个概念在旧 cpp 里没有,所以这个是真正必要的语言本身的改动。 • 而 java 就是在语言层面,直接在 举例:常见容器及其相应的弱引用 强引用 弱引用 string string_view wstring wstring_view vector span unique_ptr T * shared_ptr weak_ptr 字符串用 substr 切片 • 熟悉 Python 的同学对切片 (slice) 操作肯定不陌生,例如: • “hello”[1:1+3] 会得到 “ ell”
    0 码力 | 162 页 | 40.20 MB | 1 年前
    3
  • ppt文档 C++高性能并行编程与优化 - 课件 - 04 从汇编角度看编译器优化

    new/delete 的容器:我是说,内存分配在堆上的容器 • 存储在堆上(妨碍优化): • vector, map, set, string, function, any • unique_ptr, shared_ptr, weak_ptr • 存储在栈上(利于优化): • array, bitset, glm::vec, string_view • pair, tuple, optional, variant
    0 码力 | 108 页 | 9.47 MB | 1 年前
    3
  • pdf文档 Comprehensive Rust(简体中文) 202412

    malloc 和 free 函数手动管理堆。常见错误包括忘记调用 free、针对同一指针 多次调用它,或在释放某指针所指向的内存后解引用它。 • C++ 具有智能指针(unique_ptr、shared_ptr)等工具,可以利用与调用析构函数相关的语言 保证来确保在函数返回时释放内存。这些工具仍然很容易被滥用并导致与 C 语言类似的 bug。 • Java、Go 和 Python 依赖垃圾回收器 您可以将共享指针_降级_为 Weak 指针,以便创建之后会被舍弃的循环引用。 • Rc 的计数可确保只要有引用,内含的值就会保持有效。 • Rust 中的“Rc”与 C++ 中的“std::shared_ptr”类似。 • Rc::clone 的成本很低:这个做法会创建指向相同分配的指针,并增加引用计数,而不会产生深 层的克隆,排查代码性能问题时通常可以忽略。 • make_mut 实际上会在必 std::span / &[T],并根据指针和长度进行重新构建,但这 很容易出错,因为每种语言对于空 slice 的表示方式略有不同 – 系统对 std::unique_ptr、std::shared_ptr 和/或 Box 等智能指针提供原 生支持。如果使用手动绑定,则必须传递可兼容 C-ABI 的原始指针,这会增加生命周期和内存 安全风险。 – rust::String 和 CxxString
    0 码力 | 359 页 | 1.33 MB | 10 月前
    3
  • epub文档 FISCO BCOS 2.1.0 中文文档

    BCOS/blob/master/libblockverifier/Precompiled.h#L37], 重载call函数, 在call函数中实现各 个接口的调用行为。 call函数有三个参数: std::shared_ptr _context : 保存交易执行的上下文 bytesConstRef _param : 调用合约的参数信息,本次调用对应合约接口以及 接口的参数可以从_param解析获取 // libblockverifier/Precompiled.h class Precompiled { virtual bytes call(std::shared_ptr _context, bytesConstRef _param, Address const& _origin = Address()) 8dc5e2010a53ed8d3/libblockverifier/Precompiled.h#L37]。 接口名 参数说明 接口说明 virtual bytes call(std::shared_ptr context, bytesConstRef param, Address const& origin = Address()) context为区块
    0 码力 | 1058 页 | 740.85 KB | 1 年前
    3
  • epub文档 FISCO BCOS 2.3.0 中文文档

    class Precompiled { virtual bytes call(std::shared_ptr _context, bytesConstRef _param, call函数有三个参数: std::shared_ptr _context : 保存交易执行的上下文 bytesConstRef 8dc5e2010a53ed8d3/libblockverifier/Precompiled.h#L37]。 接口名 参数说明 接口说明 virtual bytes call(std::shared_ptr context, bytesConstRef param, Address const& origin = Address()) context为区块 ifier/Precompiled.h#L37]. API Parameter description Api description virtual bytes call(std::shared_ptr context, bytesConstRef param, Address const& origin = Address()) context is
    0 码力 | 1227 页 | 10.79 MB | 1 年前
    3
共 45 条
  • 1
  • 2
  • 3
  • 4
  • 5
前往
页
相关搜索词
C++高性性能高性能并行编程优化课件02现代教程高速上手11141720Curve支持S3数据缓存方案CurveFS本地1504ComprehensiveRust简体中文简体中文202412FISCOBCOS2.1文档2.3
IT文库
关于我们 文库协议 联系我们 意见反馈 免责声明
本站文档数据由用户上传或本站整理自互联网,不以营利为目的,供所有人免费下载和学习使用。如侵犯您的权益,请联系我们进行删除。
IT文库 ©1024 - 2025 | 站点地图
Powered By MOREDOC AI v3.3.0-beta.70
  • 关注我们的公众号【刻舟求荐】,给您不一样的精彩
    关注我们的公众号【刻舟求荐】,给您不一样的精彩