- 浏览: 3066468 次
- 性别:
- 来自: 海外
-
文章分类
- 全部博客 (430)
- Programming Languages (23)
- Compiler (20)
- Virtual Machine (57)
- Garbage Collection (4)
- HotSpot VM (26)
- Mono (2)
- SSCLI Rotor (1)
- Harmony (0)
- DLR (19)
- Ruby (28)
- C# (38)
- F# (3)
- Haskell (0)
- Scheme (1)
- Regular Expression (5)
- Python (4)
- ECMAScript (2)
- JavaScript (18)
- ActionScript (7)
- Squirrel (2)
- C (6)
- C++ (10)
- D (2)
- .NET (13)
- Java (86)
- Scala (1)
- Groovy (3)
- Optimization (6)
- Data Structure and Algorithm (3)
- Books (4)
- WPF (1)
- Game Engines (7)
- 吉里吉里 (12)
- UML (1)
- Reverse Engineering (11)
- NSIS (4)
- Utilities (3)
- Design Patterns (1)
- Visual Studio (9)
- Windows 7 (3)
- x86 Assembler (1)
- Android (2)
- School Assignment / Test (6)
- Anti-virus (1)
- REST (1)
- Profiling (1)
- misc (39)
- NetOA (12)
- rant (6)
- anime (5)
- Links (12)
- CLR (7)
- GC (1)
- OpenJDK (2)
- JVM (4)
- KVM (0)
- Rhino (1)
- LINQ (2)
- JScript (0)
- Nashorn (0)
- Dalvik (1)
- DTrace (0)
- LLVM (0)
- MSIL (0)
最新评论
-
mldxs:
虽然很多还是看不懂,写的很好!
虚拟机随谈(一):解释器,树遍历解释器,基于栈与基于寄存器,大杂烩 -
HanyuKing:
Java的多维数组 -
funnyone:
Java 8的default method与method resolution -
ljs_nogard:
Xamarin workbook - .Net Core 中不 ...
LINQ的恶搞…… -
txm119161336:
allocatestlye1 顺序为 // Fields o ...
最近做的两次Java/JVM分享的概要
新浪微活动页面:http://event.weibo.com/753079
活动内容:
我的演讲的演示稿,《Intrinsic Methods in HotSpot VM》:SlideShare, 新浪微盘
Intrinsic method在别的环境里也叫做built-in function;另外,针对intrinsic method的内联在某些地方也叫做semantic inlining。可以参考
Efficient Support for Complex Numbers in Java, Peng Wu, Sam Midkiff, José Moreira, Manish Gupta, 1999
Improving Java Performance Through Semantic Inlining, Peng Wu, Sam Midkiff, José Moreira, Manish Gupta, 1998
(IBM就喜欢把什么东西都起个新名字安上…
)
这两篇论文里提到的semantic inlining强调“原本的intrinsic”只对操作进行特化,而semantic inlining则既对操作也对数据(类型)进行特化。实际上为了这差异发明个新名字也就是为了写论文吧…
HotSpot VM里,C2实现的StringBuilder|Buffer.append()的intrinsic在内部也是不构造Java层面的char[]来累加字符串内容,而是在native memory里找块空间来做这事情,跟semantic inlining所说的效果也类似吧。
其他演讲者的演示稿等@坤谷整理好放在这里了:http://yunpan.alibaba.com/share/link/L4OU3zA6
@温高铁:《各种API的性能、编码优化技巧》 新浪微盘
==================================================================
关于HotSpot VM Serviceability Agent的演示
我以前在这ItEye上也写过一些关于HotSpot Serviceability Agent的笔记。
最近大概是这篇:关于sa-jdi.jar与tools.jar里的工具的讨论
以前例如:
2011-06-20: 回复:请问,jvm实现读取class文件常量池信息是怎样呢?
2010-08-05: 借助HotSpot SA来一窥PermGen上的对象
2010-08-04: 借助HotSpot SA来反汇编
2010-08-03: 如何dump出一个Java进程里的类对应的Class文件?
更新:加上新帖:2013-04-16: 借HSDB来探索HotSpot VM的运行时数据
这次做的演示以CLHSDB和HSDB为主。以后有空再写个Serviceability Agent的入门演示稿吧。
如果有兴趣自己基于SA API来写小工具,这里有个我写的基于SA的工具的列表,可以参考:http://rednaxelafx.iteye.com/blog/1814429
CLHSDB是command line HotSpot debugger的缩写,顾名思义是个命令行界面的、专门用于调试HotSpot VM的调试器。
它的用法可以搜一下"rednaxelafx clhsdb"关键字,我在Github gist上发过很多例子。
最简单的启动方式如下:
(在某些系统上可能需要在前面加上sudo以获得足够权限去连接到目标进程上;另外有可能需要进一步设置ptrace_scope的值)
HSDB则是图形界面版的HotSpot调试器。它的启动方式与CLHSDB类似,
HSDB的截屏图:
VisualVM里的SAPlugin实际上就是HSDB里的部分功能的移植版。
JDK捆绑的VisualVM的插件更新源里其实以前是有SAPlugin的。不过某个版本后JDK捆绑版就把SAPlugin从插件列表里去掉了,我现在也不知道是为啥。确实是要手动添加插件源才会看到SAPlugin,或者是直接用stand-alone版的VisualVM。
多谢现场提问!幸好有些互动,不然感觉会好冷,哈哈
活动内容:
引用
活动主题:
会场一 万松书院(偏向应用层):
@琴上的日月:《淘宝WEBOS.面向积木编程.分形架构》(45分钟)
@淘宝君山:《Velocity的优化》(45分钟)
@淘宝叔同:《淘宝前台应用性能优化实践》(45分钟)
@温高铁:《各种API的性能、编码优化技巧》(45分钟)
剩余时间交流答疑
会场二 三味书屋(偏向底层):
@MinZhou:《Java程序员也要了解CPU》(1小时)
@RednaxelaFX:《Intrinsic Methods in HotSpot VM》(1小时)
@王王争:《让Java的世界能够利用PMU的历史》(1小时)
剩余时间交流答疑
(@RednaxelaFX 会做一个关于HotSpot VM Serviceability Agent的演示)
会场一 万松书院(偏向应用层):
@琴上的日月:《淘宝WEBOS.面向积木编程.分形架构》(45分钟)
@淘宝君山:《Velocity的优化》(45分钟)
@淘宝叔同:《淘宝前台应用性能优化实践》(45分钟)
@温高铁:《各种API的性能、编码优化技巧》(45分钟)
剩余时间交流答疑
会场二 三味书屋(偏向底层):
@MinZhou:《Java程序员也要了解CPU》(1小时)
@RednaxelaFX:《Intrinsic Methods in HotSpot VM》(1小时)
@王王争:《让Java的世界能够利用PMU的历史》(1小时)
剩余时间交流答疑
(@RednaxelaFX 会做一个关于HotSpot VM Serviceability Agent的演示)
我的演讲的演示稿,《Intrinsic Methods in HotSpot VM》:SlideShare, 新浪微盘
Intrinsic method在别的环境里也叫做built-in function;另外,针对intrinsic method的内联在某些地方也叫做semantic inlining。可以参考
Efficient Support for Complex Numbers in Java, Peng Wu, Sam Midkiff, José Moreira, Manish Gupta, 1999
Improving Java Performance Through Semantic Inlining, Peng Wu, Sam Midkiff, José Moreira, Manish Gupta, 1998
(IBM就喜欢把什么东西都起个新名字安上…

这两篇论文里提到的semantic inlining强调“原本的intrinsic”只对操作进行特化,而semantic inlining则既对操作也对数据(类型)进行特化。实际上为了这差异发明个新名字也就是为了写论文吧…
HotSpot VM里,C2实现的StringBuilder|Buffer.append()的intrinsic在内部也是不构造Java层面的char[]来累加字符串内容,而是在native memory里找块空间来做这事情,跟semantic inlining所说的效果也类似吧。
其他演讲者的演示稿等@坤谷整理好放在这里了:http://yunpan.alibaba.com/share/link/L4OU3zA6
@温高铁:《各种API的性能、编码优化技巧》 新浪微盘
==================================================================
关于HotSpot VM Serviceability Agent的演示

我以前在这ItEye上也写过一些关于HotSpot Serviceability Agent的笔记。
最近大概是这篇:关于sa-jdi.jar与tools.jar里的工具的讨论
以前例如:
2011-06-20: 回复:请问,jvm实现读取class文件常量池信息是怎样呢?
2010-08-05: 借助HotSpot SA来一窥PermGen上的对象
2010-08-04: 借助HotSpot SA来反汇编
2010-08-03: 如何dump出一个Java进程里的类对应的Class文件?
更新:加上新帖:2013-04-16: 借HSDB来探索HotSpot VM的运行时数据
这次做的演示以CLHSDB和HSDB为主。以后有空再写个Serviceability Agent的入门演示稿吧。
如果有兴趣自己基于SA API来写小工具,这里有个我写的基于SA的工具的列表,可以参考:http://rednaxelafx.iteye.com/blog/1814429
CLHSDB是command line HotSpot debugger的缩写,顾名思义是个命令行界面的、专门用于调试HotSpot VM的调试器。
它的用法可以搜一下"rednaxelafx clhsdb"关键字,我在Github gist上发过很多例子。
最简单的启动方式如下:
java -cp $JAVA_HOME/lib/sa-jdi.jar sun.jvm.hotspot.CLHSDB
(在某些系统上可能需要在前面加上sudo以获得足够权限去连接到目标进程上;另外有可能需要进一步设置ptrace_scope的值)
HSDB则是图形界面版的HotSpot调试器。它的启动方式与CLHSDB类似,
java -cp $JAVA_HOME/lib/sa-jdi.jar sun.jvm.hotspot.HSDB
HSDB的截屏图:


VisualVM里的SAPlugin实际上就是HSDB里的部分功能的移植版。


评论
3 楼
moonese
2013-02-26
也许是觉得 visualvm 里的 SAPlugin 插件支持不完善就去掉了,我发现如果点第二个看 "Stack Memory..." 的按钮会提示 "Not yet implemented"
应该是多谢分享!
应该是多谢分享!

2 楼
RednaxelaFX
2013-02-25
moonese 写道
我是现场提问说 SAPlugin 装了但没有生效的,是我记错了,可以的,没有问题。
另外需要提醒一个小问题,jdk 自带的 visualvm 版本比较低,即使最新的 jdk 1.7.0u15 的 jvisualvm 的版本也才是 build 120605,插件库里面是没有 SAPlugin 的。
另外需要提醒一个小问题,jdk 自带的 visualvm 版本比较低,即使最新的 jdk 1.7.0u15 的 jvisualvm 的版本也才是 build 120605,插件库里面是没有 SAPlugin 的。
JDK捆绑的VisualVM的插件更新源里其实以前是有SAPlugin的。不过某个版本后JDK捆绑版就把SAPlugin从插件列表里去掉了,我现在也不知道是为啥。确实是要手动添加插件源才会看到SAPlugin,或者是直接用stand-alone版的VisualVM。
多谢现场提问!幸好有些互动,不然感觉会好冷,哈哈

1 楼
moonese
2013-02-25
我是现场提问说 SAPlugin 装了但没有生效的,是我记错了,可以的,没有问题。
另外需要提醒一个小问题,jdk 自带的 visualvm 版本比较低,即使最新的 jdk 1.7.0u15 的 jvisualvm 的版本也才是 build 120605,插件库里面是没有 SAPlugin 的。
而如果去 http://visualvm.java.net/download.html 这里下载到的 1.3.5 的 visualvm 其 build 是 121105,可选的插件则要多得多,其中就有 SAPlugin (没有中间的杠杠 - )
rednaxelafx 的 SA 教程写了很多,用来学习是很好了,相信有心的人会受益良多的。
另外需要提醒一个小问题,jdk 自带的 visualvm 版本比较低,即使最新的 jdk 1.7.0u15 的 jvisualvm 的版本也才是 build 120605,插件库里面是没有 SAPlugin 的。
而如果去 http://visualvm.java.net/download.html 这里下载到的 1.3.5 的 visualvm 其 build 是 121105,可选的插件则要多得多,其中就有 SAPlugin (没有中间的杠杠 - )
rednaxelafx 的 SA 教程写了很多,用来学习是很好了,相信有心的人会受益良多的。
发表评论
-
The Prehistory of Java, HotSpot and Train
2014-06-02 08:18 0http://cs.gmu.edu/cne/itcore/vi ... -
MSJVM and Sun 1.0.x/1.1.x
2014-05-20 18:50 0当年的survey paper: http://www.sym ... -
Sun JDK1.4.2_28有TieredCompilation
2014-05-12 08:48 0原来以前Sun的JDK 1.4.2 update 28就已经有 ... -
IBM JVM notes (2014 ver)
2014-05-11 07:16 0Sovereign JIT http://publib.bou ... -
class data sharing by Apple
2014-03-28 05:17 0class data sharing is implement ... -
Java 8与静态工具类
2014-03-19 08:43 16363以前要在Java里实现所谓“静态工具类”(static uti ... -
Java 8的default method与method resolution
2014-03-19 02:23 10510先看看下面这个代码例子, interface IFoo { ... -
HotSpot Server VM与Server Class Machine
2014-02-18 13:21 0HotSpot VM历来有Client VM与Server V ... -
Java 8的lambda表达式在OpenJDK8中的实现
2014-02-04 12:08 0三月份JDK8就要发布首发了,现在JDK8 release c ... -
GC stack map与deopt stack map的异同
2014-01-08 09:56 0两者之间不并存在包含关系。它们有交集,但也各自有特别的地方。 ... -
HotSpot Server Compiler与data-flow analysis
2014-01-07 17:41 0http://en.wikipedia.org/wiki/Da ... -
基于LLVM实现VM的JIT的一些痛点
2014-01-07 17:25 0同事Philip Reames Sanjoy Das http ... -
tailcall notes
2013-12-27 07:42 0http://blogs.msdn.com/b/clrcode ... -
《自制编程语言》的一些笔记
2013-11-24 00:20 0http://kmaebashi.com/programmer ... -
字符串的一般封装方式的内存布局 (1): 元数据与字符串内容,整体还是分离?
2013-11-07 17:44 22456(Disclaimer:未经许可请 ... -
字符串的一般封装方式的内存布局 (0): 拿在手上的是什么
2013-11-04 18:22 21551(Disclaimer:未经许可请 ... -
字符串的一般封装方式的内存布局
2013-11-01 12:55 0(Disclaimer:未经许可请 ... -
关于string,内存布局,C++ std::string,CoW
2013-10-30 20:45 0(Disclaimer:未经许可请 ... -
对C语义的for循环的基本代码生成模式
2013-10-19 23:12 21920之前有同学在做龙书(第二版)题目,做到8.4的练习,跟我对答案 ... -
Java的instanceof是如何实现的
2013-09-22 16:57 0Java语言规范,Java SE 7版 http://docs ...
相关推荐
内容概要:本文档是一份详细的SQL入门指南,旨在帮助初学者全面掌握SQL的基本概念和技术。首先介绍了SQL的基础知识及其重要性,解释了为什么学习SQL对数据分析和软件开发至关重要。接着详细讲解了如何快速搭建SQL环境,包括在线沙箱和本地安装两种方式。随后深入探讨了SQL的基础语法,如创建数据库和表、插入、查询、更新和删除数据的操作。进一步解析了核心操作,如复杂的查询语句结构、多表关联查询以及实用的功能,如条件表达式、日期处理和字符串操作。最后提供了新手常见问题的解决方案和性能优化建议,并推荐了一些学习资源。 适合人群:对数据库操作感兴趣的初学者,尤其是希望从事数据分析或软件开发的人士。 使用场景及目标:适用于想要系统学习SQL基础知识和核心操作的个人,目标是在实践中掌握SQL技能,能够独立进行数据库管理和操作。 其他说明:文档不仅涵盖了理论知识,还提供了大量实例和练习建议,帮助读者更好地理解和应用所学内容。
计算机二级考试C语言历年真题及答案.pdf
flink 自定义连接器
软考网络工程师视频教程及复习指导资料,含视频教程、历年真题、模拟试题等。
计算机二级access历年笔试真题及答案.pdf
内容概要:本文详细介绍了使用三菱PLC FX3U和1PG定位模块控制四个松下伺服电机的项目经验。项目将常用的JOG、HOME、定位等功能封装成独立的功能块(FB),并通过结构化文本(ST)编写程序。每个功能块不仅包含了核心逻辑,还进行了详细的异常处理和参数映射,确保系统的稳定性和易用性。此外,文章还涵盖了电气图纸、触摸屏配方管理以及硬件配置等方面的注意事项,提供了完整的项目实施指南。 适合人群:从事工业自动化领域的工程师和技术人员,尤其是对三菱PLC和松下伺服有一定了解的人群。 使用场景及目标:适用于需要高精度多轴联动控制的工业应用场景,如数控机床、机器人等。目标是帮助工程师快速搭建稳定的控制系统,减少调试时间和复杂度。 其他说明:文中提供的代码片段和硬件配置建议经过实际验证,能够有效提高项目的成功率。同时,文章强调了良好的注释习惯和详细的文档记录对于后续维护的重要性。
办公室网安全监控uptime-kuma,docker镜像离线压缩包
教程-typescript-简介和入门
内容概要:本文详细介绍了基于西门子S7-1200 PLC控制五轴伺服系统的项目实施经验,涵盖手动模式、自动运行状态机、伺服模式切换、断电保持以及报警处理等多个关键环节。作者通过结构化编程思想,将复杂的多轴控制系统分解为多个独立的功能块,确保系统稳定性和可扩展性。文中不仅展示了具体代码实现,还分享了许多实用技巧,如通过枚举类型构建状态机、利用保持存储器实现断电位置记忆、采用环形缓冲区记录报警信息等。 适合人群:从事工业自动化控制领域的工程师和技术人员,尤其对PLC编程和伺服控制有一定基础的人群。 使用场景及目标:适用于需要进行复杂多轴运动控制的工业应用场景,旨在提高系统的可靠性、灵活性和易维护性。通过学习本文,读者可以掌握如何运用结构化编程方法优化PLC程序设计,提升工作效率并减少错误发生。 其他说明:文章强调了良好的编程习惯对于大型工程项目的重要性,提倡模块化、组件化的设计理念。此外,还提到了一些常见的陷阱及其解决方案,帮助初学者避开弯路。
win32汇编环境,网络编程入门之十五
12届嵌入式省赛题1111111
内容概要:本文详细记录了作者在Cadence平台中完成一个两级放大电路版图设计的过程,涵盖了从初步设计到最终通过LVS(Layout vs Schematic)和DRC(Design Rule Check)验证的所有步骤。文章首先介绍了电路的基本结构和参数设定,如共源放大器和共栅放大器的关键参数调整,以及在Virtuoso环境中进行的具体操作。接着,作者分享了在版图绘制过程中遇到的各种挑战及其解决方案,包括晶体管尺寸优化、走线布局、寄生参数控制、金属层间距调整等。此外,还特别强调了LVS和DRC验证中的常见问题及应对策略,如端口不匹配、器件参数偏差、金属密度规则等。最后,作者总结了一些实用的设计技巧和注意事项,为后续类似项目提供了宝贵的经验。 适合人群:从事集成电路设计的专业人士,尤其是对模拟电路版图设计感兴趣的工程师和技术爱好者。 使用场景及目标:帮助读者掌握Cadence环境下两级放大电路版图设计的方法,提高LVS和DRC验证的成功率,减少设计周期内的返工次数,提升设计效率。 其他说明:文中提到的具体数值和代码片段仅供参考,在实际应用中需要根据具体的工艺规则和个人需求进行适当调整。
矢量边界,行政区域边界,精确到乡镇街道,可直接导入arcgis使用
matlab
这个Stroke Risk Prediction Dataset(卒中风险预测数据集)的版本2旨在通过症状、人口统计学和基于医学文献的风险模型来预测卒中风险。相比于版本1,它在多个方面进行了显著改进,包括年龄相关的症状概率、性别特异性风险调整以及经过医学验证的特征工程等。 主要增强点: 年龄准确的风险建模:卒中风险随着一个S型曲线增加,在50岁之后急剧上升,这反映了现实世界的流行病学趋势。 性别特定的风险:60岁以下的男性风险是女性的1.5倍,而60岁以上的女性(绝经后的激素变化)风险比同龄男性高1.8倍。 平衡且扩展的数据集:样本量从10,000增加到35,000,以提高模型的普遍性和捕捉罕见的症状组合。其中50%为卒中风险≥50%,另外50%为卒中风险<50%。 数据集结构 该数据集包含16个特征和2个目标变量(分类目标和回归目标),涉及年龄、性别、各种二元症状指标(如胸痛、呼吸急促、心律不齐等)、是否处于风险中(二元分类目标)以及卒中风险百分比(回归目标)。 医学有效性 数据集基于同行评审的医学文献构建,症状概率、风险权重及人口统计关系直接来源于临床指南和流行病学研究。例如,
搭建环境:JDK-17
流程图111111111111111
这款模板需要2.2的程序,模板的仿照若夏文学网,模板以粉色彩蝶为主,也就女生版的,可以做言情类的原创站,程序带 有充值、打赏、vip等原创功能,凡是购买本模板送2.2程序,还送手机独立板子及关关采集器。2.2是官方的没有漏洞、后 门什么的,可以放心使用! 安装说明: 详细见压缩包,要求PHP5.3以上环境。
本报告由艾普思咨询发布,详细分析了2023年5月中国房地产行业的舆情状况。主要内容涵盖行业发展简报、舆情态势(声量/情感分布、来源/媒介分布、典型报道、地域分布)、品牌舆情关注度TOP10以及重点舆情话题和事件。报告指出,5月份房地产行业舆情声量显著上升,达到27,344,454篇次,主要受政策调整、企业动态等因素影响。此外,报告特别关注了万达集团大规模裁员传闻和光明房地产集团原董事长沈宏泽接受审查调查两大重点事件。 房地产从业者、投资者、政策研究者及相关媒体从业人员。
内容概要:本文详细介绍了7.5kw异步电机的经典矢量控制仿真模型在Matlab/Simulink环境下的搭建与优化方法。首先阐述了矢量控制的核心概念,即速度环和电流环的双环控制机制。速度环作为系统的‘指挥官’,通过PI调节器调整电机的目标速度;电流环作为‘执行者’,根据速度环提供的指令精确调节电机电流,确保转矩的稳定控制。文中提供了具体的MATLAB代码片段展示各环节的具体实现方式,包括坐标变换、PI调节器参数设定、弱磁控制、转矩限幅等关键技术细节。此外,作者还分享了一些实用的经验和技巧,如速度环和电流环的参数选择、磁链观测器的应用、SVPWM模块的实现等。 适用人群:从事电机控制系统设计的研究人员和技术人员,尤其是对Matlab/Simulink有一定基础并希望深入了解异步电机矢量控制原理的人群。 使用场景及目标:适用于需要进行电机控制仿真的科研项目或工业应用。主要目标是帮助读者掌握异步电机矢量控制的基本原理及其在Matlab/Simulink中的具体实现方法,提高仿真效率和准确性。 其他说明:文中不仅提供了详细的理论解释和技术实现步骤,还附带了许多实用的小技巧和注意事项,有助于读者更好地理解和应用相关知识。同时,作者强调了参数选择的重要性,并给出了具体的调试建议,使读者能够更快地上手并优化自己的仿真模型。