生 产 环 境 下 的 Java 排 错 调 优 @ 施 懿 民

Similar documents
《C语言基础入门》课程教学大纲

I

说 明 为 了 反 映 教 运 行 的 基 本 状 态, 为 校 和 院 制 定 相 关 政 策 和 进 行 教 建 设 与 改 革 提 供 据 依 据, 校 从 程 资 源 ( 开 类 别 开 量 规 模 ) 教 师 结 构 程 考 核 等 维 度, 对 2015 年 春 季 期 教 运 行 基

第2章 数据类型、常量与变量

2 熟 悉 Visual Basic 的 集 成 开 发 环 境 3 了 解 可 视 化 面 向 对 象 编 程 事 件 驱 动 交 互 式 开 发 等 基 本 概 念 4 了 解 Visual Basic 的 特 点 环 境 要 求 与 安 装 方 法 1 Visual Basic 开 发 应 用

何 秋 琳 张 立 春 视 觉 学 习 研 究 进 展 视 觉 注 意 视 觉 感 知

国债回购交易业务指引

目 录 一 系 统 访 问... 1 二 门 户 首 页 申 报 用 户 审 核 用 户... 2 三 系 统 登 录 用 户 名 密 码 登 录 新 用 户 注 册 用 户 登 录 已 注 册 用

 编号:

目 录 关 于 图 标... 3 登 陆 主 界 面... 3 工 单 管 理... 5 工 单 列 表... 5 搜 索 工 单... 5 工 单 详 情... 6 创 建 工 单... 9 设 备 管 理 巡 检 计 划 查 询 详 情 销 售 管

修改版-操作手册.doc

云信Linux SSH认证代理用户手册

( ) 信 号 与 系 统 Ⅰ 学 科 基 础 必 修 课 教 周 2016 年 06 月 13 日 (08:00-09:35) ( )

评 委 : 李 炎 斌 - 个 人 技 术 标 资 信 标 初 步 审 查 明 细 表 序 号 投 标 单 位 投 标 函 未 按 招 标 文 件 规 定 填 写 漏 填 或 内 容 填 写 错 误 的 ; 不 同 投 标 人 的 投 标 文 件 由 同 一 台 电 脑 或 同 一 家 投 标 单

正 规 培 训 达 规 定 标 准 学 时 数, 并 取 得 结 业 证 书 二 级 可 编 程 师 ( 具 备 以 下 条 件 之 一 者 ) (1) 连 续 从 事 本 职 业 工 作 13 年 以 上 (2) 取 得 本 职 业 三 级 职 业 资 格 证 书 后, 连 续 从 事 本 职 业

<4D F736F F D20BFC9B1E0B3CCD0F2BFD8D6C6CFB5CDB3C9E8BCC6CAA6B9FABCD2D6B0D2B5B1EAD7BC2E646F63>


目 录 第 一 章 博 星 卓 越 电 子 商 务 营 销 策 划 实 践 平 台 硬 件 使 用 介 绍... 3 第 二 章 博 星 卓 越 电 子 商 务 营 销 策 划 实 践 平 台 管 理 员 端 功 能 使 用 介 绍 系 统 管 理 员 登 陆 班

Microsoft Word - 文件汇编.doc

第 一 部 分 MagiCAD for Revit 安 装 流 程

评 委 : 徐 岩 宇 - 个 人 技 术 标 资 信 标 初 步 审 查 明 细 表 序 号 投 标 单 位 投 标 函 未 按 招 标 文 件 规 定 填 写 漏 填 或 内 容 填 写 错 误 的 ; 不 同 投 标 人 的 投 标 文 件 由 同 一 台 电 脑 或 同 一 家 投 标 单

登录、注册功能的测试用例设计.doc

采 取 行 动 的 机 会 90% 开 拓 成 功 的 道 路 2

电信系教学大纲的基本规范

乐视云视频发行平台 操作手册 V1.1

