首页 > Golang取得代码运行时间的问题

Golang取得代码运行时间的问题

在测试golang的正则表达式时发现,取得代码运行时间很诡异,这么多代码的运行时间竟然是0。请大神解惑,下面是代码:

package main

import (
    "fmt"
    "regexp"
    "time"
)

func main() {
    text := `<img src="ddd.png"/><div>asdfa<span>44444444444</span>sdfasdf</div>laasdjflaskj555asdf<p>hjkhjk</p><img src="aaa.jpg"/>`

    t1 := time.Now()

    reg := regexp.MustCompile("(\\d)+") //查找所有的连续数字串
    d := reg.FindAllString(text, -1)
    fmt.Println(d)
    //[44444444444 555]
    //一维数组,所有匹配项

    reg = regexp.MustCompile("<div>.*?</div>")
    fmt.Println(reg.MatchString(text))
    //true  是否匹配正则表达式

    reg = regexp.MustCompile("<img (src)=\"(.*?)\"") //查找所有的img标签,包括子串
    dd := reg.FindAllStringSubmatch(text, -1)
    fmt.Println(dd)
    //[[<img src="ddd.png" src ddd.png] [<img src="aaa.jpg" src aaa.jpg]]
    //二维数组,每一行表示一个查找结果,每一列第0个元素表示匹配字串,第1个元素表示第1个子串,第2个元素表示第2个子串

    reg = regexp.MustCompile("a{2,}")
    ddd := reg.Split(text, -1)
    fmt.Println(len(ddd), ddd)
    //3 [<img src="ddd.png"/><div>asdfa<span>44444444444</span>sdfasdf</div>l | sdjflaskj555asdf<p>hjkhjk</p><img src=" | .jpg"/>]
    //用正则表达式分割字符串,以2个以上a进行分割

    reg = regexp.MustCompile("<div>(.*?)</div>")
    fmt.Println(reg.ReplaceAllString(text, "$1<br/>"))
    //正则替换,子串用$表示,返回替换后的字符串
    //<img src="ddd.png"/>asdfa<span>44444444444</span>sdfasdf<br/>laasdjflaskj555asdf<p>hjkhjk</p><img src="aaa.jpg"/>

    reg = regexp.MustCompile(`(\w+),(\w+)`)
    src := "Golang,World!"                    // 源文本
    dst := []byte("Say: ")                    // 目标文本(可写)
    template := "Hello $1, Hello $2"          // 模板
    match := reg.FindStringSubmatchIndex(src) // 解析源文本
    // 填写模板,并将模板追加到目标文本中
    fmt.Println(reg.ExpandString(dst, template, src, match))
    // "Say: Hello Golang, Hello World"
    j := 1
    for i := 0; i < 1000; i++ {
        j++
    }
    t2 := time.Now()
    fmt.Println("运行时间:", t2.Sub(t1))
    //很奇怪运行时间为什么是0???是time包取得的时间不准确吗?还是它们运行在不同的线程中?

}

我本地运行得到的结果是

运行时间: 329.076µs

不好意思,可能是liteIde的问题,看到上面的回答,我尝试在CMD下Build程序和运行程序,发现很正常。下次要吸取这个教训。我这里是

运行时间: 15.6001ms
【热门文章】
【热门文章】