go中使用gin框架,接收json简单处理的一段代码耗时为什么偶尔达到300ms?

1. 运行环境

go1.19 linux/amd64

2. 问题描述?

func DoRerank(c *gin.Context) {
    startTime1 := time.Now()
    var requestData model.RequestRerankInfo
    err := c.ShouldBindJSON(&requestData)
    if err != nil {
        return
    }

    bookListSize := len(requestData.BookListInfo)
    responseBookList := make([]model.BookItem, bookListSize, bookListSize)
    copy(responseBookList, requestData.BookListInfo)
    log.Info("startTime1 =", time.Since(startTime1))
    .....
    .....
}

INFO[0002] startTime1 =397.29032ms file=”RerankController.go:33”

INFO[0010] startTime1 =102.28µs file=”RerankController.go:33”
同一个请求,偶尔会出现以上这段代码耗时300毫秒,大部分情况下都是耗时不到1ms

3. 您期望得到的结果?

想请问下,为什么会在同一个请求下,会出现那么大的耗时差别呢?

4. 您实际得到的结果?

讨论数量: 1

我个人的理解:系统资源不是一直空闲的,也许其它程序占用了某个资源,导致你的程序变慢了

1年前 评论

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!