精灵巫婆 发表于 2015-1-18 11:33:48

JAVA教程之Java基准所面对的应战仓酷云

专门做了这个例子;而java的这个例子好像就是为了教学而写的,很多教学目的的例子是不考虑优化、性能的。BrentBoyer是EllipticGroup的一位程序员,他在IBM开辟者网站上宣布了一篇名为“强健的Java基准(RobustJavaBenchmarking)”的文章。这篇文章包括两个部分,次要探求了怎样完成无效的Java基准。起首,他叙述了以后编译器下分歧JVM有着分歧的特征和优化,而这些特征或是优化有大概会对功能测试发生负面影响。
举例来讲,假设有一段庞大的代码段,最初盘算失掉的是一个从未利用的值,那末强势编译器就会对这段代码举行优化,基原则会疏忽这段盘算。为了申明这一点,他在他哦个一台盘算机上一连运转了良多次不异的代码段,了局运转时都是4.9秒,但当他删除打印了局的println语句以后,运转工夫则延长到0.08秒。他还指出,工夫器度的粒度在分歧的操纵体系下是纷歧样的,因而在基准测试的时分,必定要弄分明以后体系的工夫器度粒度。他说,和System.nanoTime()比拟,System.currentTimeMillis()就不是一个器度运转工夫的好办法(),由于它在WindowsXP上只要15ms的精度(但在具有2.6内核的Linux上却能够到达1ms的精度)。

在论述了这些出格的举动以后,Boyer提到了一些在做典范的基准测试时简单疏忽的一些成绩,好比JVM缓存、资本接纳(如渣滓搜集、对象清算)。他以为制止这些成绩的独一无效体例是“预热(warmup)”代码直到代码到达一个不乱态。“预热”历程很耗工夫而且很具应战,由于有些JVM在其触发编译之前大概已将一个函数实行了10,000次(但在编译触发前,代码还处于剖析形态)。代码到达不乱形态以后,基准必需对这段代码运转屡次,然后才干对了局做出无效的统计剖析。

别的,Boyer还倡议接纳基准框架来做基准测试,他自己就编写了如许一个框架。该框架可以展现以分歧数量的元从来会见数据布局(原生数组、ArrayLists、Vectors、HashMap、TreeMap等等)中的数据的差别。Boyer向人人展现了两个风趣的剖析了局:(1)即便运转时长久到以纳秒计数,其基准框架仍能盘算出均匀会见工夫。(2)分歧负载下,某些数据布局的反响使人十分受惊。个中一个出格的例子是ConcurrentHashMaps与TreeMap的对照:在一样具有1024个元素时,CurrentHashMaps的体现要远远好过TreeMap,但当元素数目上升到1024x1024的时分,二者体现就相差不年夜。这很出人意料,由于hashmap的搜刮工夫是常量,但trees的搜刮工夫倒是log(n)。除却这些使人受惊的奇异的了局,这篇文章仍是十分值得一读的,特别是在对Java代码举行基准评测时,Boyer提出的倡议仍是值得参考的。
检察英文原文:TheChallengesinJavaBenchmarking
来自:http://www.infoq.com/cn/news/2008/08/java-benchmarking

再说第三点:我并没有提到服务器也要整合,然后是IDE,一个好的IDE能够200%提高开发的速度,就说图形方面:你是经过简单托拽和点击就能实现功能好那。

灵魂腐蚀 发表于 2015-1-21 10:11:54

象、泛型编程的特性,广泛应用于企业级Web应用开发和移动应用开发。

不帅 发表于 2015-1-27 15:03:18

关于设计模式的资料,还是向大家推荐banq的网站 http://www.jdon.com/,他把GOF的23种模式以通俗易懂的方式诠释出来,纯Java描述,真是经典中的经典。

小魔女 发表于 2015-2-5 06:34:10

至于JDBC,就不用我多说了,你如果用java编过存取数据库的程序,就应该很熟悉。还有,如果你要用Java编发送电子邮件的程序,你就得看看Javamail 了。

山那边是海 发表于 2015-2-11 06:44:29

是一种语言,用以产生「小应用程序(Applet(s))

莫相离 发表于 2015-2-16 07:53:56

