Golang 获得文件名最快的代码实现方式比较
发布时间:2020-12-16 18:12:04 所属栏目:大数据 来源:网络整理
导读:package main import ( "fmt" "os" "path/filepath" "strings" "time" ) //获得文件名最快的代码实现方式比较 func main() { filename := "/root/Desktop/模特唐嘉灵2.jpg" //方案一 startTime1 := time.Now() for i := 0; i 1000000; i++ { _ = filepath.Bas
package main
import ( "fmt" "os" "path/filepath" "strings" "time" ) //获得文件名最快的代码实现方式比较 func main() { filename := "/root/Desktop/模特唐嘉灵2.jpg" //方案一 startTime1 := time.Now() for i := 0; i < 1000000; i++ { _ = filepath.Base(filename) } endTime1 := time.Now() //方案二 startTime2 := time.Now() for i := 0; i < 1000000; i++ { start := strings.LastIndex(filename,string(os.PathSeparator)) + 1 data := []rune(filename) _ = string(data[start:]) } endTime2 := time.Now() //方案三 startTime3 := time.Now() for i := 0; i < 1000000; i++ { arr := strings.Split(filename,string(os.PathSeparator)) _ = arr[len(arr)-1] } endTime3 := time.Now() var duration1 time.Duration = endTime1.Sub(startTime1) var second1 float64 = duration1.Seconds() var duration2 time.Duration = endTime2.Sub(startTime2) var second2 float64 = duration2.Seconds() var duration3 time.Duration = endTime3.Sub(startTime3) var second3 float64 = duration3.Seconds() //输出运行耗时: fmt.Println(second1) //方案一 fmt.Println(second2) //方案二 fmt.Println(second3) //方案三 } 控制台打印输出百万次获得文件名称的需要的时间: 2017/06/22 11:44:01 debugger.go:97: launching process with args: [/root/code/go/src/contoso.org/hello/debug]
(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |