 JVM 内存模型JVM 内存模型 Heap Method Area Runtime Constant Pool Thread Thread Thread PC Register JVM Stack Native Method Stack PC Register JVM Stack Native Method Stack PC Register JVM Stack Native Method0 码力 | 1 页 | 48.42 KB | 1 年前3 JVM 内存模型JVM 内存模型 Heap Method Area Runtime Constant Pool Thread Thread Thread PC Register JVM Stack Native Method Stack PC Register JVM Stack Native Method Stack PC Register JVM Stack Native Method0 码力 | 1 页 | 48.42 KB | 1 年前3
 2.1.1 Golang主动式内存缓存的优化探索之路Golang主动式内存缓存的优化探索之路 安晏伯 学而思网校 技术专家 目 录 问题引入 01 难点攻克 02 主动式内存缓存框架 03 总结 04 问题引入 第一部分 为什么能有极致的性能? 01. 如何优化? 解决了哪些技术难题? 主动式内存缓存 如何优化? 极致的性能 除了网络IO,与Redis有什么区别? 复杂的查询怎么办? 02. 传统的Cache很难 支持灵活的信息过滤条件 内存不够用怎么办? 03. 冷热可交换、策略可定制、内存可扩展,多种冷数据淘汰组件,自由组合 存储扩展,冷热数据交换 可自定义冷热数据交换策略 还能提供什么帮助? 04. 降低硬件成本,降低依赖,保证稳定性 同样的性能,需要更少的硬件资源,降低成本 01 核心数据在本地,依赖少,更稳定 02 • 千万级内存对象,GC严重耗时,如何解决? • 复杂的查询场景,内存数据如何高效组织? 复杂的查询场景,内存数据如何高效组织? • 主动式内存缓存,如何保证数据实时性? • 数据太多,内存不够用,如何进行存储扩展? 通过本次分享,可以带来哪些收获? 难点攻克 第二部分 使用内存缓存 数据一致性如何保证? 一致性 01. 缓存如何保证更新,如何与数据库同步 同步、更新  被动方式  缓存过期  定期同步  主动方式  监听数据变化 数据加载,更新 02. 全量数据加载,增量数据监听0 码力 | 48 页 | 6.06 MB | 1 年前3 2.1.1 Golang主动式内存缓存的优化探索之路Golang主动式内存缓存的优化探索之路 安晏伯 学而思网校 技术专家 目 录 问题引入 01 难点攻克 02 主动式内存缓存框架 03 总结 04 问题引入 第一部分 为什么能有极致的性能? 01. 如何优化? 解决了哪些技术难题? 主动式内存缓存 如何优化? 极致的性能 除了网络IO,与Redis有什么区别? 复杂的查询怎么办? 02. 传统的Cache很难 支持灵活的信息过滤条件 内存不够用怎么办? 03. 冷热可交换、策略可定制、内存可扩展,多种冷数据淘汰组件,自由组合 存储扩展,冷热数据交换 可自定义冷热数据交换策略 还能提供什么帮助? 04. 降低硬件成本,降低依赖,保证稳定性 同样的性能,需要更少的硬件资源,降低成本 01 核心数据在本地,依赖少,更稳定 02 • 千万级内存对象,GC严重耗时,如何解决? • 复杂的查询场景,内存数据如何高效组织? 复杂的查询场景,内存数据如何高效组织? • 主动式内存缓存,如何保证数据实时性? • 数据太多,内存不够用,如何进行存储扩展? 通过本次分享,可以带来哪些收获? 难点攻克 第二部分 使用内存缓存 数据一致性如何保证? 一致性 01. 缓存如何保证更新,如何与数据库同步 同步、更新  被动方式  缓存过期  定期同步  主动方式  监听数据变化 数据加载,更新 02. 全量数据加载,增量数据监听0 码力 | 48 页 | 6.06 MB | 1 年前3
 基于静态分析的Rust内存安全缺陷检测研究基于静态分析的Rust内存安全缺陷检测研究 报告人:徐辉 报告日期:2022.11.25 复旦大学 大纲 一、问题背景 二、Rust指针缺陷检测方法 三、实验结论 四、论文发表心得 大纲 一、问题背景 二、Rust指针缺陷检测方法 三、实验结论 四、论文发表心得 Rust语言 ❑ 系统级安全编程语言 ▪ 内存安全 ▪ 并发安全 ▪ 效率 2006年 2011年 Mozilla裁员Servo团队 AWS, Huawei, Google, Microsoft, Mozilla… Rust如何保障内存安全? ❑ 内存安全问题产生的主要原因之一是指针别名导致悬空指针 ▪ 手动释放内存或调用析构函数 ▪ 函数返回时发生的自动析构或内存释放 ❑ Rust设计的目标之一是编译时检查指针别名(共享可变引用) ▪ 但一般意义上的指针分析是NP-hard问题 ▪ 智能指针可行,但作为运行时方案,效率低 Unsafe API call Unsafe API access call Rust实际表现如何? ❑ 调研了2020年12月31日前报告的185个内存安全漏洞[TOSEM'21] ▪ Rust在内存安全防护方面效果不错 ▪ 所有的漏洞(除了1个编译器漏洞)都需要unsafe code ▪ 大部分CVEs都是 API soundness的问题(未在可执行程序中发现)0 码力 | 28 页 | 1.55 MB | 1 年前3 基于静态分析的Rust内存安全缺陷检测研究基于静态分析的Rust内存安全缺陷检测研究 报告人:徐辉 报告日期:2022.11.25 复旦大学 大纲 一、问题背景 二、Rust指针缺陷检测方法 三、实验结论 四、论文发表心得 大纲 一、问题背景 二、Rust指针缺陷检测方法 三、实验结论 四、论文发表心得 Rust语言 ❑ 系统级安全编程语言 ▪ 内存安全 ▪ 并发安全 ▪ 效率 2006年 2011年 Mozilla裁员Servo团队 AWS, Huawei, Google, Microsoft, Mozilla… Rust如何保障内存安全? ❑ 内存安全问题产生的主要原因之一是指针别名导致悬空指针 ▪ 手动释放内存或调用析构函数 ▪ 函数返回时发生的自动析构或内存释放 ❑ Rust设计的目标之一是编译时检查指针别名(共享可变引用) ▪ 但一般意义上的指针分析是NP-hard问题 ▪ 智能指针可行,但作为运行时方案,效率低 Unsafe API call Unsafe API access call Rust实际表现如何? ❑ 调研了2020年12月31日前报告的185个内存安全漏洞[TOSEM'21] ▪ Rust在内存安全防护方面效果不错 ▪ 所有的漏洞(除了1个编译器漏洞)都需要unsafe code ▪ 大部分CVEs都是 API soundness的问题(未在可执行程序中发现)0 码力 | 28 页 | 1.55 MB | 1 年前3
 Java 应用与开发 - Java 内存模型与分配机制大纲 Java 内存模型 Java 程序内存运行分析 Java 内存管理建议 Java 应用与开发 Java 内存模型与分配机制 王晓东 wangxiaodong@ouc.edu.cn 中国海洋大学 September 30, 2018 大纲 Java 内存模型 Java 程序内存运行分析 Java 内存管理建议 学习目标 1. 理解 JVM 内存模型,掌握 JVM 内存构成 2. 理解 程序的运行过程,学会通过调试模式观察内存的 变化 3. 了解 Java 内存管理,认识垃圾回收 4. 建立编程时高效利用内存、避免内存溢出的理念 大纲 Java 内存模型 Java 程序内存运行分析 Java 内存管理建议 大纲 Java 内存模型 Java 程序内存运行分析 Java 内存管理建议 大纲 Java 内存模型 Java 程序内存运行分析 Java 内存管理建议 ���� Java 内存模型 Java 程序内存运行分析 Java 内存管理建议 大纲 Java 内存模型 Java 程序内存运行分析 Java 内存管理建议 Java 虚拟机(Java Virtual Machine, JVM) ▶ Java 程序运行在 JVM 上,JVM 是程序与操作系统之间的桥梁。 ▶ JVM 实现了 Java 的平台无关性。 ▶ JVM 是内存分配的前提。 类装载子系统 Class文件0 码力 | 44 页 | 818.30 KB | 1 年前3 Java 应用与开发 - Java 内存模型与分配机制大纲 Java 内存模型 Java 程序内存运行分析 Java 内存管理建议 Java 应用与开发 Java 内存模型与分配机制 王晓东 wangxiaodong@ouc.edu.cn 中国海洋大学 September 30, 2018 大纲 Java 内存模型 Java 程序内存运行分析 Java 内存管理建议 学习目标 1. 理解 JVM 内存模型,掌握 JVM 内存构成 2. 理解 程序的运行过程,学会通过调试模式观察内存的 变化 3. 了解 Java 内存管理,认识垃圾回收 4. 建立编程时高效利用内存、避免内存溢出的理念 大纲 Java 内存模型 Java 程序内存运行分析 Java 内存管理建议 大纲 Java 内存模型 Java 程序内存运行分析 Java 内存管理建议 大纲 Java 内存模型 Java 程序内存运行分析 Java 内存管理建议 ���� Java 内存模型 Java 程序内存运行分析 Java 内存管理建议 大纲 Java 内存模型 Java 程序内存运行分析 Java 内存管理建议 Java 虚拟机(Java Virtual Machine, JVM) ▶ Java 程序运行在 JVM 上,JVM 是程序与操作系统之间的桥梁。 ▶ JVM 实现了 Java 的平台无关性。 ▶ JVM 是内存分配的前提。 类装载子系统 Class文件0 码力 | 44 页 | 818.30 KB | 1 年前3
 C++高性能并行编程与优化 -  课件 - 02 现代 C++ 入门:RAII 内存管理现代 C++ 入门: RAII 内存管 理 by 彭于斌( github@archibate ) 往期录播: https://space.bilibili.com/263032155 PPT 和代码: https://github.com/parallel101/course 高性能并行编程与优化 - 课程大纲 • 分为前半段和后半段,前半段主要介绍现代 C++ ,后半段主要介绍并行编程与优化。 入门:常用 STL 容器, RAII 内存管理 3.现代 C++ 进阶:模板元编程与函数式编程 4.编译器如何自动优化:从汇编角度看 C++ 5.C++11 起的多线程编程:从 mutex 到无锁并行 6.并行编程常用框架: OpenMP 与 Intel TBB 7.被忽视的访存优化:内存带宽与 cpu 缓存机制 8.GPU 专题: wrap 调度,共享内存, barrier 9.并行算法实战: nv 将多个逻辑上相关的变量包装成一个类 因此 C++ 的 vector 将他俩打包起来,避免程序员犯错 封装:不变性 比如当我要设置数组大小为 4 时,不能只 nv = 4 还要重新分配数组内存,从而修改数组起始地址 v 常遇到:当需要修改一个成员时,其他也成员需要被修改,否则出错 这种情况出现时,就意味着你需要把成员变量的读写封装为成员函数 不变性:请勿滥用封装 • 仅当出现“修改一个成员时,其他也成员要0 码力 | 96 页 | 16.28 MB | 1 年前3 C++高性能并行编程与优化 -  课件 - 02 现代 C++ 入门:RAII 内存管理现代 C++ 入门: RAII 内存管 理 by 彭于斌( github@archibate ) 往期录播: https://space.bilibili.com/263032155 PPT 和代码: https://github.com/parallel101/course 高性能并行编程与优化 - 课程大纲 • 分为前半段和后半段,前半段主要介绍现代 C++ ,后半段主要介绍并行编程与优化。 入门:常用 STL 容器, RAII 内存管理 3.现代 C++ 进阶:模板元编程与函数式编程 4.编译器如何自动优化:从汇编角度看 C++ 5.C++11 起的多线程编程:从 mutex 到无锁并行 6.并行编程常用框架: OpenMP 与 Intel TBB 7.被忽视的访存优化:内存带宽与 cpu 缓存机制 8.GPU 专题: wrap 调度,共享内存, barrier 9.并行算法实战: nv 将多个逻辑上相关的变量包装成一个类 因此 C++ 的 vector 将他俩打包起来,避免程序员犯错 封装:不变性 比如当我要设置数组大小为 4 时,不能只 nv = 4 还要重新分配数组内存,从而修改数组起始地址 v 常遇到:当需要修改一个成员时,其他也成员需要被修改,否则出错 这种情况出现时,就意味着你需要把成员变量的读写封装为成员函数 不变性:请勿滥用封装 • 仅当出现“修改一个成员时,其他也成员要0 码力 | 96 页 | 16.28 MB | 1 年前3
 TiDB v7.1 中文手册· · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · 933 10.2.6 TiDB 磁盘 I/O 过高的处理办法 · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · 936 Prepare 语句的执行计划缓存作为实验特性,以提升在线交易场景的并发处理能力。 在 v7.1.0 中,TiDB 继续增强非 Prepare 语句执行计划,支持缓存更多模式的 SQL。 为了提升内存利用率,TiDB v7.1.0 将非 Prepare 与 Prepare 语句的缓存池合并。你可以通过系统变量tidb_ �→ session_plan_cache_size 设置缓存大小。原有的系 降低使用 Partitioned Raft KV 时 Split 对写 QPS 的影响 #14447 @SpadeA-Tang – 优化使用 Partitioned Raft KV 时 Snapshot 占用的空间 #14581 @bufferflies – 为 TiKV 处理请求的各个阶段提供更详细的时间信息 #12362 @cfzjywxk – 在日志备份中使用 PD 作为元数据存储 #138670 码力 | 4369 页 | 98.92 MB | 1 年前3 TiDB v7.1 中文手册· · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · 933 10.2.6 TiDB 磁盘 I/O 过高的处理办法 · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · 936 Prepare 语句的执行计划缓存作为实验特性,以提升在线交易场景的并发处理能力。 在 v7.1.0 中,TiDB 继续增强非 Prepare 语句执行计划,支持缓存更多模式的 SQL。 为了提升内存利用率,TiDB v7.1.0 将非 Prepare 与 Prepare 语句的缓存池合并。你可以通过系统变量tidb_ �→ session_plan_cache_size 设置缓存大小。原有的系 降低使用 Partitioned Raft KV 时 Split 对写 QPS 的影响 #14447 @SpadeA-Tang – 优化使用 Partitioned Raft KV 时 Snapshot 占用的空间 #14581 @bufferflies – 为 TiKV 处理请求的各个阶段提供更详细的时间信息 #12362 @cfzjywxk – 在日志备份中使用 PD 作为元数据存储 #138670 码力 | 4369 页 | 98.92 MB | 1 年前3
 TiDB v7.6 中文手册· · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · 949 10.2.6 TiDB 磁盘 I/O 过高的处理办法 · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · 952 tidb_server_memory_limit 导致内存长期压力较高时,TiDB CPU 利用率过高的问题 #48741 @XuHuaiyu – 修复 ENUM 类型列作为 join 键时,查询结果错误的问题 #48991 @winoros – 修复当内存使用超限时包含 CTE 的查询非预期卡住的问题 #49096 @AilinKid – 修复 TiDB server 在使用企业插件审计日志时可能占用大量资源的问题 #49273 (WITH RECURSIVE) CTE 的 UPDATE 或 DELETE 语句可能会产生错误结果的问题 #48969 @winoros – 修复包含 IndexHashJoin 算子的查询由于内存超过 tidb_mem_quota_query 而卡住的问题 #49033 @XuHuaiyu – 修 复 在 非 严 格 模 式 下 (sql_mode = ''),INSERT 过 程 中 产0 码力 | 4666 页 | 101.24 MB | 1 年前3 TiDB v7.6 中文手册· · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · 949 10.2.6 TiDB 磁盘 I/O 过高的处理办法 · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · 952 tidb_server_memory_limit 导致内存长期压力较高时,TiDB CPU 利用率过高的问题 #48741 @XuHuaiyu – 修复 ENUM 类型列作为 join 键时,查询结果错误的问题 #48991 @winoros – 修复当内存使用超限时包含 CTE 的查询非预期卡住的问题 #49096 @AilinKid – 修复 TiDB server 在使用企业插件审计日志时可能占用大量资源的问题 #49273 (WITH RECURSIVE) CTE 的 UPDATE 或 DELETE 语句可能会产生错误结果的问题 #48969 @winoros – 修复包含 IndexHashJoin 算子的查询由于内存超过 tidb_mem_quota_query 而卡住的问题 #49033 @XuHuaiyu – 修 复 在 非 严 格 模 式 下 (sql_mode = ''),INSERT 过 程 中 产0 码力 | 4666 页 | 101.24 MB | 1 年前3
 TiDB v8.0 中文手册· · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · 959 10.2.6 TiDB 磁盘 I/O 过高的处理办法 · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · 962 e-从-v800- �→ 版本开始引入">用于处理更大事务的批量 DML 执行方式(实验特性) TiDB v8.0 中文手册· · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · 959 10.2.6 TiDB 磁盘 I/O 过高的处理办法 · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · 962 e-从-v800- �→ 版本开始引入">用于处理更大事务的批量 DML 执行方式(实验特性)- 大批量的 DML 任务,例如大规模的清理任务、连接或聚合,可能会消耗大量内存, �→ 并且在非常大的规模上受到限制。批量 DML ( - tidb_dml_type = "bulk") 是一种新的 �→ DML 类型,用于更高效地处理大批量 DML 任务,同时提供事务保证并减轻- 数据库管理与可观测性 - 支持观测索引使用情况 - 正确的索引设计是提升数据库性能的重要前提。TiDB v8.0.0 引入内存表 - INFORMATION_SCHEMA0 码力 | 4805 页 | 101.28 MB | 1 年前3 TiDB v8.1 中文手册· · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · 943 10.2.6 TiDB 磁盘 I/O 过高的处理办法 · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · 946 版本开始引入">用于处理更大事务的批量 DML 执行方式(实验特性,从 v8.0.0 开始引入) TiDB v8.1 中文手册· · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · 943 10.2.6 TiDB 磁盘 I/O 过高的处理办法 · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · 946 版本开始引入">用于处理更大事务的批量 DML 执行方式(实验特性,从 v8.0.0 开始引入)- 大批量的 DML 任务,例如大规模的清理任务、连接或聚合,可能会消耗大量内存, �→ 并且在非常大的规模上受到限制。批量 DML ( - tidb_dml_type = "bulk") 是一种新的 �→ DML 类型,用于更高效地处理大批量 DML 任务,同时提供事务保证并减轻 缓存系统,为表元数据提供了基于 LRU (Least �→ Recently Used) 算法的缓存策略,优先将最近访问频率较高的表元数据存储在缓存中, �→ 从而减少表数量较多场景下的内存占用。