18 上 报 该 学 期 新 生 数 据 至 阳 光 平 台 第 一 学 期 第 四 周 至 第 六 周 19 督 促 学 习 中 心 提 交 新 增 专 业 申 请 第 一 学 期 第 四 周 至 第 八 周 20 编 制 全 国 网 络 统 考 十 二 月 批 次 考 前 模 拟 题 第 一 学

<4D F736F F D C3E6CFF2B6D4CFF3A3A8B5DAC8FDD5C220C0E0CCD8D0D4A3A92E646F63>

教师上报成绩流程图

深圳市新亚电子制程股份有限公司

i 1) 系 统 运 作 前 设 定 *1. [2.1 网 页 主 机 名 称 设 定 ] -- 设 定 校 务 系 统 的 主 机 IP 地 址, 以 供 其 他 个 人 电 脑 连 接 及 使 用 该 系 统 *2. [2.3.1 输 入 / 修 改 学 校 资 料 ] -- 输 入 系 统 使

定 位 和 描 述 : 程 序 设 计 / 办 公 软 件 高 级 应 用 级 考 核 内 容 包 括 计 算 机 语 言 与 基 础 程 序 设 计 能 力, 要 求 参 试 者 掌 握 一 门 计 算 机 语 言, 可 选 类 别 有 高 级 语 言 程 序 设 计 类 数 据 库 编 程 类

