积分充值
 首页
前端开发
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文库
  • 综合
  • 文档
  • 文章

无数据

分类

全部后端开发(23)C++(18)Rust(4)数据库(1)系统运维(1)Go(1)MySQL(1)DevOps(1)

语言

全部中文(简体)(24)中文(简体)(1)

格式

全部PPT文档 PPT(25)
 
本次搜索耗时 0.017 秒,为您找到相关结果约 25 个.
  • 全部
  • 后端开发
  • C++
  • Rust
  • 数据库
  • 系统运维
  • Go
  • MySQL
  • DevOps
  • 全部
  • 中文(简体)
  • 中文(简体)
  • 全部
  • PPT文档 PPT
  • 默认排序
  • 最新排序
  • 页数排序
  • 大小排序
  • 全部时间
  • 最近一天
  • 最近一周
  • 最近一个月
  • 最近三个月
  • 最近半年
  • 最近一年
  • ppt文档 C++高性能并行编程与优化 - 课件 - 15 C++ 系列课:字符与字符串

    类特殊的控制字符 (control character) : • 0 表示空字符(‘ \0’ ) • 9 表示 Tab 制表符(‘ \t’ ) • 10 表示换行(‘ \n’ ) • 13 表示回车(‘ \r’ ) • 27 表示 ESC 键(‘ \x1b’ ) • 127 表示 DEL 键(‘ \x7f’ )等 • 0~31 和 127 这些整数,就构成了 ASCII 码中控制字符的部分。 码中控制字符的部分。 关于控制字符的一个冷知识 • 在 Linux 命令行中启动 cat 。 • 试试按 Ctrl+R , Ctrl+E , Ctrl+C 等一系列 组合键,看到出现了什么? • 可以看到显示的字符变成了 ^R ^E ^C 等… … • 这是 Unix 类系统显示控制字符的一种方式 。 • 众所周知,我们常用 Ctrl+C 来发送中断信号 ( SIGINT )强制终止程序,这时常常会看到 )强制终止程序,这时常常会看到 一个 ^C 的字样,就是这样出现的。这里我 们的 cat 程序收到 ^C 以后,就直接终止退 出了。 关于控制字符的一个冷知识 • 除此之外,因为 ^D 是“传输终止符”,还可以在控制 台输入 Ctrl+D 来关闭标准输入流,终止正在读取他 的程序。 • 小彭老师常用 Ctrl+D 来快速关闭一个 shell (和输入 exit 命令的效果一样)。 • 以及按 Ctrl+I 的效果其实和
    0 码力 | 162 页 | 40.20 MB | 1 年前
    3
  • ppt文档 C++高性能并行编程与优化 - 课件 - 02 现代 C++ 入门:RAII 内存管理

    // 拷贝赋值 • 追求性能时推荐用拷贝构造,因为可以避免一次无参构造,拷贝赋值是出于需要临时修改 对象的灵活性需要。 • 这个函数同样可以由 = delete 和 = default 控制是否默认生成。 • 注: return *this 是为了支持连等号 a = b = c; 编译器自动生成的函数:全家桶 • 其实,除了拷贝构造和拷贝赋值,编译器会自动生成的特殊函数还有这些: 请根据你的具体情况,决定要选用哪一种 解决方案。 移交控制权后仍希望访问到 p 指向的对象 • 解决方案 2 中,有时候我们会遇到移交控 制权后,仍希望访问到对象的需求。 • 如果还是用 p 去访问的话,因为被移动构 造函数转移了, p 已经变成空指针,从而 出错。 解决方案:提前获取原始指针 • 最简单的办法是,在移交控制权给 func 前,提前通过 p.get() 获取原始指针: 和 Python 等 GC 语言的引用计数机制很像。但从长远 来看是不行的,因为: 1. shared_ptr 需要维护一个 atomic 的引用计数器, 效率低,需要额外的一块管理内存,访问实际对象 需要二级指针,而且 deleter 使用了类型擦除技术 。 2. 全部用 shared_ptr ,可能出现循环引用之类的问题 ,导致内存泄露,依然需要使用不影响计数的原始 指针或者
    0 码力 | 96 页 | 16.28 MB | 1 年前
    3
  • ppt文档 C++高性能并行编程与优化 - 课件 - 07 深入浅出访存优化

    内部引入了一片极小的存储 器——虽然小,但是读写速度却特别快。这片小而快的 存储器称为缓存( cache )。 • 当 CPU 访问某个地址时,会先查找缓存中是否有对应的 数据。如果没有,则从内存中读取,并存储到缓存中; 如果有,则直接使用缓存中的数据。 • 这样一来,访问的数据量比较小时,就可以自动预先加 载到这个更高效的缓存里,然后再开始做运算,从而避 免从外部内存读写的超高延迟。 缓存的分级结构 回缓存中的数据。如果找不到,则向主内存发送请求,等读 取到该地址的数据,就创建一个新条目。 • 在 x86 架构中每个条目的存储 64 字节的数据,这个条目 又称之为缓存行( cacheline )。 • 当访问 0x0048~0x0050 这 4 个字节时,实际会导致 0x0040~0x0080 的 64 字节数据整个被读取到缓存中。 • 这就是为什么我们喜欢把数据结构的起始地址和大小对齐到 64 如有多级缓存,则一级缓存失效后会丢给二级缓存。 连续访问与跨步访问 • 如果访问数组时,按一定的间距跨步访问,则效率如何? • 从 1 到 16 都是一样快的, 32 开始才按 2 的倍率变慢,为什么? • 因为 CPU 和内存之间隔着缓存,而缓存和内存之间传输数据的最小 单位是缓存行( 64 字节)。 16 个 float 是 64 字节,所以小于 64 字节的跨步访问,都会导致数据全部被读取出来。而超过
    0 码力 | 147 页 | 18.88 MB | 1 年前
    3
  • ppt文档 谈谈MYSQL那点事

    少碎片、支持大文件、能够进行索引压缩 少碎片、支持大文件、能够进行索引压缩 • 二进制层次的文件可以移植 二进制层次的文件可以移植 (Linux (Linux   Windows) Windows) • 访问速度飞快,是所有 访问速度飞快,是所有 MySQL MySQL 文件引擎中速度最快的 文件引擎中速度最快的 • 不支持一些数据库特性,比如 事务、外键约束等 不支持一些数据库特性,比如 事务、外键约束等 • 事务、外键约束等数据库特性 • Rows level lock , Rows level lock , 读写性能都非常优秀 读写性能都非常优秀 • 能够承载大数据量的存储和访问 能够承载大数据量的存储和访问 • 拥有自己独立的缓冲池,能够缓存数据和索引 拥有自己独立的缓冲池,能够缓存数据和索引 MySQL 架构设计—应用架构 强一致性 对读一致性的权衡,如果是对读写实时性要求非常高的话, 设计合理架构,如果 设计合理架构,如果 MySQL MySQL 访问频繁,考虑 访问频繁,考虑 Master/Slave Master/Slave 读写分离;数据库分表、数据库切片(分 读写分离;数据库分表、数据库切片(分 布式),也考虑使用相应缓存服务帮助 布式),也考虑使用相应缓存服务帮助 MySQL MySQL 缓解访问 缓解访问 压力 压力 系统优化 系统优化  配置合理的 配置合理的
    0 码力 | 38 页 | 2.04 MB | 1 年前
    3
  • ppt文档 新一代分布式高性能图数据库的构建 - 沈游人

    同事 / 一致行动 人 / 担保同地址 / 同设备登 陆 /... 已签署 / 过期签署 / 意向签署 /... 已签署 / 过期签署 / 意向签署 /... 董监高 / 就职 / 实际控制人 拥有 / 抵押 / 质 押 股权 / 资管计划 / 资金往来 / 担 保 / 借贷 / 集团 / 控股 / 上下 游 ... 父子 / 组合 / 继承 转账 / 大额转账 / 频繁转 使用图数据库的查询语言进行点边的关联查询,可以快速完成传统数据库难以完成的 多度点边关 联 当前图的典型应用场景 路径识别 群体挖掘 节点识别 相似节点 链接预测 连接强度 一致行动人 同事关系 实际控制人 可能认识的人 上下游 同爱好的人 亲属关系 …  人与人、企业与企业、企业与人之间的 复杂、潜在关系推导和挖掘  为已有的分析模型增加“关系特征”维 度 客户贡献度 客户信用分 内存缓存结构:加速图数据查询 • 由于图数据的查询通常是 IO 密集型,且访问的数据随机又分散,拥有内存缓存能起到很 好的加速效果 • 要想让内存缓存发挥最大的作用,就要能在有限的内存中存下尽量多的图数据 • 例如,对于属性的存储,可以通过自行序列化 / 反序列化大幅节省内存 • 而自定义存储格式往往需要内存的精细操作,由于 Rust 允许在 unsafe 下访问裸指针, 可以实现零开销读取 • 将 Unsafe
    0 码力 | 38 页 | 24.68 MB | 1 年前
    3
  • ppt文档 C++高性能并行编程与优化 - 课件 - 11 现代 CMake 进阶指南

    src 目录下 。 第 2 章:项目配置变量 CMAKE_BUILD_TYPE 构建的类型,调试模式还是发布模式 • CMAKE_BUILD_TYPE 是 CMake 中一个特殊的变量,用于控制构建类型,他的值可以 是: • Debug 调试模式,完全不优化,生成调试信息,方便调试程序 • Release 发布模式,优化程度最高,性能最佳,但是编译比 Debug 慢 • MinSizeRel YES 和 ON 等价, NO 和 OFF 等价。 https://www.cnblogs.com/Braveliu/p/15614013.html 案例:添加一个 BOOL 类型的缓存变量,用于控制要不要启用某特性 CMake 对 BOOL 类型缓存的 set 指令提供了一个简写: option option( 变量名 “描述” 变量值 ) 等价于: set( 变量名 CACHE BOOL s/104060927 环境变量的访问方式: $ENV{xx} • 用 ${xx} 访问的是局部变量,局部变量服从刚刚所说的父子模块传播规则。 • 而还有一种特殊的方式可以访问到系统的环境变量( environment variable ): $ENV{xx} 。 • 比如 $ENV{PATH} 就是获取 PATH 这个环境变量的值。 缓存变量的访问方式: $CACHE{xx} • 此外,还可以用
    0 码力 | 166 页 | 6.54 MB | 1 年前
    3
  • ppt文档 C++高性能并行编程与优化 - 课件 - 06 TBB 开启的并行编程之旅

    运行结果 刚才的 BENCHMARK_MAIN 自动生成了一个 main 函数 ,从而生成一个可执行文件供你运行。运行后会得到测试 的结果打印在终端上。 命令行参数 他还接受一些命令行参数来控制测试的输出格式为 csv 等等,你可以调用 --help 查看更多用法。 CMake 中使用: find_package CMake 中使用:作为子模块 这个什么“勾勾”公司非要默认开启 tests tbb::simple_partitioner 能够按照给定的粒度 大小( grain )将矩阵进行分块。块内部小区 域按照常规的两层循环访问以便矢量化,块外 部大区域则以类似 Z 字型的曲线遍历,这样 能保证每次访问的数据在地址上比较靠近,并 且都是最近访问过的,从而已经在缓存里可以 直接读写,避免了从主内存读写的超高延迟。 • 下次课会进一步深入探讨访存优化,详细剖析 这个案例,那么下周六 • 而 grow_by(n) 则可以一次扩充 n 个元素。 他同样是返回一个迭代器( iterator ),之 后可以通过迭代器的 ++ 运算符依次访问 连续的 n 个元素, * 运算符访问当前指 向的元素。 可安全地被多线程并发访问 • 除了内存不连续、指针和迭代器不失效的 特点, tbb::concurrent_vector 还是一个多 线程安全的容器,能够被多个线程同时并
    0 码力 | 116 页 | 15.85 MB | 1 年前
    3
  • ppt文档 C++高性能并行编程与优化 - 课件 - Zeno 中的现代 C++ 最佳实践

    (dog) 。 • 这时我们可以给 IObjectClone 新增一个模板参数 Base ,其默认值为 IObject 。 • 这样当用户需要的时候就 • 可指定第二个参数 Base , • 从而控制 IObjectClone 的 • 基类,也就相当于自己继 • 承自那个 Base 类了,不 • 指定的话就默认 IObject 。 IObject :一切 Zeno 对象的公共基类 IObjectClone 我们可以定义一个全局的函数表(右图中的 functab ),然后利用小彭老师的静态初始化 大法,把这些函数在 main 之前就插入到全局 的函数表。 • 这样 main 里面就可以仅通过函数名从 functab 访问到他们,从而 catFunc 和 dogFunc 甚至不需要在头文件里声明(只需 要他们的函数签名一样即可放入 function 容 器)。 静态初始化的顺序是符号定义的顺序决定的,若在不同文件则顺序可能打乱
    0 码力 | 54 页 | 3.94 MB | 1 年前
    3
  • ppt文档 C++高性能并行编程与优化 - 课件 - 03 现代 C++ 进阶:模板元编程

    编译慢的原因找到了……因为他们用了大量的模板 。 模板的应用:编译期优化案例 • 在右边这个案例中,我们声明了一个 sumto 函数,作用是求出从 1 到 n 所有 数字的和。 • 用一个 debug 参数控制是否输出调试信 息。 • 但是这样 debug 是运行时判断,这样即 使是 debug 为 false 也会浪费 CPU 时 间。 模板的应用:编译期优化案例(续) • 因此可以把 debug 异常,更加高效,但是要注意安全。 • 请确保在 has_value() 的分支内使用 *ret ,否则就是不安全的。 • 如果 optional 里的类型是结构体,则 也可以用 ret->xxx 来访问该结构体的 属性。 optional : operator bool() 和 has_value() 等价 • 在 if 的条件表达式中,其实可以直接写 if (ret) ,他和 if (ret
    0 码力 | 82 页 | 12.15 MB | 1 年前
    3
  • ppt文档 C++高性能并行编程与优化 - 课件 - 08 CUDA 开启的 GPU 编程

    线程,用于处理大吞吐量的数据。 获取线程编号 • 可以通过 threadIdx.x 获取当前线程的编 号,我们打印一下试试看。 • 这是 CUDA 中的特殊变量之一,只有在 核函数里才可以访问。 • 可以看到线程编号从 0 开始计数,打印出 了 0 , 1 , 2 。这也是我们指定了线程数 量为 3 的缘故。 • 等等,为什么后面有个 .x ?稍后再说明。 获取线程数量 • 还可以用 int 。 • 可以通过 cudaGetErrorName 获取该 enum 的具体名 字。这里显示错误号为 77 ,具体名字是 cudaErrorIllegalAddress 。意思是我们访问了非法的地 址,和 CPU 上的 Segmentation Fault 差不多。 封装好了: helper_cuda.h • 其实 CUDA toolkit 安装时,会默认附带一系列案例代码, 报告出错所在的行号,函数名等,很方便。 堆上分配试试? • 那你可能会想,难道是因为我的 ret 创建 在栈上,所以 GPU 不能访问,才出错的 ? • 于是你试图用 malloc 在堆上分配一个 int 来给 GPU 访问,结果还是失败了。 原因: GPU 使用独立的显存,不能访问 CPU 内存 • 原来, GPU 和 CPU 各自使用着独立的内 存。 CPU 的内存称为主机内存 (host)
    0 码力 | 142 页 | 13.52 MB | 1 年前
    3
共 25 条
  • 1
  • 2
  • 3
前往
页
相关搜索词
C++高性性能高性能并行编程优化课件150207MySQL游人RustCCAtlasGraph11060308
IT文库
关于我们 文库协议 联系我们 意见反馈 免责声明
本站文档数据由用户上传或本站整理自互联网,不以营利为目的,供所有人免费下载和学习使用。如侵犯您的权益,请联系我们进行删除。
IT文库 ©1024 - 2025 | 站点地图
Powered By MOREDOC AI v3.3.0-beta.70
  • 关注我们的公众号【刻舟求荐】,给您不一样的精彩
    关注我们的公众号【刻舟求荐】,给您不一样的精彩