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
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
JAVA 应用与开发 - 集合与映射JAVA 应用与开发 集合与映射 让我们愉快的 Coding 起来吧... ��� �������������� November 4, 2019 ���� �����List����Set�����Map�的������� ���������� ������iterator��Enumeration ��������� API ������的������������ 1 28 ArrayListEnSureCapacitySample.java 10 28 Vector � java.util.Vector ���� List ������的������的�� ��� O 与 ArrayList 的差别 Vector 是同步(线程安全)的,运行效率要低一些,主要用在在多 线程环境中,而 ArrayList 是不同步的,适合在单线程环境中使用。 �������� List 1008 Name: Alice Age:25 21 28 Comparable �� O 对上述程序的几点说明 1. 用户在重写 compareTo() 方法以定制比较逻辑时,需要确保其 与等价性判断方法 equals() 保持一致,即确保条件 “(x.compareTo(y) == 0) == (x.equals(y))”永远成立,否则逻 辑上不合理。所以上例同时重写了 equals()0 码力 | 66 页 | 713.79 KB | 1 年前3
TiDB 原理与实战TiDB 原理与实战 lixia@pingcap.com @紫沐夏_go About me ● 程序媛,TiDB committer, Go 语言狂热粉 ○ 主要研究方向为分布式系统, 坚信分布式系统才是未来 ● 目前在 PingCAP 就职 ○ 15 年中旬加入 PingCAP ○ 主要参与模块为 TiDB 的 online DDL,SQL 优化器,各种必要的功能改 进以及性能提升 ● 20 and age < 30 age > 20 and age < 30 age > 20 and age < 30 Hash join 并行优化,支持 hash join ● 小表放到内存,等值 key 建立哈希表 ● 大表是用 goroutine 分批取值,匹配哈希表 ● 之后会支持 merge sort join 等常用算法 small table big table build hash table join worker join worker join worker hash table output Online DDL 现状,锁表(有些数据支持读操作,但是也以消耗大量内存为代价) ● 架构师们在设计整个系统的时候都会很慎重的考虑表结构 ● DBA 在做此类操作前要做足准备 TiDB解决方案,参考 Google 动态变更 schema 的论文 absent --> delete0 码力 | 23 页 | 496.41 KB | 6 月前3
深度学习与PyTorch入门实战 - 08. 索引与切片索引与切片 主讲人:龙良曲 Indexing ▪ dim 0 first select first/last N select by steps select by specific index … select by mask ▪ .masked_select() select by flatten index 下一课时 Tensor变换 Thank You.0 码力 | 10 页 | 883.44 KB | 1 年前3
Java 应用与开发 - Java 语言基础与流程控制大纲 数据类型 常量和变量 关键字与标识符 运算符与表达式 从键盘获得输入 语句 分支结构 循环结构 Java 应用与开发 Java 语言基础与流程控制 王晓东 wangxiaodong@ouc.edu.cn 中国海洋大学 August 28, 2018 大纲 数据类型 常量和变量 关键字与标识符 运算符与表达式 从键盘获得输入 语句 分支结构 循环结构 参考书目 1. 陈国君等编著 常量和变量 关键字与标识符 运算符与表达式 从键盘获得输入 语句 分支结构 循环结构 学习目标 ▶ Java 语言基础 1. 数据类型 2. 常量和变量 3. 关键字与标识符 4. 运算符与表达式 5. 从键盘输入数据 ▶ 流程控制 1. 语句和复合语句 2. 分支结构(选择结构) 3. 循环结构 4. 跳转语句 大纲 数据类型 常量和变量 关键字与标识符 运算符与表达式 从键盘获得输入 常量和变量 关键字与标识符 运算符与表达式 从键盘获得输入 语句 分支结构 循环结构 大纲 数据类型 常量和变量 关键字与标识符 运算符与表达式 从键盘获得输入 语句 分支结构 循环结构 ���� 数据类型 常量和变量 关键字与标识符 运算符与表达式 从键盘获得输入 语句 分支结构 循环结构 大纲 数据类型 常量和变量 关键字与标识符 运算符与表达式 从键盘获得输入0 码力 | 37 页 | 685.82 KB | 1 年前3
深度学习与PyTorch入门实战 - 34. 动量与lr衰减动量与学习率衰减 主讲人:龙良曲 Tricks ▪ momentum ▪ learning rate decay Momentum https://distill.pub/2017/momentum/ No momentum With appr. momentum momentum Learning rate tunning Learning rate decay Scheme0 码力 | 14 页 | 816.20 KB | 1 年前3
Greenplum上云与优化张广舟(明虚) 阿里云高级专家 Greenplum上云与优化 — ApsaraDB for Greenplum介绍 2016Postgres中国用户大会 目 录 content ApsaraDB for GP的定位 ApsaraDB for GP的内核优化 未来的规划 2016Postgres中国用户大会 ApsaraDB for GP的定位 2016Postgres中国用户大会 2016Postgres中国用户大会 GP vs. RDS? Select count(*) from customer where status = valid group by city 列存与压缩原理举例 ….. ….. Name Id status city 列存块 ….. 列存块 列存 ≈索引 + index only 2016Postgres中国用户大会 GP vs 查看所有连接信息 杀连接 创建和删除插件 2016Postgres中国用户大会 解决OOM问题 实例的OOM有时很频繁,同时OOM很难提前监控 我们的办法 利用外部脚本监控cgroup中的内存统计 发生内存水位较高时,将实例移入公共 cgroup;同时发出cancel query信号给内核 水位下降时移回实例的cgroup 2016Postgres中国用户大会 Linux Box CGroup0 码力 | 26 页 | 1.13 MB | 1 年前3
Vue 2017 现状与展望Vue 2017 现状与展望 尤雨溪 @VueConf Beijing 2017.05.20 起源 Origination First commit 2013.06.27 First appearance of “Vue” 2013.12.07 First public release (0.8) 2014.02.01 2014.11.06 v0.11 Cowboy Bebop Vue.set 或者 this.$set ○ Lazy observation ○ 显式构建响应式对象 ● HTML Modules: 类似单文件组件的新标准(由 Google 起草中) ● 与 Web Components 的兼容0 码力 | 36 页 | 2.00 MB | 1 年前3
共 1000 条
- 1
- 2
- 3
- 4
- 5
- 6
- 100













