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

查看:228
本文介绍了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

这篇关于Golang取得代码运行时间的问题的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