none
WSLでgettimeofdayシステムコールの呼び出し結果が遅延する RRS feed

  • 質問

  • お世話になります。

    WSLでgettimeofdayシステムコールの返却値が奇妙な値を示したためご報告いたします。

    WSLの性能測定のため、分岐のないコード(add命令を直線的に300個並べたコード)を実行し、

    その区間の実行時間をgettimeofdayシステムコールと、rdtsc命令のサイクル数で採取しました。

    このプログラムをCygwinとUbuntu(Hyper-V)、WSLの3つのプラットフォーム間で実行したところ、

    なぜかgettimeofdayで計測した実行時間ベースで、WSL(4.5ms)が他の二つ(Ubuntu:0.1ms, Cygwin:0.4ms)より10倍以上遅い結果になりました。

    ところが、rdtsc命令で採取したサイクル数は全てのプラットフォーム間で安定して500サイクル程度に収まっています。

    gettimeofdayシステムコールの実行に異常な時間がかかっている可能性を考慮し、

    gettimeofdayシステムコールだけを繰り返すコードをtimeコマンドで計測しましたが、有意な差は得られませんでした。

    おそらく、gettimeofdayシステムコールはマイクロ秒単位の計測時間に問題があるのではないかと疑っています。

    2019年10月5日 0:30

すべての返信

  • systemerror360さん、こんにちは。フォーラムオペレーターのFarenaです。

    TechNetフォーラムにご投稿くださいましてありがとうございます。

     

    WSLの問題について、下記のリンクで適切なアドバイスが得られやすいかと思われます。

    https://github.com/Microsoft/WSL

     

    同じ問題を抱えている方と経験がある方、ご意見を共有頂ければ幸いです


    Please remember to mark the replies as answers if they help.
    If you have feedback for TechNet Subscriber Support, contact tnmff@microsoft.com.

    2019年10月8日 7:33
    モデレータ