发表于: 2017-08-28 23:40:53
3 1067
【今日完成】
首先不得不说,于博韬师兄的日报真的给了我很大帮助。
按于博涛师兄的Jmeter配置步骤,一步一步把Jmeter搭建起来。
这里有一个请求默认值,一个HTTP请求,三个监听器。
我随便测了一下JSP页面,这就有意思了,居然Error率有33.3%。我看博韬师兄这个时候Error率还是0啊,难不成我的阿里云有问题?搞不懂了。。。只能说太脆弱了吧。
感觉Jmeter还是蛮直观蛮简单的,先设置好一个压力范围,然后启动,通过数据来得出结论,是个比较好用的工具。
JAVA基础知识:排序
这里介绍三种比较常用的排序:
冒泡排序
选择排序
归并排序
这三个分别是什么意思呢?
假设这里有8个数87654321
我们想让他正序排列,那么就会移动数字的位置,最后变成12345678.
这个算法的名字由来是因为越大的元素会经由交换慢慢“浮”到数列的顶端,故名。
什么意思呢,就是从头开始,两两比较。在这个例子中就是,
先是8和7比,8比7大,交换位置;变成78654321
然后是8和6比,8比6大,交换位置;变成76854321
依次进行,进行完第一轮时,变成了;765433218
这时候8已经在正确的位置上了,然后进行第二轮。
这样进行一轮,便至少有一个数在正确的位置上。总共进行8轮*8次,所以时间复杂度为n²。
选择排序(Selection sort)
是一种简单直观的排序算法。它的工作原理是每一次从待排序的数据元素中选出最小(或最大)的一个元素,存放在序列的起始位置,直到全部待排序的数据元素排完。
什么意思呢,就是我们假设先排小的。在这个例子中就是,
计算机先在87654321依次巡视一遍,发现,啊,原来1是最小的,然后把1与占据1位置的数交换(这里是8占了1的位置);变成17654328
第二步,计算机在17654328巡视一遍,不过这里不考虑1了,因为1已经排好了。发现,啊这次2是最小的,然后把2和占据2位置的数交换一遍,这里是7占据了2的位置;变成12654378
依次进行
最坏情况,总共进行8轮*8次,所以时间复杂度为n²。
归并排序(MERGE-SORT)
是建立在归并操作上的一种有效的排序算法,该算法是采用分治法(Divide and
Conquer)的一个非常典型的应用。将已有序的子序列合并,得到完全有序的序列;即先使每个子序列有序,再使子序列段间有序。若将两个有序表合并成一个有序表,称为二路归并。
还是这个例子,归并排序中心思想是二分法。
先分成8765 和4321,然后只看左边8765
继续分,分为87和65,只看左边
继续分,分为8与7,这时候排序,7比8小,所以变成“78”
这时候退回去看65那组,明显该交换,变成“56”。
注意这里,“78”,“56”其实都是在他们那个小组中是有序的了。
然后比较“78”与“56”,先从每组提取最小的。这里6比7小,
排成57XX,XX表示还不确定,然后进行第二步,7再与6比;
排成了5678。这时候左半边排完,再以相同的方式排右边的“4321”。
归并排序速度是优于冒泡与选择的,时间复杂度为N*logN,而不是N²。
思考:为何归并要快一些?
我觉得是归并充分利用了有效信息。像选择与冒泡,明明每个元素都审视过了,但每次只能记住一个最值(最大或最小),然后把其余的都忘掉了,第二遍时又要找最值。这样做了很多无用功,而归并排序充分利用了信息,把一整块分成一个一个小组。
【明日计划】
今天Jmeter会用了,但有些参数还是不知道什么意思。明天准备研究一下。
然后是下载Memcache,进行使用。
【今日收获】
使用Jmeter测了一下自己的网页,然后学习了排序的基础算法。
【任务进度】
无延期风险。
http://task.ptteng.com/zentao/project-burn-268.html
评论