<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>

                企業??AI智能體構建引擎,智能編排和調試,一鍵部署,支持知識庫和私有化部署方案 廣告
                Go語言環境安裝完成后,可以使用 go env命令查看環境變量,打開命令終端執行go env命令,輸出內容如下: ~~~ GOARCH="amd64" GOBIN="/Users/***/Desktop/go/bin" GOEXE="" GOHOSTARCH="amd64" GOHOSTOS="darwin" GOOS="darwin" GOPATH="/Users/***/Desktop/go" GORACE="" GOROOT="/usr/local/go" GOTOOLDIR="/usr/local/go/pkg/tool/darwin\_amd64" GCCGO="gccgo" CC="clang" GOGCCFLAGS="-fPIC -m64 -pthread -fno-caret-diagnostics -Qunused-arguments -fmessage-length=0 -fdebug-prefix-map=/var/folders/pr/llzpdzcn6n7crtrjmpmwyjxm0000gn/T/go-build496244169=/tmp/go-build -gno-record-gcc-switches -fno-common" CXX="clang++" CGO\_ENABLED="1" CGO\_CFLAGS="-g -O2" CGO\_CPPFLAGS="" CGO\_CXXFLAGS="-g -O2" CGO\_FFLAGS="-g -O2" CGO\_LDFLAGS="-g -O2" PKG\_CONFIG="pkg-config" ~~~ ~~~ > runtime 包 包含與 Go 的運行時系統交互的操作,例如控制 goroutines 的函數。 > 也包含 reflect 包使用的低級別的類型信息;查看 reflect 的文檔了解運行時類型的可編程接口。 > 以下環境變量($name 或 %name% 取決于主機操作系統)控制 Go 程序的運行時行為,其含義和用途可能會隨版本發布而變化。 ~~~ ### GOGC `GOGC`變量設置初始垃圾收集目標百分比。 當新分配的數據與上一次收集后剩余的活動數據的比率達到此百分比時,將觸發收集。 默認值為`GOGC = 100`。 設置`GOGC = off`會完全禁用垃圾收集器。 `runtime/debug`包的`SetGCPercent`函數允許在運行時更改此百分比。 ### GODEBUG `GODEBUG`變量控制運行時內的調試變量。 它是以逗號分隔的`name = val`對列表,用于設置這些命名變量: ~~~ allocfreetrace:設置?`allocfreetrace?=?1`?會導致對每個對象的分配和釋放進行概要分析和棧跟蹤。 clobberfree:設置?`clobberfree?=?1`?使垃圾回收器在釋放對象時用錯誤內容破壞對象的內存內容。 cgocheck: 設置?`cgocheck?=?0`?禁用使用?cgo?將?Go?指針錯誤傳遞到非?Go?代碼的所有包檢查。 設置?`cgocheck?=?1`(默認值)可以啟用相對便宜的檢查,這些檢查可能會遺漏一些錯誤。 設置?`cgocheck?=?2`?啟用昂貴的檢查,這些檢查不會遺漏任何錯誤,但是會導致程序運行速度變慢。 efence: 設置?`efence?=?1`?會導致分配器以某種模式運行,在該模式下每個對象都分配在一個唯一的頁面上,地址永遠不會被回收。 gccheckmark: 設置?`gccheckmark?=?1`?可以通過在?STW?時執行第二次標記傳遞來驗證垃圾收集器的并發標記階段。 如果第二次傳遞找到了一個并發標記未找到的可達對象,垃圾收集器將?panic。 gcpacertrace:設置?`gcpacertrace?=?1`?會導致垃圾收集器打印有關并發?pacer?內部狀態的信息。 gcshrinkstackoff: 設置?`gcshrinkstackoff?=?1`?禁止將?goroutines?移動到較小的棧上。 在這種模式下,goroutine?的棧只能增長。 gcstoptheworld: 設置?`gcstoptheworld?=?1`?禁用并發垃圾收集,使每個垃圾收集成為一個?STW?事件。 設置?`gcstoptheworld?=?2`?還會在垃圾收集完成后禁用并發清除。 ~~~ * * * ~~~ gctrace: 設置?`gctrace?=?1`?會導致垃圾收集器在每次收集時向標準錯誤輸出發出一行, 匯總收集的內存量和暫停的長度。此行的格式可能會發生變化。 目前格式是: gc?#?@#s?#%:?#+#+#?ms?clock,?#+#/#/#+#?ms?cpu,?#->#->#?MB,?#?MB?goal,?#?P 其中字段含義如下('#'?代表數字): ??????gc?#?????????????每次?GC?時遞增的?GC?編號 ??????@#s??????????????程序運行的秒數 ??????#%???????????????自程序啟動后在?GC?中花費的時間百分比 ??????#+...+#??????????GC?各階段的掛鐘時間(wall-clock)/CPU?時間 ??????#->#->#?MB???????GC?開始時的堆大小、GC?結束時的堆大小和活動堆大小 ??????#?MB?goal????????目標堆大小 ??????#?P??????????????使用的處理器數量 這些階段是?stop-the-world(STW)清除終止(sweep?termination), 并發標記和掃描,以及?STW?標記終止(mark?termination)。 `mark/scan`?的?CPU?時間被分解為輔助時間(根據分配執行的?GC)、后臺?GC?時間和空閑?GC?時間。 如果該行以?`"(forced)"`?結尾,則此?GC?由?`runtime.GC()`?調用強制執行。 ~~~ > **掛鐘時間:** > > 根據計算機的內部時鐘流逝的時間,這應該與外界的時間相匹配。 > > 這與 CPU 使用率無關; 它僅供參考。 > > > 如果掛鐘時間 < CPU 時間,那么您正在并行執行一個程序。 > > > > 如果掛鐘時間 > CPU時間,則表示您正在等待磁盤,網絡或其他設備。 ~~~ 將?`gctrace`?設置為任何大于?0?的值也會導致垃圾收集器在將內存釋放回系統時發出摘要。 將內存返回到系統的這個過程稱為清除(`scavenging`)。 此摘要的格式可能會更改。 目前格式是: ????scvg#:?#?MB?released??printed?only?if?non-zero ????scvg#:?inuse:?#?idle:?#?sys:?#?released:?#?consumed:?#?(MB) 其中字段含義如下('#'?代表數字): ????scvg#?????????? 清除周期數,每次清除時遞增 ????inuse:?#??????? MB?已使用或部分使用的?spans ????idle:?#???????? MB?spans?待清除 ????sys:?#????????? 從系統映射的?MB ????released:?#???? 釋放到系統的?MB ????consumed:?#???? 從系統中分配的?MB ~~~ * * * ~~~ madvdontneed: 設置?madvdontneed?=?1??當將內存返回到內核時,將在?Linux?上使用?MADV_DONTNEED?而不是?MADV_FREE。 這效率較低,但會導致?RSS(resident?set?size?常駐內存集)數量下降得更快。 ~~~ > madvise() ?系統調用允許一個了解其內存行為的進程將其描述給系統,給予使用內存的建議。 > > > > **int > madvise(void \*addr, size\_t len, int advice);** > > > 系統可以使用傳入的建議來更改其虛擬內存分頁策略。 > > > 此建議可以提高應用程序和系統性能。建議有很多種其中兩種: > > > **MADV\_DONTNEED:** > 表示應用程序不希望很快訪問此地址范圍。 > > > **MADV\_FREE:** > 表示應用程序不需要此地址范圍中包含的信息,因此可以立即重用這些頁面。 > 地址范圍仍然有效。 ~~~ memprofilerate: 設置?`memprofilerate?=?X`?將更新?runtime.MemProfileRate?的值。 設置為?0?時,禁用內存分析。 MemProfileRate?控制在內存概要文件中記錄和報告的內存分配比例。 分析器的目標是對每?`MemProfileRate`?字節的平均分配進行抽樣。 要在概要文件中包含每個已分配的塊,請將?`MemProfileRate`?設置為?1。 要完全關閉分析,請將?`MemProfileRate`?設置為?0。 處理內存概要文件的工具假設概要文件速率在程序的整個生命周期中是恒定的,并且等于當前值。 更改內存分析速率的程序應該只改變一次,在程序執行過程中越早越好(例如,在?`main`?的開頭)。 var?MemProfileRate?int?=?512?*?1024 ~~~ * * * ~~~ invalidptr: 默認?`invalidptr?=?1`,如果在指針類型的位置中發現無效的指針值(例如,1), 則會導致垃圾收集器和棧復制器使程序?crash。 設置?`invalidptr?=?0`?將禁用此檢查。 這應該只被用作診斷錯誤代碼的臨時解決方案。 真正的解決方案是不將整數存儲在指針類型的位置。 ~~~ * * * ~~~ sbrk: 設置?`sbrk?=?1`?用一個簡單的分配器替換內存分配器和垃圾收集器, 該分配器從操作系統獲取內存并且永遠不會回收任何內存。 ~~~ * * * ~~~ scavenge: `scavenge?=?1`?啟用堆清除程序的調試模式。 ~~~ * * * ~~~ scheddetail: 設置?`schedtrace?=?X`?和?`scheddetail?=?1`?會導致調度程序每?`X`?毫秒發出一次詳細的多行信息, 描述`調度程序`,`處理器`,`線程`?和?`goroutines`?的狀態。 schedtrace: 設置?`schedtrace?=?X`?使調度程序每?`X`?毫秒發出一行標準錯誤,匯總調度程序狀態。 ~~~ * * * ~~~ tracebackancestors: 設置?`tracebackancestors?=?N`?使用創建?`goroutines`?的棧擴展回溯, 其中?`N`?限制要報告的祖先?`goroutines`?的數量。 這也擴展了?`runtime.Stack`?返回的信息。 祖先的?`goroutine?IDs`?將引用創建時?goroutine?的?ID; 這個?ID?有可能被重用于另一個?goroutine。 將?`N`?設置為?0?將不報告任何祖先信息。 ~~~ `net`,`net/http`和`crypto/tls`?也引用`GODEBUG`中的調試變量,有關詳細信息,請參閱這些包的文檔。 ### GOMAXPROCS `GOMAXPROCS`變量限制了可以同時執行用戶級 Go 代碼的操作系統線程數 (即,可以同時執行的最大`CPU`數)。 代表 Go 代碼在系統調用中可以阻塞的線程數沒有限制;那些不計入`GOMAXPROCS`限制。 該包的`GOMAXPROCS`函數查詢并更改限制。 ### GOTRACEBACK `GOTRACEBACK`變量控制 Go 程序因未恢復的`panic`或意外的運行時條件而失敗時生成的輸出量。 默認情況下,失敗會打印當前`goroutine`的棧跟蹤,省略運行時系統內部的函數,然后使用退出代碼`2`退出。 如果當前`goroutine`或者故障都不在運行時內部,則故障會打印所有`goroutines`的棧跟蹤。 * `GOTRACEBACK = none`完全省略了 goroutine 棧跟蹤。 * `GOTRACEBACK = single`(默認值)的行為如上所述。 * `GOTRACEBACK = all`為用戶創建的所有 goroutines 添加棧跟蹤。 * `GOTRACEBACK=system`就像`"all"`,但為運行時函數添加了棧幀,并顯示了運行時內部創建的 goroutine。 * `GOTRACEBACK=crash`就像`"system"`,但是以特定于操作系統的方式 crash 而不是退出。例如,在`Unix`系統上,`crash`引發`SIGABRT`以觸發核心轉儲(`core dump`)。 由于歷史原因,`GOTRACEBACK`設置`0`,`1`和`2`分別是`none`,`all`和`system`的同義詞。 `runtime/debug`包的`SetTraceback`函數允許在運行時增加輸出量,但不能減少到低于環境變量指定的輸出量。
                  <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>

                              哎呀哎呀视频在线观看