亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

Golang 檢索應用程序正常運行時間

Golang 檢索應用程序正常運行時間

Go
Helenr 2022-01-17 20:14:22
我正在嘗試檢索我的Go應用程序的當前正常運行時間。我已經看到有一個包syscall提供了一個type Sysinfo_t和一個方法Sysinfo(*Sysinfo_t),它顯然允許您檢索正常運行時間(因為它是Sysinfo_t結構的一個字段)到目前為止我所做的是:sysi := &syscall.Sysinfo_t{}if err := syscall.Sysinfo(sysi); err != nil {    return http.StatusInternalServerError, nil}問題是在編譯時我得到了這個:/path/to/file/res_system.go:43: undefined: syscall.Sysinfo_t/path/to/file/res_system.go:45: undefined: syscall.Sysinfo我搜索了一下,顯然該方法和類型僅在 Linux 上可用,我需要該應用程序在 Linux 和 OsX(我目前正在使用)上運行。是否有一種交叉兼容的方式來檢索應用程序的正常運行時間?注意:我寧愿不使用任何第三方庫(除非它們是絕對必要的)
查看完整描述

3 回答

?
交互式愛情

TA貢獻1712條經驗 獲得超3個贊

獲得正常運行時間的簡單方法是存儲服務開始時間:


https://play.golang.org/p/by_nkvhzqD


package main


import (

    "fmt"

    "time"

)


var startTime time.Time


func uptime() time.Duration {

    return time.Since(startTime)

}


func init() {

    startTime = time.Now()

}


func main() {

    fmt.Println("started")


    time.Sleep(time.Second * 1)

    fmt.Printf("uptime %s\n", uptime())


    time.Sleep(time.Second * 5)

    fmt.Printf("uptime %s\n", uptime())

}


查看完整回答
反對 回復 2022-01-17
?
慕少森

TA貢獻2019條經驗 獲得超9個贊

您應該使用包中的Since功能time。

在應用程序啟動時創建時間值:

startTime := time.Now()

然后隨時詢問:

uptime := time.Since(startTime)


查看完整回答
反對 回復 2022-01-17
?
慕無忌1623718

TA貢獻1744條經驗 獲得超4個贊

系統調用在 Go 1.4 上被凍結。

注意:此包已鎖定。應遷移標準 Go 存儲庫之外的代碼以使用 golang.org/x/sys 存儲庫中的相應包。這也是應該應用新系統或版本所需的更新的地方。有關更多信息,請參閱https://golang.org/s/go1.4-syscall。

使用它的Sysinfogolang.org/x/sys應該以跨平臺的方式支持這一點,至少在 Unix 上是這樣。


查看完整回答
反對 回復 2022-01-17
  • 3 回答
  • 0 關注
  • 267 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號