- 支持在
- auto analyze中配置0 码力 | 4807 页 | 101.31 MB | 1 年前3 TiDB v7.5 中文手册· · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · 937 10.2.6 TiDB 磁盘 I/O 过高的处理办法 · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · 940 target="_blank">分布式执行框架。在 v7.4.0 中,TiDB 以该框架为基础, �→ 引入全局排序,消除了数据 reorg 任务期间临时无序数据导致的不必要的 I/O、CPU 和内存峰值。 �→ 全局排序利用外部对象存储(目前为 Amazon S3)来存储系统作业期间的中间文件, �→ 提高灵活性并降低成本。 TiDB v7.5 中文手册· · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · 937 10.2.6 TiDB 磁盘 I/O 过高的处理办法 · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · 940 target="_blank">分布式执行框架。在 v7.4.0 中,TiDB 以该框架为基础, �→ 引入全局排序,消除了数据 reorg 任务期间临时无序数据导致的不必要的 I/O、CPU 和内存峰值。 �→ 全局排序利用外部对象存储(目前为 Amazon S3)来存储系统作业期间的中间文件, �→ 提高灵活性并降低成本。- ADD INDEX和- IMPORT >- TiDB Dashboard 性能分析支持 TiKV 堆内存分析 - 在之前版本中调查 TiKV OOM 或内存使用高的问题时,往往需要在实例环境下手动运行 - jeprof0 码力 | 4590 页 | 100.91 MB | 1 年前3共 899 条- 1
- 2
- 3
- 4
- 5
- 6
- 90
 














 
 