自 服 务 按 钮 无 法 访 问 新 系 统 的 自 服 务 页 面 因 此 建 议 用 户 从 信 网 中 心 ( 主 页, 右 下 角 位 置 的 常 用 下 载, 或 校 园 网 用 户 自 服 务 ( 首 页

金 不 少 于 800 万 元, 净 资 产 不 少 于 960 万 元 ; (3) 近 五 年 独 立 承 担 过 单 项 合 同 额 不 少 于 1000 万 元 的 智 能 化 工 程 ( 设 计 或 施 工 或 设 计 施 工 一 体 ) 不 少 于 2 项 ; (4) 近 三 年 每 年

一 开 放 性 的 政 策 与 法 规 二 两 岸 共 同 的 文 化 传 承 三 两 岸 高 校 各 自 具 有 专 业 优 势 远 见 杂 志 年 月 日

<433A5C446F63756D656E E E67735C41646D696E F725CD7C0C3E65CC2DBCEC4CFB5CDB3CAB9D3C3D6B8C4CFA3A8BCF2BBAFA3A95CCAB9D3C3D6B8C4CF31302D31392E646F63>

全国艺术科学规划项目

4 进 入 交 互 区 设 置 的 组 件 管 理, 在 组 件 管 理 中, 教 师 可 以 选 择 课 程 空 间 中 的 所 有 组 件, 并 通 过 点 击 启 用 或 不 启 用 选 定 组 件 在 课 程 空 间 中 的 显 示 5 进 入 工 作 室 管 理 的 工 作 室 首 页,

(Microsoft Word - NCRE\314\345\317\265\265\367\325\37313\324\27221\272\3051.doc)

Template BR_Rec_2005.dot

目 录 页 1. 欢 迎 使 用 网 上 预 约 面 谈 访 问 系 统 新 用 户 新 用 户 登 入 帐 户 程 序 启 动 网 上 预 约 面 谈 访 问 帐 户 核 对 帐 户 的 地 址 资 料

标题

Microsoft Word - 第3章.doc

中 国 软 科 学 年 第 期!!!

超 级 玛 丽 JAVA 小 游 戏 测 试 报 告 1. 导 言 1.1 编 写 目 的 该 文 档 的 目 的 是 描 述 超 级 玛 丽 JAVA 小 游 戏 的 系 统 测 试 的 总 结 报 告, 其 主 要 内 容 包 括 : 系 统 环 境 的 介 绍 功 能 的 实 现 的 测 试

第3章 创建数据库

火车浏览器脚本制作教程

生产支援功能 使用说明书(IP-110 篇)

工 程 造 价 咨 询 企 业 管 理 系 统 操 作 手 册 目 录 1 造 价 企 业 登 录 企 业 基 本 信 息 查 看 企 业 人 员 信 息 查 看 企 业 基 本 信 息 操 作 企 业 简 介 企 业 章

,,,,, :,, (.,, );, (, : ), (.., ;. &., ;.. &.., ;, ;, ),,,,,,, ( ) ( ),,,,.,,,,,, : ;, ;,.,,,,, (., : - ),,,, ( ),,,, (, : ),, :,

世华财讯模拟操作手册

( 二 ) 现 行 统 一 高 考 制 度 不 利 于 培 养 人 的 创 新 精 神,,,,,,,,,,,,, [ ],,,,,,,,,,, :, ;,,,,,,? ( 三 ) 现 行 统 一 高 考 制 度 不 利 于 全 体 学 生 都 获 得 全 面 发 展,, [ ],,,,,,,,,,,

4.3.3 while 语 句 用 于 无 限 循 环 当 while 语 句 的 表 达 式 永 远 不 会 为 布 尔 假 时, 循 环 将 永 远 不 会 结 束, 形 成 无 限 循 环, 也 称 死 循 环 使 用 while 语 句 构 成 无 限 循 环 的 格 式 通 常

国家职业标准:网络课件设计师

全国建筑市场注册执业人员不良行为记录认定标准(试行).doc

<443A5C6D B5C30312EB9A4D7F7CEC4B5B55C30322EBACFCDACCEC4B5B55C C30342EC8CBC9E7CCFC5C31332ECFEEC4BFC5E0D1B55C E30385C322EB2D9D7F7CAD6B2E12E646F63>

Microsoft Word - Disclose.doc

3 月 30 日 在 中 国 证 券 报 上 海 证 券 报 证 券 时 报 证 券 日 报 和 上 海 证 券 交 易 所 网 站 上 发 出 召 开 本 次 股 东 大 会 公 告, 该 公 告 中 载 明 了 召 开 股 东 大 会 的 日 期 网 络 投 票 的 方 式 时 间 以 及 审

珠江钢琴股东大会

2. 本 次 修 改 后, 投 资 者 申 购 新 股 的 持 有 市 值 要 求 市 值 计 算 规 则 及 证 券 账 户 使 用 的 相 关 规 定 是 否 发 生 了 变 化? 答 : 未 发 生 变 化 投 资 者 申 购 新 股 的 持 有 市 值 是 指, 以 投 资 者 为 单 位

证券代码: 证券简称:长城电脑 公告编号:

导 数 和 微 分 的 概 念 导 数 的 几 何 意 义 和 物 理 意 义 函 数 的 可 导 性 与 连 续 性 之 间 的 关 系 平 面 曲 线 的 切 线 和 法 线 导 数 和 微 分 的 四 则 运 算 基 本 初 等 函 数 的 导 数 复 合 函 数 反 函 数 隐 函 数 以

变 量 的 主 要 作 用 是 存 取 数 据 提 供 存 放 信 息 的 容 器 对 于 变 量 必 须 明 确 变 量 的 命 名 变 量 的 类 型 变 量 的 声 明 及 其 变 量 的 作 用 域 JavaScript 是 一 种 弱 类 型 语 言, 也 就 是 说, 在 声 明 变 量

<4D F736F F D C4EAB9A4B3CCCBB6CABFCAFDD1A7D7A8D2B5BFCEBFBCCAD4B4F3B8D9D3EBD2AAC7F3>

目 录 第 一 章 行 政 办 公 介 绍 行 政 办 公 的 作 用... 4 第 二 章 行 政 办 公 使 用 说 明 会 议 管 理 会 议 管 理 概 述 如 何 设 置 会 议 室 如

马 克 思 主 义 公 正 观 的 基 本 向 度 及 方 法 论 原 则!! # #

第 9 章 如 果 打 印 机 通 过 FireWire 连 接, 则 HP 建 议 使 用 FireWire 模 块 添 加 打 印 机, 以 充 分 利 用 FireWire 打 印 的 各 项 功 能, 并 且 仅 使 用 IP over Firewire 访 问 打 印 机 的 内 嵌 式

Microsoft Word - 第7章 图表反转形态.doc

白皮书

操作手册

一、资质申请

联想电子订单操作指南

附 件 : 上 海 市 建 筑 施 工 企 业 施 工 现 场 项 目 管 理 机 构 关 键 岗 位 人 员 配 备 指 南 二 一 四 年 九 月 十 一 日 2

引言

全国教师资格认定管理信息系统

ICS 35

用节点法和网孔法进行电路分析

龚 亚 夫 在 重 新 思 考 基 础 教 育 英 语 教 学 的 理 念 一 文 中 援 引 的 观 点 认 为 当 跳 出 本 族 语 主 义 的 思 维 定 式 后 需 要 重 新 思 考 许 多 相 连 带 的 问 题 比 如 许 多 发 音 的 细 微 区 别 并 不 影 响 理 解 和

·岗位设置管理流程

RG-SU V4.44使用说明书.doc

一 公 共 卫 生 硕 士 专 业 学 位 论 文 的 概 述 学 位 论 文 是 对 研 究 生 进 行 科 学 研 究 或 承 担 专 门 技 术 工 作 的 全 面 训 练, 是 培 养 研 究 生 创 新 能 力, 综 合 运 用 所 学 知 识 发 现 问 题, 分 析 问 题 和 解 决

上海证券交易所会议纪要

第 四 条 建 设 单 位 对 可 能 产 生 职 业 病 危 害 的 建 设 项 目, 应 当 依 照 本 办 法 向 安 全 生 产 监 督 管 理 部 门 申 请 职 业 卫 生 三 同 时 的 备 案 审 核 审 查 和 竣 工 验 收 建 设 项 目 职 业 卫 生 三 同 时 工 作 可

中 日 信 息 化 的 比 较 与 合 作 一 中 日 信 息 化 的 规 模 比 较

第 期 李 伟 等 用 方 法 对 中 国 历 史 气 温 数 据 插 值 可 行 性 讨 论


øÕªß∂À≤Ÿ◊˜ ÷≤·

徐天宏:《基因天堂》.doc

现 场 会 议 时 间 为 :2016 年 5 月 19 日 网 络 投 票 时 间 为 :2016 年 5 月 18 日 年 5 月 19 日 其 中 通 过 深 圳 证 券 交 易 所 交 易 系 统 进 行 网 络 投 票 的 时 间 为 2016 年 5 月 19 日 9:30-


2016 年 荔 湾 区 财 政 核 定 支 出 汇 总 表 表 二 单 位 名 称 : 广 州 文 化 公 园 基 本 支 出 项 目 支 出 科 目 编 码 预 算 科 目 名 称 一 般 公 共 预 算 5, , , , ,

Cybozu Garoon 3 管理员手册

1 系统概述

目 录 一 激 活 账 号... 2 二 忘 记 密 码 后 如 何 找 回 密 码?... 3 三 如 何 管 理 学 校 信 息 及 球 队 学 生 教 师 等 信 息... 6 四 如 何 发 布 本 校 校 园 文 化? 五 如 何 向 教 师 发 送 通 知? 六

济南有人物联网技术有限公司

类 似 地, 又 可 定 义 变 下 限 的 定 积 分 : ( ). 与 ψ 统 称 为 变 限 积 分. f ( ) d f ( t) dt,, 注 在 变 限 积 分 (1) 与 () 中, 不 可 再 把 积 分 变 量 写 成 的 形 式 ( 例 如 ) 以 免 与 积 分 上 下 限 的

目 录 版 本 更 新 说 明 导 读 读 者 对 象 手 册 内 容 简 介 软 件 简 介 基 本 术 语 技 术 支 持 基 本 流 程 操 作 步 骤... 8

学 年 第 二 学 期 集 中 考 试 安 排 (18 周 ) 考 试 日 期 :6 月 27 日 星 期 一 8:10-9:50 第 二 公 共 教 学 楼 A 区 A 高 等 数 学 ( 理 二 2) 复 材 材 料 科 学 与 工 程

系统设计文档_样稿管理模块 V1.1_.doc

抗 战 时 期 国 民 政 府 的 银 行 监 理 体 制 探 析 % # % % % ) % % # # + #, ) +, % % % % % % % %

业务方案篇

Transcription:

开 源 力 量 公 开 课 第 1 期 : 生 产 环 境 下 的 Java 排 错 调 优 2012 年 12 月 25 日 18:30-21:30 http://www.osforce.cn

生 产 环 境 下 的 Java 排 错 调 优 @ 施 懿 民

远 程 调 试

远 程 调 试 架 构 Java 平 台 调 试 器 架 构 组 件 被 调 程 序 -----( 调 试 器 接 口 / -------------- / VM -------------- <---- JVMTI Java 虚 拟 机 工 具 接 口 \ 后 台 \ -------------- / 通 信 渠 道 --( <------------ JDWP Java 调 试 传 输 协 议 \ / -------------- / 前 台 调 试 器 -----( -------------- <---- JDI Java 调 试 接 口 \ UI \ -------------- 第 4 页

远 程 调 试 原 理 通 过 客 户 机 - 服 务 器 架 构, 可 以 在 本 地 调 试 Java 程 序, 也 可 以 通 过 网 络 进 行 远 程 调 试, JPDA 规 范 中 的 两 个 术 语 : 连 接 器 和 传 输 连 接 器 是 一 个 JDI 抽 象, 用 来 在 调 试 器 应 用 程 序 和 目 标 VM 之 间 建 立 连 接 传 输 定 义 应 用 程 序 如 何 进 行 访 问, 以 及 数 据 如 何 在 前 端 和 后 端 之 间 传 输 连 接 器 映 射 到 可 用 的 传 输 类 型 和 连 接 模 式 在 Sun 的 JPDA 参 考 实 现 中, 为 Microsoft Windows 提 供 了 两 个 传 输 机 制 : 套 接 字 传 输 和 共 享 内 存 传 输 可 用 的 连 接 器 : 连 接 套 接 字 连 接 器 连 接 共 享 内 存 连 接 器 监 听 套 接 字 连 接 器 监 听 共 享 内 存 连 接 器 启 动 命 令 行 连 接 器 第 5 页

远 程 调 试 命 令 参 数 -Xdebug: 启 用 调 试 特 性 -Xrunjdwp:<sub-options> : 在 目 标 VM 中 加 载 JDWP 实 现 它 通 过 传 输 和 JDWP 协 议 与 独 立 的 调 试 器 应 用 程 序 通 信 下 面 介 绍 一 些 特 定 的 子 选 项 从 Java V5 开 始, 您 可 以 使 用 -agentlib:jdwp 选 项, 而 不 是 -Xdebug 和 - Xrunjdwp 但 如 果 连 接 到 V5 以 前 的 VM, 只 能 选 择 -Xdebug 和 -Xrunjdwp -Xrunjdwp 子 选 项 transport: 这 里 通 常 使 用 套 接 字 传 输 但 是 在 Windows 平 台 上 也 可 以 使 用 共 享 内 存 传 输 Server: 如 果 值 为 y, 目 标 应 用 程 序 监 听 将 要 连 接 的 调 试 器 应 用 程 序 否 则, 它 将 连 接 到 特 定 地 址 上 的 调 试 器 应 用 程 序 address: 这 是 连 接 的 传 输 地 址 如 果 服 务 器 为 n, 将 尝 试 连 接 到 该 地 址 上 的 调 试 器 应 用 程 序 否 则, 将 在 这 个 端 口 监 听 连 接 suspend: 如 果 值 为 y, 目 标 VM 将 暂 停, 直 到 调 试 器 应 用 程 序 进 行 连 接 第 6 页

1 被 调 试 程 序 当 作 调 试 服 务 器 -Xdebug -Xrunjdwp:transport=dt_socket,server=y,address=8765 2 被 调 程 序 当 作 调 试 客 户 端 -Xdebug -Xrunjdwp:transport=dt_socket,address=127.0.0.1:8000 演 示 设 置 远 程 调 试 第 7 页

断 点 的 实 现 原 理 断 点 (Break Point) 可 以 说 是 调 试 器 的 关 键 技 术, 需 要 软 件 和 硬 件 的 协 作 才 能 实 现 一 般 断 点 的 实 现 方 式 有 下 面 几 种 : 1. 通 过 特 定 的 指 令 通 知 中 央 处 理 器 (CPU) 来 中 断 程 序 的 执 行 2. 通 过 设 置 特 定 的 寄 存 器 来 通 知 中 央 处 理 器 中 断 程 序 的 执 行 3. 通 过 强 制 处 理 器 触 发 异 常 来 中 断 程 序 执 行 并 将 控 制 权 转 交 给 调 试 器 在 Intel 兼 容 的 处 理 器 架 构 上, 一 般 调 试 器 是 通 过 在 进 程 中 特 定 的 位 置 插 入 INT 3 指 令 来 实 现 断 点 的 调 试 器 提 供 的 单 步 执 行, 单 步 跳 过 执 行 以 及 跳 出 函 数 等 功 能, 都 是 断 点 的 变 种 第 8 页

1 在 C 程 序 中 嵌 入 断 点 演 示 第 9 页

特 殊 断 点 除 了 简 单 的 每 次 执 行 到 断 点 位 置 中 断 程 序 执 行 这 一 种 方 式, 调 试 器 一 般 都 提 供 了 如 下 几 种 断 点 : 1. 条 件 断 点 可 以 指 定 触 发 断 点 的 条 件, 避 免 每 次 重 复 触 发 断 点 降 低 调 试 工 作 效 率 2. 监 视 断 点 可 以 在 访 问 数 据 的 时 候, 中 断 程 序 的 执 行 3. 函 数 断 点 可 以 在 执 行 函 数 前 或 者 退 出 函 数 前 中 断 程 序 的 执 行 4. 异 常 断 点 当 程 序 发 生 指 定 异 常 的 时 候, 中 断 程 序 的 执 行, 第 一 时 间 发 现 问 题 所 在 5. 类 型 断 点 当 程 序 试 图 加 载 某 个 类 型 的 时 候, 中 断 程 序 的 执 行 第 10 页

1 禁 用 所 有 的 断 点 2 设 置 条 件 断 点 3 监 视 断 点 4 异 常 断 点 5 函 数 断 点 6 在 类 型 加 载 的 时 候 中 断 演 示 第 11 页

1 在 堆 栈 的 任 意 位 置 重 新 执 行 语 句 2 在 程 序 启 动 时 进 行 调 试 3 使 用 变 量 窗 口 的 逻 辑 视 图 4 单 步 过 滤 调 试 5 计 算 表 达 式 演 示 Eclipse 其 他 调 试 技 巧 第 12 页

1 使 用 jdb 调 试 java 程 序 演 示 第 13 页

在 Emacs 里 运 行 JDB 由 于 直 接 使 用 JDB 调 试 时, 浏 览 源 代 码 时 很 不 方 便, 如 果 机 器 上 安 装 了 emacs, 可 以 直 接 在 emacs 里 启 动 JDB, 获 取 跟 eclipse 相 近 的 源 代 码 级 别 的 调 试 体 验 在 emacs 里 运 行 JDB 的 方 法 : 在 emacs 里 按 下 ALT+X 键, 在 提 示 符 后 面 输 入 JDB, 敲 击 回 车 接 着 再 输 入 JDB 的 启 动 参 数 按 下 CTRL + X,2 键, 将 emacs 分 屏 再 按 CTRL + X, B 键, 将 其 中 一 个 屏 幕 显 示 源 代 码 按 CTRL + X, O 键, 再 两 个 屏 幕 间 切 换 在 JDB 的 那 个 窗 口 里 输 入 正 常 的 调 试 命 令 第 14 页

JAVA 内 存 调 优

概 述 Java 虽 然 有 垃 圾 回 收 机 制, 但 是 程 序 编 写 不 慎, 还 是 会 发 生 内 存 泄 露 导 致 OutOfMemoryError 的 发 生 本 节 课 讲 解 了 GC 的 机 制, 以 及 JDK 自 带 的 HPROF 工 具 以 分 析 内 存 问 题 第 16 页

Java GC 简 介 所 有 Java 对 象 都 是 分 配 在 Java 堆 上 面 的 ; Java 上 使 用 垃 圾 回 收 机 制 回 收 没 有 引 用 到 的 对 象 ; Java 虚 拟 机 有 专 门 的 GC 线 程 用 来 执 行 垃 圾 回 收 ; 当 GC 线 程 从 内 存 删 除 一 个 对 象 时, 首 先 会 调 用 对 象 的 finalize 函 数, 在 这 个 函 数 里 可 以 执 行 自 定 义 的 释 放 资 源 操 作 ; Java 程 序 自 身 无 法 强 制 启 动 GC, 即 使 使 用 System.gc() 和 Runtime.gc() 这 样 的 函 数, 也 只 是 递 交 一 个 GC 请 求 给 GC 线 程 ; 当 无 法 在 Java 内 存 堆 (Java heap) 上 创 建 对 象 时,Java 虚 拟 机 会 抛 出 OutOfMemoryError 对 象 没 有 被 其 他 对 象 引 用, 是 指 从 GC Root 开 始 遍 历, 无 法 遍 历 到 的 对 象,GC Root 包 括 : Class 系 统 里 加 载 的 类, 这 些 类 不 会 被 卸 载, 类 里 的 静 态 变 量 可 能 会 引 用 其 它 Java 对 象 Thread 正 在 运 行 的 线 程 堆 栈 上 的 局 部 变 量 堆 栈 上 的 函 数 还 要 运 行, 因 此 他 们 引 用 到 的 对 象 都 是 有 用 的 JNI 参 数 和 局 部 变 量 锁 (Monitor) - 用 于 线 程 同 步 第 17 页

Java GC 堆 结 构 Java 堆 分 成 3 个 部 分, 或 称 作 届 (generation), 分 别 是 Young(New) generation, Tenured(Old) generation,perm Area of heap 而 New generation 又 细 分 成 Eden space, Survivor 1 和 Survivor 2 新 的 对 象 总 是 先 在 Eden space 上 创 建, 经 过 minor GC 后, 剩 余 的 会 挪 到 Survivor 1, 接 着 就 是 Survivor 2 当 执 行 过 Major GC 后, 对 象 会 被 挪 到 Old generation 中 Perm area 主 要 是 用 来 保 存 Java 类 型 以 及 函 数 的 元 数 据 信 息, 有 的 内 在 化 (internalization) 的 字 符 串 也 会 放 在 里 面 第 18 页

Java GC 器 虚 拟 机 提 供 了 好 几 个 GC 收 集 器,Java 5 在 Serial GC 之 外, 还 添 加 了 几 个 GC 收 集 器 : Serial GC: 只 使 用 一 个 GC 线 程 执 行 垃 圾 回 收 工 作, 在 执 行 GC 时, 其 他 线 程 都 会 暂 停 工 作, 收 集 young generation 里 的 垃 圾 对 象 Parallel (Throughput) GC: 使 用 多 个 GC 线 程 并 行 执 行 垃 圾 回 收 工 作, 在 执 行 GC 时, 其 他 线 程 都 会 暂 停 工 作, 收 集 young generation 里 的 垃 圾 对 象 Concurrent Mark Sweep(CMS) GC: 用 于 收 集 old generation 里 的 垃 圾 对 象, 跟 其 他 线 程 并 行 工 作, 当 需 要 标 注 某 个 线 程 里 的 垃 圾 对 象 时, 会 暂 停 线 程 一 小 会, 其 他 时 候 可 以 与 线 程 并 行 执 行 在 GC 时, 通 常 young generation 里 的 GC, 即 minor GC 很 快, 当 old generation 空 间 不 够 时,Java 虚 拟 机 首 先 会 尝 试 CMS GC 并 行 收 集, 如 果 这 样 空 间 还 不 能 快 速 回 收 时, 那 Java 虚 拟 机 会 暂 停 所 有 线 程 执 行 GC, 这 个 时 候 称 为 Full GC 一 般 来 说,Full GC 的 执 行 效 率 要 比 minor GC 慢 很 多, 程 序 优 化 的 目 标 也 是 尽 量 减 少 Full GC 的 执 行 次 数 第 19 页

Java 内 存 堆 Java 虚 拟 机 在 启 动 时, 会 从 操 作 系 统 申 请 一 大 块 内 存, 后 续 Java 程 序 运 行 时, 所 有 对 象 都 在 这 个 内 存 块 里 分 配, 这 个 内 存 块 叫 Java Heap Java 内 存 堆 在 Java 程 序 启 动 后 无 法 更 改, 只 能 通 过 修 改 Java 程 序 的 -Xms Xmx -Xmn 等 启 动 参 数 改 变 设 置 当 Java 堆 内 存 用 光, 而 且 GC 也 无 法 收 集 更 多 的 内 存 时, 抛 出 OutOfMemoryError 可 以 使 用 Jconsole Runtime.maxMemory() Runtime.totalMemory() 以 及 Runtime.freeMemory() 等 函 数 查 询 Java 程 序 的 内 存 堆 设 置 第 20 页

JDK 内 存 工 具 使 用 介 绍 - JMap Jmap 可 以 用 来 打 印 一 个 运 行 中 的 Java 程 序 或 者 Java 内 存 文 件 的 内 存 使 用 率 统 计 Jmap 还 可 以 与 jsadebugd 后 台 出 现 同 时 使 用, 查 询 统 计 远 程 机 器 上 的 Java 程 序 的 内 存 使 用 率 情 况 使 用 -heap 选 项 来 收 集 下 列 Java 内 存 使 用 率 情 况 : 1 垃 圾 回 收 算 法 相 关 的 信 息 2 内 存 堆 (Heap) 的 设 置 3 内 存 使 用 率 情 况 在 ubuntu 上 需 要 执 行 命 令 : echo 0 sudo tee /proc/sys/kernel/yama/ptrace_scope 使 用 -histo 选 项 获 取 按 类 型 统 计 的 内 存 使 用 率 情 况 使 用 -permstat 选 项 来 统 计 永 久 性 内 存 的 使 用 率 情 况, 永 久 性 内 存 是 Java 虚 拟 机 用 来 保 存 类 型 函 数 等 对 象 和 内 在 化 (internalization) 字 符 串 的 区 域 一 般 在 调 试 JSP 等 经 常 生 成 和 加 载 大 量 类 型 的 Java 程 序 很 有 用 第 21 页

1 jmap heap 的 输 出 解 释 2 jmap histo 的 输 出 解 释 3 jmap permstat 的 输 出 解 释 示 例 第 22 页

JDK 内 存 工 具 使 用 介 绍 - JHat jhat 可 以 分 析 一 个 二 进 制 的 hprof 日 志 文 件, 提 供 一 个 web 界 面 用 来 查 询 和 分 析 java 的 内 存 使 用 情 况, 其 提 供 了 一 种 类 似 SQL 的 OQL 查 询 语 句 使 得 这 个 查 询 变 得 很 简 单 可 以 用 它 来 找 出 一 些 垃 圾 对 象 的 意 外 引 用 从 而 导 致 垃 圾 无 法 回 收, 也 就 引 发 了 内 存 泄 露 OQL 的 语 法 是 : Select 选 择 用 的 Javascript 表 达 式 from [instanceof] 类 名 对 象 名 where Javascript 语 法 的 布 尔 表 达 式

1 使 用 jmap 和 jhat 等 工 具 分 析 Java 程 序 内 存 泄 露 问 题 示 例 第 24 页

THANK YOU