JPDA 架构研究9 - Agent利用环境指针访问VM (堆管理篇)

简介:

2000元阿里云代金券免费领取,2核4G云服务器仅664元/3年,新老用户都有优惠,立即抢购>>>


阿里云采购季(云主机223元/3年)活动入口:请点击进入>>>,


阿里云学生服务器(9.5元/月)购买入口:请点击进入>>>,

引入:

上文中我们讨论了Agent利用环境指针访问VM的堆栈操作部分,这里我们讨论堆操作部分。


分类5:堆操作

a. GetTag. 获取对象在堆上的唯一标识符(长整型)。

jvmtiError
GetTag(jvmtiEnv* env,
            jobject object,
            jlong* tag_ptr)


b.SetTag.为对象设置堆上的唯一标示符。

jvmtiError
SetTag(jvmtiEnv* env,
            jobject object,
            jlong tag)


c.ForceGarbageCollection. 强制VM执行垃圾回收。

jvmtiError
ForceGarbageCollection(jvmtiEnv* env)

该方法只有等垃圾回收做完才返回。


d.IterateOverObjectsReachableFromObject. 迭代某对象所能直接或者间接引用到的所有对象。

jvmtiError
IterateOverObjectsReachableFromObject(jvmtiEnv* env,
            jobject object,
            jvmtiObjectReferenceCallback object_reference_callback,
            void* user_data)


e.IterateOverReachableObjects.迭代堆上所有可以引用到的对象。

jvmtiError
IterateOverReachableObjects(jvmtiEnv* env,
            jvmtiHeapRootCallback heap_root_callback,
            jvmtiStackReferenceCallback stack_ref_callback,
            jvmtiObjectReferenceCallback object_ref_callback,
            void* user_data)


f.IterateOverHeap.迭代堆上的所有对象,包含可以到达的和不可到达的。

jvmtiError
IterateOverHeap(jvmtiEnv* env,
            jvmtiHeapObjectFilter object_filter,
            jvmtiHeapObjectCallback heap_object_callback,
            void* user_data)


g.IterateOverInstancesOfClass.迭代某个给定的类的堆上所有实例。包括可以和不可以到达的。

jvmtiError
IterateOverInstancesOfClass(jvmtiEnv* env,
            jclass klass,
            jvmtiHeapObjectFilter object_filter,
            jvmtiHeapObjectCallback heap_object_callback,
            void* user_data)


h.GetObjectsWithTags.获取给定的堆标记的对象列表。

jvmtiError
GetObjectsWithTags(jvmtiEnv* env,
            jint tag_count,
            const jlong* tags,
            jint* count_ptr,
            jobject** object_result_ptr,
            jlong** tag_result_ptr)




本文转自 charles_wang888 51CTO博客,原文链接:http://blog.51cto.com/supercharles888/1587699,如需转载请自行联系原作者
目录
相关文章
|
7月前
|
设计模式 架构师 Java
阿里P8架构师都要学习研究的java加强版23种设计模式神级PDF文档
说在前面的话 Java作为老牌纯正的编程语言,在规范性上有着天然优势。因此本版的设计模式讲解全部用Java语言来描述,并针对Java语言的特性对讲解内容做了相当大的改动。 不知道大家是否听过编程界的一段话:掌握设计模式相当于华山派的"气宗",是程序员的内功修为,虽然在同样的学习时间下,类似Python这种"剑宗"的开发模式见效更快,但是长远来看,"气宗"才是走向软件架构师以上级别的必由之路。 所以,掌握气宗就掌握了编程命脉,然而学习设计模式有四大境界: 接下来给大家分享的就是java溢彩加强版大话设计模式包含的内容知识点。 总目录 主要内容 本文是百万销量的经典畅销书《
129 0
|
13天前
|
存储 人工智能 测试技术
【AI智能体】SuperAGI-开源AI Agent 管理平台
【4月更文挑战第9天】智能体管理平台SuperAGI简介及实践
|
2月前
|
消息中间件 存储 SQL
Flume【基础知识 01】简介 + 基本架构及核心概念 + 架构模式 + Agent内部原理 + 配置格式(一篇即可入门Flume)
【2月更文挑战第18天】Flume【基础知识 01】简介 + 基本架构及核心概念 + 架构模式 + Agent内部原理 + 配置格式(一篇即可入门Flume)
492 0
|
8月前
|
弹性计算 监控 应用服务中间件
使用 Fleet 管理 Elastic Agent 监控应用
本场景主要介绍了如何使用 Fleet 集中管理 Elastic Agent ,并对主机的指标,日志,服务等进行监控。
222 0
|
8月前
|
存储 缓存 Kubernetes
基于 ACK Fluid 的混合云优化数据访问(一):场景与架构
基于 ACK Fluid 的混合云优化数据访问(一):场景与架构
|
9月前
|
存储 监控 关系型数据库
|
9月前
|
存储 人工智能 Cloud Native
云原生大数据架构实践与思考-DataFunTalk
导读: 作者:振策-阿里云计算平台-产品解决方案, 20230805 本文将分享当前云原生大数据架构的发展历程/架构定义/核心能力/应用场景及趋势思考。主要包括以下四个部分: - 从大数据上云看架构 - 云原生数据平台的核心能力 - Data+AI with Cloud-Native - 未来趋势与思考
1379 0
|
1天前
|
人工智能 数据安全/隐私保护 UED
Agent AI智能体的未来
Agent AI智能体的未来
|
15天前
|
人工智能 API 决策智能
【AI Agent系列】【阿里AgentScope框架】实战1:利用AgentScope实现动态创建Agent和自由组织讨论
【AI Agent系列】【阿里AgentScope框架】实战1:利用AgentScope实现动态创建Agent和自由组织讨论
89 2
|
15天前
|
人工智能 决策智能 C++
【AI Agent系列】【阿里AgentScope框架】5. Pipeline模块的组合使用及Pipeline模块总结
【AI Agent系列】【阿里AgentScope框架】5. Pipeline模块的组合使用及Pipeline模块总结
49 1

热门文章

最新文章

http://www.vxiaotou.com