<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ??一站式輕松地調用各大LLM模型接口,支持GPT4、智譜、豆包、星火、月之暗面及文生圖、文生視頻 廣告
                ## dtrace 盡管諸如`strace(1)`和`truss(1)之類的調試實用程序可以跟蹤進程產生的系統調用,但是它們可能很慢,因此不適合解決繁忙的 UNIX 系統上的性能問題。另一個名為**DTrace**的工具可讓你在系統范圍內查看幕后發生的情況,而無需修改或重新編譯任何內容。它還使你可以在生產環境上工作,并動態監視正在運行的程序或服務器進程,同時又不會造成很大的開銷。 > Tip: 盡管有`dtrace(1)`有 Linux 版本,但`dtrace(1)`工具在 macOS 和其他 FreeBSD 變體上效果最佳。 本小節將使用 macOS 自帶的`dtruss(1)`命令行實用程序,它只是一個`dtrace(1)`腳本,該腳本顯示了進程的系統調用,使我們不必編寫`dtrace(1)`代碼。請注意,`dtrace(1)和`dtruss(1)`都需要 root 權限才能運行。 ```shell $ sudo dtruss godoc ioctl(0x3, 0x80086804, 0x7FFEEFBFEC20) = 0 0 close(0x3) = 0 0 access("/AppleInternal/XBS/.isChrooted\0", 0x0, 0x0) = -1 Err#2 thread_selfid(0x0, 0x0, 0x0) = 1895378 0 geteuid(0x0, 0x0, 0x0) = 0 0 getegid(0x0, 0x0, 0x0) = 0 0 ``` `dtruss(1)`的工作方式與`strace(1)`實用程序相同。與`strace(1)`類似,當與`-c`參數一起使用時,`dtruss(1)`將打印系統調用計數: ```shell $ sudo dtruss -c go run unsafe.go 2>&1 CALL COUNT access 1 bsdthread_register 1 getuid 1 ioctl 1 issetugid 1 kqueue 1 write 1 mkdir 2 read 244 kevent 474 fcntl 479 lstat64 553 psynch_cvsignal 649 psynch_cvwait 654 ``` 上面的輸出將迅速告知你 Go 代碼中的潛在瓶頸,甚至可以幫你比較兩個不同的命令行程序的性能。 > Tip: 諸如`strace(1)`,dtrace(1)和 dtruss(1)`之類的實用工具需要一段時間適應熟悉,但是這樣的工具可以使我們的生活變得更加輕松和舒適,我強烈建議你立即開始學習至少一個這樣的工具。 你可以閱讀 Brendan Gregg 和 Jim Mauro 寫的*DTrace: Dynamic Tracing in Oracle Solaris, Mac OS X*和*FreeBSD* ,或訪問http://dtrace.org/,以了解有關`dtrace(1)`實用程序的更多信息。 雖然,`dtrace(1)`比`strace(1)`功能強大得多,因為它具有自己的編程語言。但是,當你要做的只是監視可執行文件的系統調用時,`strace(1)`的用途更加廣泛。
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看