Goで、「File.Readdirnames」が「clock_gettime」システムコールを実行するのはなぜですか?

ベルミンフェルナンデス:

この質問のフォローアップとして、私は不必要なシステムコールなしで効率的な問題でファイル名のみをリストする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でやりたいことを行う最も速い方法です。

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

HPETを使用してx86_64で(非VDSO)clock_gettime()システムコールを表示する必要がありますか?

分類Dev

clock_gettime()で_COARSEバリアントを使用しても、sys_clock_gettime()システムコールが呼び出されます

分類Dev

clock_gettime(CLOCK_REALTIME、..)の呼び出しレイテンシが大きく変動するのはなぜですか?

分類Dev

複数のシステムコールでTCPソケットを実行すると速度が低下するのはなぜですか?

分類Dev

「cp-R--reflink = always」がbtrfsファイルシステムで標準コピーを実行するのはなぜですか?

分類Dev

「読み取り」が「カーネルモード」で実行されるシステムコールである必要があるのはなぜですか?

分類Dev

次のCコードがread()システムコールをスキップして次のwrite()システムコールを実行するのはなぜですか?

分類Dev

システムコールが失敗するのはなぜですか?

分類Dev

システムコールが異なるスタックを使用するのはなぜですか?

分類Dev

なぜexecveシステムコールはargv引数なしで「/ bin / sh」を実行できますが、「/ bin / ls」は実行できませんか?

分類Dev

現在の18.04.3システムが新しい18.04.3システムと同じカーネルを実行していないのはなぜですか?

分類Dev

sbrkシステムコールの実装が機能しないのはなぜですか?

分類Dev

sys_readシステムコールが新しい行を検出すると終了するのはなぜですか?

分類Dev

システムプロセスがディスクIOを実行しているのはなぜですか?

分類Dev

ストレスコマンドでstraceを実行すると、mallocと無料のシステムコールが表示されないのはなぜですか

分類Dev

コンテナ内でPythonスクリプトを実行するためにシェルスクリプトが必要なのはなぜですか?

分類Dev

mkdir()とrmdir()のPOSIXシステムコールが異なるヘッダーファイルで行われるのはなぜですか?

分類Dev

waitpidシステムコールを子プロセスでのみ使用できるのはなぜですか?

分類Dev

amd64 linuxでシステムコール番号が異なるのはなぜですか?

分類Dev

clock_gettimeはUTC時間ですか、それともローカルタイムゾーンですか?

分類Dev

システムコールでシェルコードを終了できないのはなぜですか?

分類Dev

Erlangブートスクリプトがコンソールからは機能するが、initシステム(sysvinit、upstart、systemd)から実行すると機能しないのはなぜですか?

分類Dev

システムが出力する結果が毎回変わるのはなぜですか(java同時実行)。

分類Dev

複数のcloneシステムコールが単一のgoサブルーチンを呼び出すのはなぜですか?

分類Dev

空白なしでJavaのパイプラインでシステムコマンドを実行すると失敗するのはなぜですか?

分類Dev

xdebugセッションでコードをステップスルーしながら任意のphpコードを実行することは可能ですか?

分類Dev

x86-64 LinuxシステムコールがRCXを変更するのはなぜですか、その値はどういう意味ですか?

分類Dev

UnixがFATファイルシステムの実行可能フラグを設定するのはなぜですか?

分類Dev

time()がシステムコールを呼び出さないのはなぜですか?

Related 関連記事

  1. 1

    HPETを使用してx86_64で(非VDSO)clock_gettime()システムコールを表示する必要がありますか?

  2. 2

    clock_gettime()で_COARSEバリアントを使用しても、sys_clock_gettime()システムコールが呼び出されます

  3. 3

    clock_gettime(CLOCK_REALTIME、..)の呼び出しレイテンシが大きく変動するのはなぜですか?

  4. 4

    複数のシステムコールでTCPソケットを実行すると速度が低下するのはなぜですか?

  5. 5

    「cp-R--reflink = always」がbtrfsファイルシステムで標準コピーを実行するのはなぜですか?

  6. 6

    「読み取り」が「カーネルモード」で実行されるシステムコールである必要があるのはなぜですか?

  7. 7

    次のCコードがread()システムコールをスキップして次のwrite()システムコールを実行するのはなぜですか?

  8. 8

    システムコールが失敗するのはなぜですか?

  9. 9

    システムコールが異なるスタックを使用するのはなぜですか?

  10. 10

    なぜexecveシステムコールはargv引数なしで「/ bin / sh」を実行できますが、「/ bin / ls」は実行できませんか?

  11. 11

    現在の18.04.3システムが新しい18.04.3システムと同じカーネルを実行していないのはなぜですか?

  12. 12

    sbrkシステムコールの実装が機能しないのはなぜですか?

  13. 13

    sys_readシステムコールが新しい行を検出すると終了するのはなぜですか?

  14. 14

    システムプロセスがディスクIOを実行しているのはなぜですか?

  15. 15

    ストレスコマンドでstraceを実行すると、mallocと無料のシステムコールが表示されないのはなぜですか

  16. 16

    コンテナ内でPythonスクリプトを実行するためにシェルスクリプトが必要なのはなぜですか?

  17. 17

    mkdir()とrmdir()のPOSIXシステムコールが異なるヘッダーファイルで行われるのはなぜですか?

  18. 18

    waitpidシステムコールを子プロセスでのみ使用できるのはなぜですか?

  19. 19

    amd64 linuxでシステムコール番号が異なるのはなぜですか?

  20. 20

    clock_gettimeはUTC時間ですか、それともローカルタイムゾーンですか?

  21. 21

    システムコールでシェルコードを終了できないのはなぜですか?

  22. 22

    Erlangブートスクリプトがコンソールからは機能するが、initシステム(sysvinit、upstart、systemd)から実行すると機能しないのはなぜですか?

  23. 23

    システムが出力する結果が毎回変わるのはなぜですか(java同時実行)。

  24. 24

    複数のcloneシステムコールが単一のgoサブルーチンを呼び出すのはなぜですか?

  25. 25

    空白なしでJavaのパイプラインでシステムコマンドを実行すると失敗するのはなぜですか?

  26. 26

    xdebugセッションでコードをステップスルーしながら任意のphpコードを実行することは可能ですか?

  27. 27

    x86-64 LinuxシステムコールがRCXを変更するのはなぜですか、その値はどういう意味ですか?

  28. 28

    UnixがFATファイルシステムの実行可能フラグを設定するのはなぜですか?

  29. 29

    time()がシステムコールを呼び出さないのはなぜですか?

ホットタグ

アーカイブ