2008-07-31


今天听到同事说.net的执行效率比java快很多,我当时就说没有,其实他们都是差不多的,都是基于虚拟机技术,只是在windwos平台上微软会对自己的技术做一定的优化。后来自己也做了一个测试,结果太出乎我的意料了,仅仅是一个for循环的测试,结果确实是.net(3.5)的效率比java(5.0)要高出很多,测试程序如下:
C#程序
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
long j = 1;
System.Console.WriteLine(System.DateTime.Now.ToString());
for (long i = 1; i < 10000000000; i++)
{
j = j + 1;
}
System.Console.WriteLine(System.DateTime.Now.ToString());

}
}
}

使用vs2008编写,.net 3.5,使用release方式生成exe文件。在命令行下执行,执行时间是21秒。

java程序,eclipse编写,java 5.0
import java.text.SimpleDateFormat;
import java.util.Date;

public class Test {

/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
Date date = new Date();
SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");
System.out.println(formatter.format(date));
long j = 1L;
for(long i = 1;i < 10000000000L;i++){
j = j + 1;
}
Date date2 = new Date();
System.out.println(formatter.format(date2));

}

}
eclipse编写并且编译,基于java 5.0,同样在命令行下运行执行时间是1分11秒。

这样看来至少是在整数运算上java的性能就差很多啊!为什么会这样呢?
或者是我的测试程序有问题,请指教!

2008-07-14

生活应该是积极有目标的
周末为了房子装修的事情跑了两天,每天晚上都11点才到家。尤其是昨天,从早晨开始去北四环的居然之家选购主材,到下午找装修公司,设计方案,一天很忙,估计来回的跑的路程大概在100公里以上,路上消耗的时间大概是3个小时。
很忙,很累,很充实,这就是我的感受。
当一个人积极去面对一些事情的时候也许事情并不是那么困难。之所以很早说要装修房子,但是事情却没有实质的进展,原因不外乎是以前一想到装修房子就苦恼——没有经验,没有足够的资金,等。这些问题导致我从潜意识里面就去逃避装修这个事情。结果是:逛了两次建材,找了两次装修公司,每次的感觉都像是在煎熬——特别难受。那么装修也可想而知,根本没有开始。最关键的是这几次都没有做出任何决定,也没有推进这件事情。
昨天就不同了,虽然只有1天,但是事情的效果却大于以往的总和。究其原因不外乎几个:
1.我主动去做这件事情,主动去推动这件事情。
2.我有计划,并且严格的按照计划去执行,虽然结果还是有些偏差。
就这件事情,我的态度和心情也不一样了,我现在会主动的去思考装修的方案,并且我认为这是一个非常有意义,并且我愿意去做的事情。做起来很累,但是也很有成就感,也很愉快。
其实我想表达的是这几点:
1.当事情来得时候要去面对他,逃避是没有用的,如果不解决心理总是惦记着也是挺烦恼的(至少我是这样)。
2.当面对的事情要去做的时候,需要有一个明确的时间表和如何去处理的步骤。
3.当有了上面的条件后需要在事情的关键点上有一个有力的执行,确保下面的步骤。
4.当这个事情的确控制不了的时候或者说结果不如意的时候,那么你应当放弃这些东西,不要给自己心里上留下包袱。愉快的心情会使生活更加有意义。
总结一下四点:面对、处理、执行、放弃。很简单的四条原则,但是要做到还是不容易的!呵呵,说了一大堆没头没脑的话,权当记流水帐了。