免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
123
最近访问板块 发新帖
楼主: send_linux
打印 上一主题 下一主题

Java虚拟机编程,说说您的入门和深入经验!(获奖名单已公布-2013-8-15) [复制链接]

论坛徽章:
0
21 [报告]
发表于 2013-07-31 14:04 |只看该作者
回复 20# simpleman7210


    http://hllvm.group.iteye.com/ 这有些不错入门资料,而且有几个jvm的简单实现.

论坛徽章:
0
22 [报告]
发表于 2013-07-31 14:59 |只看该作者
http://hllvm.group.iteye.com/ 这有些不错入门资料,而且有几个jvm的简单实现.


这里面确实很多,我曾在里面找过,似乎也不好找到便于初学者上手的jvm实现。SUN的kvm算是简单的吗?我发现也不是很容易读懂其代码,我只能拿来作为参考资料。也许有我没有留意到的简单jvm实现,请指出。

论坛徽章:
2
亥猪
日期:2014-03-19 16:36:35午马
日期:2014-11-23 23:48:46
23 [报告]
发表于 2013-08-03 15:29 |只看该作者
(1)Java虚拟机编程中您的一些小经验
没什么特别的技巧,经验,个人本来是做系统级程序的,所以看java虚拟机里面很多机制,其实和实体机器体系和操作系统没什么特别本质的区别,比如并发,模块,classload这些,java实现的机制不同,只要了解elf,so之类操作系统加载文件的过程,classload也有大部分是可以类比学习的。
我眼里java就是一个cpu+os,类比起来可能就是intel+unix,所以深入学习java虚拟机的一个普通的可以和大家交流的经验就是学好体系结构和操作系统原理

(2)Java虚拟机技术的未来走向
20年前的系统是单核单系统,10年前的系统是多核网络系统,现在更多的是多核群集分布式网络系统,所以java虚拟机一问世便解决了单系统的系统抽象问题,然后虚拟机提供了并发并行能力,按照系统的发展方向和规律,我猜虚拟机某天可以天然的原生支持分布式和集群应用,不是通过类库这些东西做扩展,就如erlang虚拟机的支持一般天然。

论坛徽章:
17
戌狗
日期:2013-09-02 23:43:02技术图书徽章
日期:2014-04-29 14:16:02技术图书徽章
日期:2014-04-24 15:51:26未羊
日期:2014-04-06 22:10:30丑牛
日期:2014-04-06 21:23:29辰龙
日期:2014-04-06 21:20:22处女座
日期:2014-04-06 21:16:18技术图书徽章
日期:2014-04-02 15:10:51金牛座
日期:2014-03-10 22:26:18巨蟹座
日期:2014-02-17 17:12:12技术图书徽章
日期:2014-01-24 10:38:43摩羯座
日期:2013-11-29 18:00:18
24 [报告]
发表于 2013-08-06 16:18 |只看该作者
本帖最后由 jimmy-_-lixw 于 2014-04-06 21:27 编辑

提示: 内容被隐藏或删除 内容自动屏蔽

论坛徽章:
0
25 [报告]
发表于 2013-08-07 09:20 |只看该作者
回复 24# jimmy-_-lixw


    二维数组,二维数据占用的内存空间比一维数组多得多,大概几倍以上。
尽可能将经常使用的对象进行缓存,可以使用数组,或HashMap的容器来进行缓存,但这种方式可能导致系统占用过多的缓存,性能下降。
使用单例可以减轻加载的负担,缩短加载的时间,提高加载的效率,但并不是所有地方都适用于单例,简单来说尽量在合适的场合使用单例

~上面所说的这些,都是设计上的原因,根java虚拟机没关系吧..而且内存占用大总得有个限度吧,一般调整heap大小基本都能应付,应付不了的都走集中缓存.

论坛徽章:
39
白银圣斗士
日期:2015-11-24 10:40:40酉鸡
日期:2015-03-20 14:15:44寅虎
日期:2015-03-20 14:13:59午马
日期:2015-03-20 14:13:16白羊座
日期:2015-03-20 14:12:54金牛座
日期:2015-03-20 14:12:09双子座
日期:2015-03-20 14:11:57巨蟹座
日期:2015-03-20 14:11:44狮子座
日期:2015-03-20 14:11:29亥猪
日期:2015-03-20 14:16:24戌狗
日期:2015-03-20 14:16:40申猴
日期:2015-03-20 14:17:05
26 [报告]
发表于 2013-08-07 10:19 |只看该作者
回复 24# jimmy-_-lixw


    缓存本身就用用来提高性能,提升相应速度的。如果因缓存带来性能损耗,那可定是设计有问题。缓存都应该搭配缓冲池使用,如果一味的缓存下去,那必然导致你所说的系统资源吃紧,性能降低

论坛徽章:
17
戌狗
日期:2013-09-02 23:43:02技术图书徽章
日期:2014-04-29 14:16:02技术图书徽章
日期:2014-04-24 15:51:26未羊
日期:2014-04-06 22:10:30丑牛
日期:2014-04-06 21:23:29辰龙
日期:2014-04-06 21:20:22处女座
日期:2014-04-06 21:16:18技术图书徽章
日期:2014-04-02 15:10:51金牛座
日期:2014-03-10 22:26:18巨蟹座
日期:2014-02-17 17:12:12技术图书徽章
日期:2014-01-24 10:38:43摩羯座
日期:2013-11-29 18:00:18
27 [报告]
发表于 2013-08-07 18:20 |只看该作者
本帖最后由 jimmy-_-lixw 于 2014-04-06 21:26 编辑

提示: 内容被隐藏或删除 内容自动屏蔽

论坛徽章:
1
狮子座
日期:2013-09-06 17:18:40
28 [报告]
发表于 2013-08-10 00:27 |只看该作者
本帖最后由 mcyeah 于 2013-08-10 11:32 编辑

(1)Java虚拟机编程中您的一些小经验
   我觉得其实Java虚拟机编程主要应该指的是利用JVM平台来进行程序设计,现在JVM所支持的语言也已经有很多了。但是此处所指的Java虚拟机编程经验可以类比于不用虚拟机的情况下针对特定CPU体系结构的编程经验,所以对于虚拟机的深入理解就很有必要了,我觉得这就像是要对cpu的体系结构(不是直接针对硬件的编程就是操作系统)、汇编进行深入理解一样。当我们能够了解了虚拟机的工作之后,我们编写代码时可以有以下几个方面的改进:
   调试程序,寻找bug又多了一种手段,我们可以通过对java字节码的反汇编来对自己程序产生的bug进行精确定位;
   了解了虚拟机的工作原理,我们就会对语言的一些特性有深入的理解,从而减少bug产生的几率;
   可以编写针对虚拟机的原理做专门优化的代码,提高程序效率;
   能够更好的对虚拟机进行特殊配置和二次开发,来满足特定的需求
(2)Java虚拟机技术的未来走向,会有哪些新特性
   我觉得Java虚拟机技术的发展方向应该有效率和广度两个方面。由于是虚拟机,所以各种能够提升效率的方法肯定会被加到java虚拟机的特性中,比如早期没有JIT这个特性,现在有了。广度应该包含多平台(各种不同的体系结构,以及多核环境)支持、多语言(各种动态语言、静态语言)支持、扩展功能(模块儿化,图形化方面的发展等)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP