package main

import "fmt"
import "os"
import "flag"
import "bufio"
import "io" import "time"
import "strconv"
//import "algorithm/qsort" import "algorithm/bubblesort" var infile *string = flag.String("i","unsorted.dat","file container unsorted")
var outfile *string =flag.String("o","sorted.dat","file container sorted")
var algorithm *string =flag.String("a","bubblesort","sort algortihm") func readValue (infile string)(values []int,err error){
file,err := os.Open(infile)
if err != nil{
fmt.Println("open failed")
return
}
defer file.Close()
br := bufio.NewReader(file) values =make([]int ,)
for{
line,isprefix,err1 := br.ReadLine()
if err1 !=nil{
if err1 !=io.EOF{
err=err1
}
fmt.Println("readline error")
// return
break
}
if isprefix {
fmt.Println("too long")
return
}
str:= string(line) value ,err2 :=strconv.Atoi(str) if err2 !=nil{
err2=err
fmt.Println("conv failed")
return
}
values = append(values,value)
}
return }
func writeValue(values []int ,outfile string) error{
file,err1 :=os.Create(outfile)
if err1 !=nil {
//err=err1
fmt.Println("write is errr")
return err1
}
defer file.Close() for _,value := range values{
str :=strconv.Itoa(value)
file.WriteString(str+"\n")
}
return nil
func main(){
flag.Parse()
if infile != nil{
fmt.Println("inline =",*infile,"outfile =:",*outfile,"algorithm =: ",*algorithm)
}
values,err := readValue(*infile) if err ==nil{
t1 :=time.Now()
// switch *algorithm {
// case "qsort":
// qsort.Quick(values)
// case bubblesort: bubblesort.BubbleSort(values)
// default:
// fmt.Println("switch error")
// }
t2:=time.Now()
fmt.Println("sort time is %d",t2.Sub(t1))
// fmt.Println(values)
writeValue(values,*outfile)
}else{
fmt.Println("readLIne is ERROR")
}
}

上面的是src中的主文件

algorithm中的主要是排序算法,我这里只有bubblesort,额外还可以有其他的,对于测试文件,我们只需要写_test.go就可以了,

我们可以在主程序中,使用swith进行选择,但是这里的swith遇到一个问题,就是当go build sorter的时候,总是报without selecor的错误,这个问题现在我还没有解决,所有我注释掉了,我们需要在简历一个unsortred.dat的文件,至于输出文件,通过os.Create

自己就创建了。

go build algorithm/bubblesort

go install algorithm/bubblesort

go build sorter生出二进制文件

./sorter -i unsorted -o sorted

package bubblesort

func BubbleSort( values [] int){
flag :=false for i := ;i<len(values)- ;i++{
flag =false
for j:= ;j<len(values)-i- ;j++{
if values[j+] <values[j]{
values[j+],values[j] =values[j],values[j+]
flag=true
}
}
if flag==false{
break
} }
}
package bubblesort

import "testing"

func TestBubbleSort1(t *testing.T){
values :=[]int{,,,,}
BubbleSort(values)
if values[] != || values[]!= || values[] != || values[] != ||values[] !={
t.Error("bubblesor is falied ",values)
}
}

go 测试sort性能的更多相关文章

  1. 使用SQLIO测试磁盘性能

    SQLIO 是一个用于测试存储系统能力的命令行工具,用以获取存储系统相关的性能指标,以判断系统的 I/O 处理能力. 在微软的网站可以下载 SQLIO 的安装包,安装后目录中会出现如下文件: EULA ...

  2. hdparm测试硬盘性能

    <1>Centos安装hdparm测试硬盘性能 一.安装hdparm yum install hdparm -y Linux学习,http:// linux.it.net.cn 二.评估读 ...

  3. Android IOS WebRTC 音视频开发总结(五六)-- 如何测试网络性能?

    本文主要介绍如何测试网络性能,文章来自博客园RTC.Blacker,欢迎关注微信公众号blacker,更多详见www.rtc.help 网络性能直接决定了视频通话效果,比如qq,很多时候我们我们觉得通 ...

  4. Apache JMeter--网站自动测试与性能测评

    Apache JMeter--网站自动测试与性能测评 2013-02-28 15:48:05 标签:Jmeter From:http://bdql.iteye.com/blog/291987 出于学习 ...

  5. iozone测试磁盘性能

    什么是iozone? iozone是一个文件系统的benchmark工具,可以测试不同的操作系统中文件系统的读写性能. 可以测试 Read, write, re-read,re-write, read ...

  6. 使用iozone测试磁盘性能

    IOzone是一个文件系统测试基准工具.可以测试不同的操作系统中文件系统的读写性能.可以通过 write, re-write, read, re-read, random read, random w ...

  7. 【转】dd命令详解及利用dd测试磁盘性能

    dd命令详解及利用dd测试磁盘性能   linux下dd命令详解 名称: dd 使用权限: 所有使用者 manpage 定义: convert and copy a file 使用方式: dd [op ...

  8. Linux 中使用 dd 测试磁盘性能

    翻译自 : Linux I/O Performance Tests using dd 基本说明 dd 可以用来做简单的低级别复制文件. 这样做, 一般都是可一直直接访问设备文件. 需要说明的是, 错误 ...

  9. YCSB benchmark测试mongodb性能——和web服务器测试性能结果类似

    转自:http://blog.sina.com.cn/s/blog_48c95a190102v9kg.html         YCSB(Yahoo! Cloud Serving Benchmark) ...

随机推荐

  1. Pycharm实用技巧汇总

    Pycharm中输入 a = list 按住Command点鼠标左键,即可查看该类下的所有用法,如下图 获取类中有哪些成员

  2. 我拖拖拖--H5拖放API基础篇

    不要搞错,本文不是讲如何拖地的.看过<javascript精粹>朋友应该知道,他实现拖放的过程比较复杂,现在时代不同了,我们用H5的新的拖放API就能非常方便的实现拖放效果了.最近在园子见 ...

  3. python3 selenium 登录操作

    使用场景: 测试过程中,有的时候需要登录才可以进行其他操作 举例说明: # coding=utf-8 """ :author: 花花测试 :time: 2017.05.0 ...

  4. 【Objective-C 基础】3.类

     1.类 OC中类分为两个文件: .h类的声明文件,用于声明变量.函数. .m类的实现文件,用于实现.h中的函数 类的声明使用关键字@interface @end 类的实现使用关键字@implemen ...

  5. 深入浅出理解yield

    索引 转载部分内容来自:http://www.jianshu.com/p/d09778f4e055 [彻底理解yield] http://blog.csdn.net/haskei/article/de ...

  6. Jquery将<a>链接变为post请求

  7. 与redmine对接

    redmine使用的版本为 2.3.01.打开rest web service2.jar依赖 <dependency> <groupId>com.taskadapter< ...

  8. hdu2196Computer 树形DP

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2196 思路: 一看就是一道树形DP的题目,对于一个节点来说,到它的最远距离的路径可能来于子树,也可能来 ...

  9. 解决ubuntu的gedit显示中文乱码问题

    http://www.cnblogs.com/zhcncn/p/4032321.html

  10. 关于Python编码,超诡异的,我也是醉了

    Python的编码问题,真是让人醉了.最近碰到的问题还真不少.比如中文文件名.csv .python对外呈现不一致啊,感觉好不公平. 没图说个JB,下面立马上图.   我早些时候的其他脚本,csv都是 ...