Linuxのstrftime()で過剰なstat(/ etc / localtime)呼び出しを回避する方法は?

我ら:

私の記録処理プログラムをstraceの下で数分間実行したままにしました。

これは、200 000 000を超える通話をその分で示しstat("/etc/localtime",..)、少し過剰で不要なように聞こえます。

straceの出力は次のようになります。

write(1, "C137015 393393093052629137110 47"..., 16384) = 16384
stat("/etc/localtime", {st_mode=S_IFREG|0644, st_size=2225, ...}) = 0
stat("/etc/localtime", {st_mode=S_IFREG|0644, st_size=2225, ...}) = 0
stat("/etc/localtime", {st_mode=S_IFREG|0644, st_size=2225, ...}) = 0
stat("/etc/localtime", {st_mode=S_IFREG|0644, st_size=2225, ...}) = 0
stat("/etc/localtime", {st_mode=S_IFREG|0644, st_size=2225, ...}) = 0
stat("/etc/localtime", {st_mode=S_IFREG|0644, st_size=2225, ...}) = 0
stat("/etc/localtime", {st_mode=S_IFREG|0644, st_size=2225, ...}) = 0
stat("/etc/localtime", {st_mode=S_IFREG|0644, st_size=2225, ...}) = 0
stat("/etc/localtime", {st_mode=S_IFREG|0644, st_size=2225, ...}) = 0
stat("/etc/localtime", {st_mode=S_IFREG|0644, st_size=2225, ...}) = 0
stat("/etc/localtime", {st_mode=S_IFREG|0644, st_size=2225, ...}) = 0
stat("/etc/localtime", {st_mode=S_IFREG|0644, st_size=2225, ...}) = 0
stat("/etc/localtime", {st_mode=S_IFREG|0644, st_size=2225, ...}) = 0
stat("/etc/localtime", {st_mode=S_IFREG|0644, st_size=2225, ...}) = 0
stat("/etc/localtime", {st_mode=S_IFREG|0644, st_size=2225, ...}) = 0
stat("/etc/localtime", {st_mode=S_IFREG|0644, st_size=2225, ...}) = 0
stat("/etc/localtime", {st_mode=S_IFREG|0644, st_size=2225, ...}) = 0
stat("/etc/localtime", {st_mode=S_IFREG|0644, st_size=2225, ...}) = 0
stat("/etc/localtime", {st_mode=S_IFREG|0644, st_size=2225, ...}) = 0
stat("/etc/localtime", {st_mode=S_IFREG|0644, st_size=2225, ...}) = 0
stat("/etc/localtime", {st_mode=S_IFREG|0644, st_size=2225, ...}) = 0
stat("/etc/localtime", {st_mode=S_IFREG|0644, st_size=2225, ...}) = 0
stat("/etc/localtime", {st_mode=S_IFREG|0644, st_size=2225, ...}) = 0
stat("/etc/localtime", {st_mode=S_IFREG|0644, st_size=2225, ...}) = 0
stat("/etc/localtime", {st_mode=S_IFREG|0644, st_size=2225, ...}) = 0
stat("/etc/localtime", {st_mode=S_IFREG|0644, st_size=2225, ...}) = 0
stat("/etc/localtime", {st_mode=S_IFREG|0644, st_size=2225, ...}) = 0
read(0, "\224q\1\207\0\0\202\1\4\203\1\4\204\1\1\205\1\1\206\1\7\207\1\6\211\1\22\212\1\22\213\1"..., 16384) = 16384

本質的には、処理されたすべてのレコードに対して1つのstat()呼び出しであることが判明し、原因はこのごく普通のコード行であることが判明しました

strftime(call->date_time,DATELEN,"%Y%m%d %H%M%S",&tm_buf);

それで、すべての呼び出しでstat(/ etc / localtime)を呼び出すstrftime()をどのように回避できますか?

Linus Kleen:

タイムゾーンが設定されていないため、そうなっている可能性があります。それを見つけるためのstrftimeクエリ/etc/localtime

TZ環境変数を設定してみてください

これがその動作のリンクです

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

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

編集
0

コメントを追加

0

関連記事

分類Dev

複数のAJAX呼び出しを回避する方法は?

分類Dev

複数のAJAX呼び出しを回避する方法は?

分類Dev

Node.jsで無限の再帰呼び出しを回避/防止する方法は?

分類Dev

メソッド呼び出しのネストを回避する方法は?

分類Dev

関数呼び出しの深さ制限を回避する方法は?

分類Dev

コンストラクターの呼び出しを回避する方法は?

分類Dev

LINQ式で動的呼び出しを回避する方法

分類Dev

基本クラスでpoilymophic呼び出しを回避する方法

分類Dev

複数のAjax呼び出しを回避する方法

分類Dev

C#-複数のif呼び出しを回避する方法

分類Dev

.NETのFile.OpenがUNCパスで過剰なSMB呼び出しを行うのはなぜですか?

分類Dev

テンプレート関数のあいまいな呼び出しを回避する方法は?

分類Dev

/ etc / localtimeの内容を調べるにはどうすればよいですか?

分類Dev

ラムダトリガーの再帰呼び出しを回避する方法

分類Dev

/ etc / localtimeと$ TZ以外に `date`に影響を与えるものは何ですか?

分類Dev

/ etc / localtimeと$ TZ以外に `date`に影響を与えるものは何ですか?

分類Dev

Flutterでnullで呼び出される[]を回避する方法

分類Dev

funcallの二重呼び出しを回避する

分類Dev

/etc/vconsole.confの呼び出し可能なフォント名を一覧表示します

分類Dev

IAsyncOperation につながる呼び出しを停止する方法は?

分類Dev

djangoテンプレートで過剰なクエリを回避する方法は?

分類Dev

Facebook AdsAPI呼び出しで「リクエストのデータが多すぎる」を回避する方法

分類Dev

レイズラーの後に呼び出されたprocを中止するtSQLtを回避する方法は?

分類Dev

起動時にgetaddrinfo()を呼び出すプロセスは、不正な/etc/resolv.confで永続的にスタックしますか?

分類Dev

/etc/.java /etc/.udev/etc/.initramfsに関するrkhunterの警告

分類Dev

/etc/.java /etc/.udev/etc/.initramfsに関するrkhunterの警告

分類Dev

アプリがsplitViewに移動するときにonCreate()の呼び出しを回避する方法

分類Dev

VisualVMで呼び出しツリーを表示する方法は?

分類Dev

Goでnet.Dial呼び出しを中止する方法は?

Related 関連記事

  1. 1

    複数のAJAX呼び出しを回避する方法は?

  2. 2

    複数のAJAX呼び出しを回避する方法は?

  3. 3

    Node.jsで無限の再帰呼び出しを回避/防止する方法は?

  4. 4

    メソッド呼び出しのネストを回避する方法は?

  5. 5

    関数呼び出しの深さ制限を回避する方法は?

  6. 6

    コンストラクターの呼び出しを回避する方法は?

  7. 7

    LINQ式で動的呼び出しを回避する方法

  8. 8

    基本クラスでpoilymophic呼び出しを回避する方法

  9. 9

    複数のAjax呼び出しを回避する方法

  10. 10

    C#-複数のif呼び出しを回避する方法

  11. 11

    .NETのFile.OpenがUNCパスで過剰なSMB呼び出しを行うのはなぜですか?

  12. 12

    テンプレート関数のあいまいな呼び出しを回避する方法は?

  13. 13

    / etc / localtimeの内容を調べるにはどうすればよいですか?

  14. 14

    ラムダトリガーの再帰呼び出しを回避する方法

  15. 15

    / etc / localtimeと$ TZ以外に `date`に影響を与えるものは何ですか?

  16. 16

    / etc / localtimeと$ TZ以外に `date`に影響を与えるものは何ですか?

  17. 17

    Flutterでnullで呼び出される[]を回避する方法

  18. 18

    funcallの二重呼び出しを回避する

  19. 19

    /etc/vconsole.confの呼び出し可能なフォント名を一覧表示します

  20. 20

    IAsyncOperation につながる呼び出しを停止する方法は?

  21. 21

    djangoテンプレートで過剰なクエリを回避する方法は?

  22. 22

    Facebook AdsAPI呼び出しで「リクエストのデータが多すぎる」を回避する方法

  23. 23

    レイズラーの後に呼び出されたprocを中止するtSQLtを回避する方法は?

  24. 24

    起動時にgetaddrinfo()を呼び出すプロセスは、不正な/etc/resolv.confで永続的にスタックしますか?

  25. 25

    /etc/.java /etc/.udev/etc/.initramfsに関するrkhunterの警告

  26. 26

    /etc/.java /etc/.udev/etc/.initramfsに関するrkhunterの警告

  27. 27

    アプリがsplitViewに移動するときにonCreate()の呼び出しを回避する方法

  28. 28

    VisualVMで呼び出しツリーを表示する方法は?

  29. 29

    Goでnet.Dial呼び出しを中止する方法は?

ホットタグ

アーカイブ