另外编写和运行Java程序需要JDK(包括JRE),在sun的官方网站上有下载,thinking in java第三版用的JDK版本是1.4,现在流行的版本1.5(sun称作J2SE 5.0,汗),不过听说Bruce的TIJ第四版国外已经出来了,是专门为J2SE 5.0而写的。

精灵巫婆 发表于 2015-2-27 10:58:36

关于设计模式的资料,还是向大家推荐banq的网站 http://www.jdon.com/,他把GOF的23种模式以通俗易懂的方式诠释出来,纯Java描述,真是经典中的经典。

深爱那片海 发表于 2015-3-8 01:03:33

如果你学过HTML,那么事情要好办的多,如果没有,那你快去补一补HTML基础吧。其实JSP中的Java语法也不多,它更象一个脚本语言,有点象ASP。

蒙在股里 发表于 2015-3-9 13:11:31

如果你学过HTML,那么事情要好办的多,如果没有,那你快去补一补HTML基础吧。其实JSP中的Java语法也不多,它更象一个脚本语言,有点象ASP。

冷月葬花魂 发表于 2015-3-10 12:49:45

Java 编程语言的风格十分接近C、C++语言。

活着的死人 发表于 2015-3-15 00:27:33

不过,每次的执行编译后的字节码需要消耗一定的时间,这同时也在一定程度上降低了 Java 程序的运行效率。

谁可相欹 发表于 2015-3-15 13:25:53

Pet Store.(宠物店)是SUN公司为了演示其J2EE编程规范而推出的开放源码的程序,应该很具有权威性,想学J2EE和EJB的朋友不要 错过了。

飘飘悠悠 发表于 2015-3-22 01:09:25

Java是一个纯的面向对象的程序设计语言,它继承了 C++语言面向对象技术的核心。Java舍弃了C ++语言中容易引起错误的指针(以引用取代)、运算符重载(operator overloading)

爱飞 发表于 2015-3-24 07:56:18

是一种简化的C++语言 是一种安全的语言,具有阻绝计算机病毒传输的功能

再现理想 发表于 2015-3-26 22:02:00

《JAVA语言程序设计》或《JAVA从入门到精通》这两本书开始学,等你编程有感觉的时候也可以回看一下。《JAVA读书笔记》这本书,因为讲的代码很多,也很容易看懂,涉及到面也到位。是你学习技术巩固的好书,学完后就看看《JAVA编程思想》这本书,找找一个自己写的代码跟书上的代码有什么不一样。

金色的骷髅 发表于 2015-4-5 11:49:40

学Java必读的两个开源程序就是Jive和Pet Store.。 Jive是国外一个非常著名的BBS程序,完全开放源码。论坛的设计采用了很多先进的技术,如Cache、用户认证、Filter、XML等,而且论坛完全屏蔽了对数据库的访问,可以很轻易的在不同数据库中移植。论坛还有方便的安装和管理程序,这是我们平时编程时容易忽略的一部份(中国程序员一般只注重编程的技术含量,却完全不考虑用户的感受,这就是我们与国外软件的差距所在)。

飘灵儿 发表于 2015-4-10 02:24:05

至于JDBC,就不用我多说了,你如果用java编过存取数据库的程序,就应该很熟悉。还有,如果你要用Java编发送电子邮件的程序,你就得看看Javamail 了。

愤怒的大鸟 发表于 2015-4-10 09:36:05

你快去找一份Java的编程工作来做吧(如果是在校学生可以去做兼职啊),在实践中提高自己,那才是最快的。不过你得祈祷在公司里碰到一个高手,而且他 还愿意不厌其烦地教你,这样好象有点难哦!还有一个办法就是读开放源码的程序了。我们知道开放源码大都出自高手,他们设计合理,考虑周到,再加上有广大的程序员参与,代码的价值自然是字字珠叽,铿锵有力(对不起,偶最近《金装四大才子》看多了)。

只想知道 发表于 2015-4-11 17:42:32

Java 编程语言的风格十分接近C、C++语言。

若天明 发表于 2015-5-3 20:38:05

有时间再研究一下MVC结构(把Model-View-Control分离开的设计思想)
页: [1]
查看完整版本: JAVA教程之Java基准所面对的应战仓酷云