您的位置:首页 > 其它

HIT软件构造期末复习笔记7

2019-06-20 00:17 211 查看

实验五总体来说,要轻松一些,当然也只是相对来说。

与之前的内容不同,这次实验的内容是以对现有内容进行分析为主。抛开后面的那些分析的内容不谈,前面的内容有两部分,一个是对代码书写规范进行处理,利用的工具是checkstyle,另外一个就是对IO性能进行的分析。

首先是对于代码书写规范内容的学习。这个软件也是真的好用,对于某些内容的书写规范处理的相当到位。不仅仅是缩进的问题,还有包括空格的处理,ifelse的写法,甚至包括变量的命名。对于这个工具,我唯一有些不喜欢的就是悬进两个空格的问题,其实对我而言还是之前的一个tab要看起来好,2个空格总是让我看起来有些拥挤。不过这种代码书写规范我记下了,不知道以后的工作单位会有什么样的规范。当然,除去这种看起来美的部分,适当的javadoc和注释也是很必要的,这个也是对于团队设计时的一个十分重要的内容。

IO性能的话,是对java拥有的不同IO进行的一次比较,并且这个不同的IO在不同的场景性能也是不同的。其实就我个人而言,我觉得对于我们一般的使用应该是都差不多的,因为或许在一般情况下我们设计的应用软件用不到特别巨大的输入的吧。这里的巨大,其实对于几百万的数据读写速度也很宽,在至多几千毫秒左右的时间就能结束,在本实验中,真正耗时的是我读入的东西构造整个系统的时候的过程。这也更加说明了我设计的东西不太行。

话说回来,可能目前我个人的眼界还没那么高吧,我真的觉得对于某一个软件几百万的读入已经够用了,并且可能有很多东西是利用sql一类的东西进行分析?至少在这里我觉得文件读入的东西是线性增长的,如果几百万扩大成几亿,或许读入时间也才增长几百倍而已(不到1000s)。因此,就我个人而言,我觉得对于一个程序的性能,占主要因素的应该还是程序的构建以及运行时候的算法。比如对于我最初的设计,如果我不把一些内容删除掉程序很难运行。因此(并非不承认这方面本身的内容),我觉得对于最终的设计的时候提高性能,还是在设计的时候设计一些优化的结构,并且最终在算法的使用上进行优化。

至于后面的许多东西,讲道理,我最开始是及其头晕目眩的,并且JVM与CS一样,似乎都有着一套完整的理论体系。因此我米有进行过多的挖掘,仅仅是对于许多内容在浅层次上进行了了解。不过,即便是在浅层次,我也能感受到一些内容对于计算机科学的领域的重要性,不说别的,单单说进程和现场对于底层方面的相关内容,应该就不是几行代码能够解决的了。对于内存占用的跟踪,对于我们这些初学者来说,似乎也很遥远——我个人觉得,就目前而言,我能把相关程序写明白就很不错了,实在难以(还是在底层上)进行更多的优化了。

这次实验对于我而言更多的还是视野上的拓展。截止目前为止,对于程序的性能优化,已经有了不同的认识,最后还有一个实验六对于线程的使用问题。把线程这个及其庞大的问题抛开不谈,目前程序的性能优化方式中,其实最主要的应该还是在设计时给出一个很好的结构与ADT,其次就是算法,最后应该才是在使用不同函数上的性能(如String与StringBuilder、不同的IO方式等等)。因此,如果不考虑多线程的使用,程序优化应该极少考虑底层类库的优化(如各种Collection和Object),最多考虑的还是我们程序员在整体设计时的东西。而算法,目前看来,似乎很少有问题不能使用我们在算法设计课上讲过的内容,即便真的有一些新的问题难以解决,网上也一定会有现成的资源,而至于一些国际顶尖的性能优化算法,除非极其轰动(比如对复杂度有着数量级的改变而非系数的改变),否则性能也不会差太多,如果不是追求极致的性能,那么这些应该都在接受的范围内。

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: