JVM 内存模型## JVM 内存模型 0 码力 | 1 页 | 48.42 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
Go性能优化概览-曹春晖应用层优化 内存使用优化 CPU 使用优化 阻塞优化 底层优化 GC 优化 标准库优化 runtime 优化 • 越靠近应用层,优化带来的效果越好 • 涉及到底层优化的,大多数情况下还是修改应用代码 ## 第二部分 生产环境的优化 ## 首先,是发现问题 API 压测 全链路压测 进 pprof 寻找(可能的) 故障原因 CPU 用爆了?90%? 内存用爆了?OOM? 排除外部问题,例如依赖的上游服务(包括 DB、redis、MQ)延迟过高,在监控系统中查看 2. CPU 占用过高 -> 看 CPU profile -> 优化占用 CPU 较多的部分逻辑 3. 内存占用过高 -> 看 prometheus,内存 RSS 是多少,goroutine 数量多少,goroutine 栈占用多少 -> 如果 goroutine 不多,那么重点关注 heap profile 过高 https://github.com/glycerine/offheap ·可以将变化较少的结构放在堆外 · 通过 cgo 来管理内存 · 让 GC 发现不了这些对象 ·也就不会扫描了 Off heap 也可以减少 Go 进程的内存占用和内存使 用波动,但要用到 cgo https://dgraph.io/blog/post/manual-memory-management-golang-jemalloc/0 码力 | 40 页 | 8.69 MB | 2 年前3
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提供基于 REDIS的高性能驻内存数据网格(IMDG)为JVM提供基于 REDIS的高性能驻内存数据网格(IMDG) ULTRA-FAST REDIS BASED IN-MEMORY DATA GRID FOR JAVA ’ alt=‘OCR图片’/> Redis客户端 ’ alt=‘OCR图片’/> Redis缓存 业务逻辑代码与数据源关联紧密 业务逻辑可能会有多个数据源 缓存属于附加产物 ’ alt=‘OCR图片’/>0 码力 | 19 页 | 1004.16 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. 并行 return 0; } 比如当我要设置数组大小为 4 时,不能只 nv = 4 还要重新分配数组内存,从而修改数组起始地址 v ## 封装:不变性 常遇到:当需要修改一个成员时,其他也成员需要被修改,否则出错 这种情况出现时,就意味着你需要把成员变量的读写封装为成员函数 ![Image0 码力 | 96 页 | 16.28 MB | 2 年前3
Practical memory pool based allocators for Modern C++0 码力 | 49 页 | 986.95 KB | 1 年前3
What's Eating my RAM?0 码力 | 88 页 | 3.49 MB | 1 年前3
2.1.1Go 在百亿级分布式文件系统的实践GO CN Go在百亿级分布式文件系统的实践 徐桑迪 Juicedata 核心系统工程师 JuiceFS 简介 01 为什么选择 Go 02 基础内存优化 03 深度内存优化 04 内存快照持久化 05 第一部分 JuiceFS 简介 ’ alt=‘OCR图片’/> JuiceFS 简介 为云环境设计的分布式文件系统 兼容POSIX、HDFS和S3协议 支持回收站、目录配额、克隆 单命名空间支持百亿级文件数 alt=‘OCR图片’/> 为什么选择 Go 快速开发 多线(协)程:go 关键字,channel 特性 性能分析:go tool pprof 等 故障分析:详细的 stack trace 编译速度快 内存管理:自带GC ’ alt=‘OCR图片’/> 为什么选择 Go 性能优秀:编译型语言 可移植性好:静态编译(第三方库容易有动态依赖) ’ alt=‘OCR图片’/> 为什么选择 Go 支持多语言 Java:用JNI或JNR加载共享库 C/C++:dlopen 函数加载,或者直接混合编译 Python:ctypes 模块加载共享库 ’ alt=‘OCR图片’/> 第三部分 基础内存优化 ’ alt=‘OCR图片’/> 基础内存优化 用定长 struct 代替 string // old var m map[string]int k := fmt.Sprintf("%d_%d_%d"0 码力 | 26 页 | 894.68 KB | 1 月前3
共 1000 条
- 1
- 2
- 3
- 4
- 5
- 6
- 100













