Java 应用与开发 - Java 内存模型与分配机制Java 内存模型与分配机制 王晓东 wangxiaodongQouc.edu.cn 中国海洋大学 September 30, 2018 Java 内 学习目标 1. 理解 JVM 内存模型,掌握 JVM 内存构成 2. 理解 Java 程序的运行过程,学会通过调 HH 变化 3. 了解 Java 内存管理,认识垃圾回收 4. 建立编程时高效利用内存、避免内存溢上 D 的理 的理 试模式观察内存的 大网 Java 内存模型 Java 程序内存运行分析 Java 内存管理建议 大纲 Java 内存模型 Java 程序内存运行分析 Java 内存管理建议 大网 Java 内存模型 Java 程序内存运行分析 Java 内存管理建议 接下来… Java 内存模型 大网 Java 内存模型 Java 内存管理建议 Java 虚拟机 (Java Virtual Machine, JVM )0 码力 | 44 页 | 818.30 KB | 2 年前3
JVM 内存模型## JVM 内存模型 0 码力 | 1 页 | 48.42 KB | 2 年前3
C++高性能并行编程与优化 - 课件 - 02 现代 C++ 入门:RAII 内存管理入门:RAII 内存管 理 by 彭于斌 (github@archibate) 往期录播:https://space.bilibili.com/263032155 PPT 和代码:https://github.com/parallel101/course ## 高性能并行编程与优化 - 课程大纲 • 分为前半段和后半段,前半段主要介绍现代 C++,后半段主要介绍并行编程与优化。 1. 课程安排与开发环境搭建:cmake 课程安排与开发环境搭建:cmake 与 git 入门 2. 现代 C++ 入门:常用 STL 容器,RAII 内存管理 3. 现代 C++ 进阶:模板元编程与函数式编程 4. 编译器如何自动优化:从汇编角度看 C++ 5. C++11 起的多线程编程:从 mutex 到无锁并行 6. 并行编程常用框架:OpenMP 与 Intel TBB 7. 被忽视的访存优化:内存带宽与 cpu 缓存机制 缓存机制 8. GPU 专题:wrap 调度,共享内存,barrier 9. 并行算法实战:reduce,scan,矩阵乘法等 10. 存储大规模三维数据的关键:稀疏数据结构 11. 物理仿真实战:邻居搜索表实现 pbf 流体求解 12.C++ 在 ZENO 中的工程实践:从 primitive 说起 13.结业典礼:总结所学知识与优秀作业点评 ## 硬件要求: 64 位(32 位时代过去了)0 码力 | 96 页 | 16.28 MB | 2 年前3
Debian GNU/Linux 安装手册
January 8, 2024GNU/Hurd? 1.5 什么是 Debian 安装程序? 1.6 获得 Debian 1.7 获得本文档最新版本 1.8 文档的组织 1.9 欢迎给文档提供帮助 1.10 关于版权与软件协议 2 系统需求 2.1 支持的硬件 2.1.1 支持的体系 2.1.2 三种不同的 ARM 移植 2.1.3 ARM CPU 设计的变化性和支持的复杂性 2.1.4 4 安装介质 2.4.1 CD-ROM/DVD-ROM 2.4.2 网络 2.4.3 硬盘 2.4.4 Un*x 或 GNU 系统 2.4.5 受支持的存储系统 2.5 内存与磁盘空间的需求 3 开始安装 Debian GNU/Linux 之前 3.1 安装概述 3.2 记得备份您所有的数据! 3.3 一些有用的信息 3.3.1 文档 3.3.1 Debian 安装程序 30 6.1 安装程序如何工作 30 6.2 组件介绍 30 6.3 使用单独的组件 31 6.3.1 启动 Debian 安装程序与配置硬件 32 6.3.1.1 检测可用内存/小内存模式 32 6.3.1.2 选择地区选项 32 6.3.1.3 选择键盘 33 6.3.1.4 寻找 Debian 安装程序 ISO 映像 33 6.3.10 码力 | 98 页 | 594.52 KB | 2 年前3
基于静态分析的Rust内存安全缺陷检测研究基于静态分析的Rust内存安全缺陷检测研究 报告人:徐辉 复旦大学 报告日期:2022.11.25 ## 大纲 一、问题背景 二、Rust指针缺陷检测方法 三、实验结论 四、论文发表心得 ## 大纲 一、问题背景 二、Rust指针缺陷检测方法 三、实验结论 四、论文发表心得 ## Rust语言 ## 系统级安全编程语言 ■ 内存安全 ■ 4_5.jpg) AWS, Huawei, Google, Microsoft, Mozilla... ## Rust如何保障内存安全? ☐ 内存安全问题产生的主要原因之一是指针别名导致悬空指针 ■ 手动释放内存或调用析构函数 函数返回时发生的自动析构或内存释放 ☐ Rust设计的目标之一是编译时检查指针别名(共享可变引用) 但一般意义上的指针分析是NP-hard问题 智能指针可行,但作为运行时方案,效率低 9ba55bcfd8da3bffc5dde2647ec86e55/p9_2.jpg) ## Rust实际表现如何? ☐ 调研了2020年12月31日前报告的185个内存安全漏洞[TOSEM'21] ■ Rust在内存安全防护方面效果不错 - 所有的漏洞(除了1个编译器漏洞)都需要unsafe code - 大部分CVEs都是 API soundness的问题(未在可执行程序中发现)0 码力 | 28 页 | 1.55 MB | 2 年前3
2.1.1 Golang主动式内存缓存的优化探索之路Golang主动式内存缓存的优化探索之路 安晏伯 学而思网校 技术专家  问题引入 01 难点攻克 02 主动式内存缓存框架 03 总结 04 ## 第一部分 ## 问题引入 ## 为什么能有极致的性能? 主动式内存缓存 如何优化? - 支持灵活的信息过滤条件  ## 内存不够用怎么办? 存储扩展,冷热数据交换  同样的性能,需要更少的硬件资源,降低成本 02 核心数据在本地,依赖少,更稳定 ## “ 通过本次分享,可以带来哪些收获? • 千万级内存对象,GC严重耗时,如何解决? - 复杂的查询场景,内存数据如何高效组织? • 主动式内存缓存,如何保证数据实时性? - 数据太多,内存不够用,如何进行存储扩展? ## 第二部分 难点攻克 ## “ ## 数据一致性如何保证? ## 一 致性 同步、更新 !0 码力 | 48 页 | 6.06 MB | 2 年前3
为JVM提供基于 REDIS的高性能驻内存数据网格(IMDG)为JVM提供基于 REDIS的高性能驻内存数据网格(IMDG) ULTRA-FAST REDIS BASED IN-MEMORY DATA GRID FOR JAVA ’ alt=‘OCR图片’/> Redis客户端 ’ alt=‘OCR图片’/> Redis缓存 业务逻辑代码与数据源关联紧密 业务逻辑可能会有多个数据源 缓存属于附加产物 ’ alt=‘OCR图片’/> alt=‘OCR图片’/> Redisson缓存 RMapCache 业务逻辑代码与数据源无关 允许多个数据源,不影响业务逻辑 缓存优先设计,代码简单易懂 ’ alt=‘OCR图片’/> Redisson本地缓存 RLocalCachedMap ’ alt=‘OCR图片’/> BOSS级缓存结构 RLocalCachedMapCache ’ alt=‘OCR图片’/> 终极缓存结构 RCluste 可配置的MapWriter Write-through/Write-behind更新策略 MapWriter的数据源可与MapLoader不同 ’ alt=‘OCR图片’/> 缓存推送更新-原理2 本地缓存Write-behind 基于Log原理实现,不受A-B-A影响 Redis操作(1)与缓存推送(2)原子操作 两种推送模式可选:推送更新,推送驱逐 其他特性-本地缓存 支持本地缓存元素过期(TTL)0 码力 | 19 页 | 1004.16 KB | 1 月前3
JAVA 应用与开发 - 集合与映射# JAVA 应用与开发 集合与映射 让我们愉快的 Coding 起来吧... 王晓东 中国海洋大学信息学院计算机系 November 4, 2019  ## 学习目标 ■ 掌握列表(List)、集(Set)、映射(Map)的概念、层次关系 ArrayListEnSureCapacitySample.java ## V ECTOR 类 java.util.Vector 也实现了 List 接口,其描述的也是可变长度的对象数组。 ## 与 ArrayList 的差别 Vector 是同步(线程安全)的,运行效率要低一些,主要用在在多线程环境中,而 ArrayList 是不同步的,适合在单线程环境中使用。常用方法(除实现 List 接口中定义的方法外): 方法以定制比较逻辑时,需要确保其与等价性判断方法 equals() 保持一致,即确保条件 “(x.compareTo(y) == 0) == (x.equals(y))” 永远成立,否则逻辑上不合理。所以上例同时重写了 equals() 方法。 ## COMPARABLE 接口 ## 对上述程序的几点说明 1. 用户在重写 compareTo() 方法以定制比较逻辑时,需要确保其与等价性判断方法 equals()0 码力 | 66 页 | 713.79 KB | 2 年前3
TiDB 原理与实战## TiDB 原理与实战 ## About me ● 程序媛, TiDB committer, Go 语言狂热粉 ☐ 主要研究方向为分布式系统,坚信分布式系统才是未来 ● 目前在 PingCAP 就职 ☐ 15 年中旬加入 PingCAP ☐ 主要参与模块为 TiDB 的 online DDL, SQL 优化器, 各种必要的功能改进以及性能提升 之前在京东就职 ☐ 12 年末入职,学习 nts/9/8/f/6/98f6815719e3ff0dc7d86810198e13e2/p15_2.jpg) ## Hash join ## 并行优化,支持 hash join - 小表放到内存. 等值 key 建立哈希表 ● 大表是用 goroutine 分批取值,匹配哈希表 - 之后会支持 merge sort join 等常用算法 small table ![Image] uments/9/8/f/6/98f6815719e3ff0dc7d86810198e13e2/p16_2.jpg) ## Online DDL 现状,锁表(有些数据支持读操作,但是也以消耗大量内存为代价) - 架构师们在设计整个系统的时候都会很慎重的考虑表结构 • DBA 在做此类操作前要做足准备 TiDB解决方案, 参考 Google 动态变更 schema 的论文 absent -->0 码力 | 23 页 | 496.41 KB | 1 年前3
深度学习与PyTorch入门实战 - 08. 索引与切片## PyTorch ## 索引与切片 主讲人:龙良曲 ## I ndexing - dim 0 first ☐ ☐ ☐ 1 In [130]: 2 a=torch.rand(4,3,28,28) 3 In [131]: a[0].shape 4 Out[131]: torch.Size([3, 28, 28]) 5 6 In [138]: a[0,0].shape 7 Out[138]:0 码力 | 10 页 | 883.44 KB | 2 年前3
共 1000 条
- 1
- 2
- 3
- 4
- 5
- 6
- 100













