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

无数据

分类

全部后端开发(20)C++(15)数据库(5)Rust(5)系统运维(2)MySQL(2)DevOps(2)ClickHouse(2)MongoDB(1)云计算&大数据(1)

语言

全部中文(简体)(22)英语(3)俄语(2)中文(简体)(1)

格式

全部PPT文档 PPT(28)
 
本次搜索耗时 0.019 秒,为您找到相关结果约 28 个.
  • 全部
  • 后端开发
  • C++
  • 数据库
  • Rust
  • 系统运维
  • MySQL
  • DevOps
  • ClickHouse
  • MongoDB
  • 云计算&大数据
  • 全部
  • 中文(简体)
  • 英语
  • 俄语
  • 中文(简体)
  • 全部
  • PPT文档 PPT
  • 默认排序
  • 最新排序
  • 页数排序
  • 大小排序
  • 全部时间
  • 最近一天
  • 最近一周
  • 最近一个月
  • 最近三个月
  • 最近半年
  • 最近一年
  • ppt文档 谈谈MYSQL那点事

    对读一致性的权衡,如果是对读写实时性要求非常高的话, 就将读写都放在 M1 上面, M2 只是作为 standby 。 比如,订单处理流程,那么对读需要强一致性,实时写实 时读,类似种涉及交易的或者动态实时报表统计的都要采 用这种架构模式 弱一致性 如果是弱一致性的话,可以通过在 M2 上面分担一些读压力 和流量,比如一些报表的读取以及静态配置数据的读取模块 都可以放到 M2 上面。比如月统计报表,比如首页推荐商品 16G ,最好本值超 1024M innodb_flush_log_at_trx _commit 1 0 0 代表日志只大约每秒写入日志文件并且日志文件 刷新到磁盘 ; 1 为执行完没执行一条 SQL 马上 commit; 2 代表日志写入日志文件在每次提交 后 , 但是日志文件只有大约每秒才会刷新到磁盘上 . 对速度影响比较大,同时也关系数据完整性 innodb_log_file_size 设计合理的数据表结构:适当的数据冗余 设计合理的数据表结构:适当的数据冗余  对数据表建立合适有效的数据库索引 对数据表建立合适有效的数据库索引  数据查询:编写简洁高效的 数据查询:编写简洁高效的 SQL SQL 语句 语句 应用优化 应用优化 应用优化方式 应用优化方式 应用优化 应用优化 表结构设计原则 表结构设计原则 选择字段的一般原则是保小不保大,能用占用字节 少的字段就不用大字段。比如,主键,强烈建议用
    0 码力 | 38 页 | 2.04 MB | 1 年前
    3
  • ppt文档 Await-Tree Async Rust 可观测性的灵丹妙药 - 赵梓淇

    Async Rust 观测与调试的痛点 Async Rust 回顾 • 特性: Future 灵活的可组合性 • 任意定制 Poll 的执行逻辑 (Join / Select / Timeout) • 动态的调用关系 • 痛点:观测与调试工具无法理解灵活的执行逻辑 • Backtrace 不够直观 ( 调用栈 -> 调用树 ) • Tracing 无法追踪调用关系的变化 Async Rust 观测与调试的痛点 设计原理与实现 2 回顾 Async Rust 的设计与痛点 1 Await-Tree 的 应用与真实案例 3 Await Tree 在 RisingWave 中的应用 • 云原生 SQL 流式数据库 • risingwave.com • GitHub 4.5k Stars • “Materialized View” • 计算:分布式流计算任务,实时增量维护 • 存储: S3 上的
    0 码力 | 37 页 | 8.60 MB | 1 年前
    3
  • ppt文档 C++高性能并行编程与优化 - 课件 - 12 从计算机组成原理看 C 语言指针

    33554432 了。 实验:把 char 数组的首地址,强制转换为 int 指针来访问会怎样? • 大端序的电脑会得到 0x01020304 。 • 小端序的电脑会得到 0x04030201 。 动态数组的分配与释放 如果不是固定长度为 4 的数组呢? • 刚才的 char a[4] ,数组的长度是一个编译期常 量。如果不是常量呢? • 比如 char a[n] ,在 gcc 上居然是可以编译通 是 gcc 特有的函数,微软比较笨,所以不支持。 • 因此栈上动态数组不是标准的 C 语言特 性,是无法跨平台使用的。 • 所以一般认为栈上的东西都是固定长度的 。 • DIDU_KNOW_THAT_MICROPIG_BUYS_GITHUB 使用 malloc 函数:在堆上分配内存,实现动态数组 • 栈上不能动态分配内存,堆上就可以! • char a[4] 可以在编译期确定一片栈上的连 堆上的内存不会,需要手动 free(a) 释放 。 动态数组作为函数参数?不仅要传首地址,还要传数组长度! • 刚才说定长数组(长度是编译期常量,在栈上分 配的)只需一个起始地址就能确定。 • 而动态长度的数组(通过 malloc 在堆上分配 的)就需要起始地址和数组长度两个,才能确定 下来,也就是 char * 和 int 两个。 • 所以要把动态数组的引用传给函数,需要有两个 参数,一个指针加一个长度。
    0 码力 | 128 页 | 2.95 MB | 1 年前
    3
  • ppt文档 C++高性能并行编程与优化 - 课件 - 11 现代 CMake 进阶指南

    CMakeLists.txt 模板 第 3 章:链接库文件 main.cpp 调用 mylib.cpp 里的 say_hello 函数 改进: mylib 作为一个静态库 改进: mylib 作为一个动态库 改进: mylib 作为一个对象库 https://www.scivision.dev/cmake-object-libraries/ 对象库类似于静态库,但不生成 .a 文件,只由 CMake 编译器自作聪明,会自动剔除没有引用符号的那些对 象 对象库可以绕开编译器的不统一:保证不会自动剔除没引用到的对象文件 虽然动态库也可以避免剔除没引用的对象文件,但引入了运行时链接的麻烦 add_library 无参数时,是静态库还是动态库 ? 会根据 BUILD_SHARED_LIBS 这个变量的值决定是动态库还是静态库。 ON 则相当于 SHARED , OFF 则相当于 STATIC 。 如果未指定 BUILD_SHARED_LIBS STATIC 。 因此,如果发现一个项目里的 add_library 都是无参数的,意味着你可以用 : cmake -B build -DBUILD_SHARED_LIBS:BOOL=ON 来让他全部生成为动态库。稍后会详解命令行传递变量的规则。 小技巧:设定一个变量的默认值 要让 BUILD_SHARED_LIBS 默认为 ON ,可以用下图这个方法: 如果该变量没有定义,则设为 ON ,否则保持用户指定的值不变。
    0 码力 | 166 页 | 6.54 MB | 1 年前
    3
  • ppt文档 C++高性能并行编程与优化 - 课件 - 01 学 C++ 从 CMake 学起

    库文件又分为静态库文件和动态库文件。 • 其中静态库相当于直接把代码插入到生成的可执行文件中,会导致体积变大,但是只需要 一个文件即可运行。 • 而动态库则只在生成的可执行文件中生成“插桩”函数,当可执行文件被加载时会读取指定目 录中的 .dll 文件,加载到内存中空闲的位置,并且替换相应的“插桩”指向的地址为加载后的 地址,这个过程称为重定向。这样以后函数被调用就会跳转到动态加载的地址去。 • ,其次是 /usr/lib 等 运行时查找 编译时插入 CMake 中的静态库与动态库 • CMake 除了 add_executable 可以生成可执行文件外,还可以通过 add_library 生成库 文件。 • add_library 的语法与 add_executable 大致相同,除了他需要指定是动态库还是静态库: • add_library(test STATIC source1 libtest.a • add_library(test SHARED source1.cpp source2.cpp) # 生成动态库 libtest.so • 动态库有很多坑,特别是 Windows 环境下,初学者自己创建库时,建议使用静态库。 • 但是他人提供的库,大多是作为动态库的,我们之后会讨论如何使用他人的库。 • 创建库以后,要在某个可执行文件中使用该库,只需要: • target_l
    0 码力 | 32 页 | 11.40 MB | 1 年前
    3
  • ppt文档 C++高性能并行编程与优化 - 课件 - 16 现代 CMake 模块化项目管理指南

    实际的动态库文件位于 /usr/lib/libQt5Core.so 。 find_package 说是找“包 (package)” ,到底是在找什么? • 因此 find_package 并不是直接去找具体的动态库文件和头文件(例如 libQt5Core.so ) 。 • 而是去找包配置文件(例如 Qt5Config.cmake ),这个配置文件里包含了包的具体信息, 包括动态库文件的 译选项等等。而且某些库都 具有多个子动态库,例如 Qt 就有 libQt5Core.so 、 libQt5Widgets.so 、 libQt5Network.so 。因此 CMake 要求所有第三方 库作者统一包装成一个 Qt5Config.cmake 文件包含所有相关信息(类似于 nodejs 的 package.json ),比你单独的一个个去找动态库文件要灵活的多。 • 包配置文件由第三方库的作者( 1/msvc2017_64/include/qt/QtCore/qstring.h (实际的头文件,属于 Qt5::Core ) • D:/Qt5.12.1/msvc2017_64/bin/Qt5Core.dll (实际的动态库文件,对应 Qt5::Core ) • D:/Qt5.12.1/msvc2017_64/lib/Qt5Core.lib (实际的静态库文件,对应 Qt5::Core ) • D:/Qt5.12
    0 码力 | 56 页 | 6.87 MB | 1 年前
    3
  • ppt文档 C++高性能并行编程与优化 - 课件 - 08 CUDA 开启的 GPU 编程

    ,也就是说核函数 可以调用另一个核函数,且其三重尖括号 里的板块数和线程数可以动态指定,无需 先传回到 CPU 再进行调用,这是 CUDA 特有的能力。 常用于这种情况:需要从 GPU 端动态计算出 blockDim 和 gridDim ,而又不希望导回数据到 CPU 导致强制同步影响性能。 这种模式被称为动态并行( dynamic parallelism ), OpenGL 有一 个 kernel 内判断当前 i 是否超过 了 n ,如果超过就要提前退出,防止越界 。 网格跨步循环:应用于线程和板块一起上的情况 • 网格跨步循环实际上本来是这样,利用扁平 化的线程数量和线程编号实现动态大小。 • 同样,无论调用者指定每个板块多少线程 ( blockDim ),总共多少板块( gridDim )。 都能自动根据给定的 n 区间循环,不会越界 ,也不会漏掉几个元素。 • 这样一个 速度就和一级缓存 一样,相对而言低效了。若一级缓存还装不下,那会打翻到所有 SM 共用的二级缓存。 • 此外,如果在线程局部分配一个数组,并通过动态下标访问(例如遍历 BVH 时用到的模 拟栈),那无论如何都是会打翻到一级缓存的,因为寄存器不能动态寻址。 • 对于 Fermi 架构来说,每个线程最多可以有 63 个寄存器(每个有 4 字节)。 https://developer.download
    0 码力 | 142 页 | 13.52 MB | 1 年前
    3
  • ppt文档 C++高性能并行编程与优化 - 课件 - 06 TBB 开启的并行编程之旅

    • 如果预先知道 size 最后会是 n ,则可以 调用 reserve(n) 预分配一段大小为 n 的 内存,从而 capacity 一开始就等于 n 。 这样 push_back 就不需要动态扩容,从 而避免了元素被移动造成指针和迭代器失 效。 不连续的 tbb::concurrent_vector • std::vector 造成指针失效的根本原因在于他 必须保证内存是连续的,从而不得不在扩容 教学目的。 TBB 中其他并发容器 第 7 章:并行筛选 筛选( filter ) 利用 vector 的 push_back 动态追加数据 筛选出所有大于 0 的 sin(i) 值 并行筛选 1 (张心欣犯过的错) 利用多线程安全的 concurrent_vector 动态追加数据 基本没有加速,我猜想 concurrent_vector 内部可能 用了简单粗暴的互斥量,只保证了安全,并不保证高 效 263032155 课件: https://github.com/parallel101/ course 作业: https://github.com/parallel101/ hw06 作业还在准备中,等做完了会在动态中放出!
    0 码力 | 116 页 | 15.85 MB | 1 年前
    3
  • ppt文档 C++高性能并行编程与优化 - 课件 - 15 C++ 系列课:字符与字符串

    char * 类型 传递给其他函数时,其数组的长度无法知晓。为了确切知 道数组在什么地方结束,规定用 ASCII 码中的“空字符”也 就是 0 来表示数组的结尾。这样只需要一个首地址指针就 能表示一个动态长度的数组,高,实在是高。 “0 结尾字符串”知识点应用举例 • 利用 C 语言字符串“以 0 结尾”这个特点,我们可以在一个 本来非 0 的字符处写入 0 ,来提前结束字符串。例如在第 n string 。 字符串胖指针 第 7 章 C 语言 0 结尾字符串 • C 语言为什么喜欢 0 结尾字符串( null-terminated string )呢? • 众所周知,要描述一个动态长度的数组(此处为字符串),需要首地址指针和 数组长度两个参数。 • void cihou_array(char *ptr, size_t len); • 这样好麻烦,明明是一个字符串,却要传两个参数进去!能不能简化? O(n) ,如果需要频繁的查询长度,势必会非常低效。 • 4. 若需要在尾部切片就得修改字符串本身(写入一个 ‘ \0’ ),影响其他弱引 用。 胖指针大法横空出世 • 刚刚说了,要描述一个动态长度的数组(此处为字符串),需要首地址指针和 数组长度两个参数。 • void cihou_array(char *ptr, size_t len); • 可以把这描述同一个东西的两个参数,打包进一个结构体(
    0 码力 | 162 页 | 40.20 MB | 1 年前
    3
  • ppt文档 C++高性能并行编程与优化 - 课件 - 13 C++ STL 容器全解之 vector

    容器:构造函数 • vector 的功能是长度可变的数组,他里面的数据 存储在堆上。 • vector 是一个模板类,第一个模板参数是数组里 元素的类型。 • 例如,声明一个元素是 int 类型的动态数组 a : • vector a; vector 容器:构造函数和 size • vector 可以在构造时指定初始长度。 • explicit vector(size_t n); noexcept; vector 容器: data() 获取首地址指针 • data() 返回的首地址指针,通常配合 size() 返回的数组长度一起使用(见上一课《 C 语言指针》中提到,连续的动态数组只需要 知道首地址和数组长度即可完全确定)。 • 用他来获取一个 C 语言原始指针 int * , 很方便用于调用 C 语言的函数和 API 等 ,同时还能享受到 vector 容器 RAII 容器:生命周期由主对象管理 • C++ 中哪个运算符是最强的?我觉得是 } • 因为 } 标志着一个语句块的结束,在这里,他 会调用所有身处其中的对象的解构函数。比如 这里的 vector ,他的解构函数会释放动态数组 的内存(即自动 delete )。 • vector 会在退出作用域时释放内存,这时候所 有指向其中元素的指针,包括 data() 都会失效。 因此如果你是在语句块内获取的 data()
    0 码力 | 90 页 | 4.93 MB | 1 年前
    3
共 28 条
  • 1
  • 2
  • 3
前往
页
相关搜索词
MySQL赵梓Await-TreeRustC++高性性能高性能并行编程优化课件1211011608061513
IT文库
关于我们 文库协议 联系我们 意见反馈 免责声明
本站文档数据由用户上传或本站整理自互联网,不以营利为目的,供所有人免费下载和学习使用。如侵犯您的权益,请联系我们进行删除。
IT文库 ©1024 - 2025 | 站点地图
Powered By MOREDOC AI v3.3.0-beta.70
  • 关注我们的公众号【刻舟求荐】,给您不一样的精彩
    关注我们的公众号【刻舟求荐】,给您不一样的精彩