gpt4 book ai didi

linux - 在 Go 中,为什么 "File.Readdirnames"会进行 "clock_gettime"系统调用?

转载 作者:IT王子 更新时间:2023-10-29 00:46:27 25 4
gpt4 key购买 nike

作为 this question 的跟进,我正在尝试编写一个 Go 程序,它只在没有不必要的系统调用的情况下有效地列出文件名。这是我到目前为止所拥有的:

package main

import (
"os"
"fmt"
"log"
)

func main() {

// Open directory and check for errors
f, err := os.Open(".")
if err != nil {
log.Fatal(err)
}

// Get file names
files, err := f.Readdirnames(0)
if err != nil {
log.Fatal(err)
}

// Print files
fmt.Print(files, "\n")
}

但是,当我运行 strace 时,我会看到以下许多内容:

clock_gettime(CLOCK_REALTIME, {1406822401, 824793686}) = 0

这与什么有关?我怎样才能使这段代码更有效率?

最佳答案

我在吐口水,但我认为这与 Go 的内置调度程序和垃圾收集有关。

简短的回答是,go 永远不会像 C 一样快,因为它提供了 C 所没有的所有额外运行时功能。

您列出的代码可能是在 Go 中执行您想要的操作的最快方法。

关于linux - 在 Go 中,为什么 "File.Readdirnames"会进行 "clock_gettime"系统调用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25063756/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com