自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

Go 語言的 HTTP 標準庫中的內(nèi)存泄漏問題?

開發(fā) 前端
使用一個go庫實現(xiàn)的一個http服務器:

使用一個go庫實現(xiàn)的一個http服務器:

  1. package main 
  2.       
  3.     import ( 
  4.         "net/http" 
  5.     ) 
  6.       
  7.     func main() { 
  8.         http.ListenAndServe(":8080", nil) 
  9.     } 

它將使用大約850kb的內(nèi)存啟動.通過你的瀏覽器向它發(fā)送一些請求. 你會觀察到它(內(nèi)存的使用)迅速上升到1mb. 如果你等著,你會發(fā)現(xiàn)它從來不會降下來. 現(xiàn)在(使用下面的腳本)用 Apache Bench 動一下它,你會發(fā)現(xiàn)內(nèi)存使用仍然在增長. 一段時間過后它最終會維持在8.2mb左右

. Edit編輯: 看起來它并不會止步于8.2,而它的增長速度會顯著減慢。現(xiàn)在它處在9.2的水平,并且仍然在增長.

總之,為什么會發(fā)生這樣的事情呢?我使用了這段shell腳本一探究竟:

  1. while [ true ] 
  2.     do 
  3.         ab -n 1000 -c 100 http://127.0.0.1:8080/ 
  4.         sleep 1 
  5.     end 

然后嘗試獲得這個的底線, 我已經(jīng)嘗試過調(diào)整設置. 試過使用r.Close = true 來阻止 Keep-Alive. 沒有任何東西看起來是起作用的.

當我嘗試去判斷我正在編寫的程序是否存在內(nèi)存泄露時,我發(fā)現(xiàn)了這個問題的來由. 它有大量的http處理器和I/O調(diào)用. 檢查過后我已經(jīng)關閉了我所有的數(shù)據(jù)庫鏈接,我繼續(xù)觀察,仍然會看到內(nèi)存使用繼續(xù)上升. 我的程序內(nèi)存使用會維持在 433 MB 左右.

這里是 Goenv 的輸出:

  1. GOARCH="amd64" 
  2.     GOBIN="" 
  3.     GOCHAR="6" 
  4.     GOEXE="" 
  5.     GOHOSTARCH="amd64" 
  6.     GOHOSTOS="darwin" 
  7.     GOOS="darwin" 
  8.     GOPATH="/Users/mark/Documents/Programming/Go" 
  9.     GORACE="" 
  10.     GOROOT="/usr/local/go" 
  11.     GOTOOLDIR="/usr/local/go/pkg/tool/darwin_amd64" 
  12.     TERM="dumb" 
  13.     CC="clang" 
  14.     GOGCCFLAGS="-g -O2 -fPIC -m64 -pthread -fno-caret-diagnostics -Qunused-arguments -fno-common" 
  15.     CXX="clang++" 
  16.     CGO_ENABLED="1" 

原文鏈接:http://stackoverflow.com/questions/21080642/memory-leak-in-go-http-standard-library

譯文鏈接:http://www.oschina.net/translate/memory-leak-in-go-http-standard-library

責任編輯:陳四芳 來源: 開源中國編譯
相關推薦

2023-11-21 15:46:13

Go內(nèi)存泄漏

2023-04-02 23:13:07

Go語言bufio

2024-02-21 08:00:55

WindowsDWM進程

2024-01-30 10:12:00

Java內(nèi)存泄漏

2023-12-04 08:46:40

Go標準庫

2023-11-01 08:41:24

Go標準庫http

2024-12-05 08:58:47

2022-05-26 09:51:50

JavaScrip內(nèi)存泄漏

2011-06-16 09:28:02

C++內(nèi)存泄漏

2021-10-18 10:53:26

Go 代碼技術

2015-12-21 14:56:12

Go語言Http網(wǎng)絡協(xié)議

2024-03-22 13:31:00

線程策略線程池

2020-08-17 17:47:30

內(nèi)存技術測試

2019-01-30 18:24:14

Java內(nèi)存泄漏編程語言

2015-03-30 11:18:50

內(nèi)存管理Android

2017-04-10 20:21:39

Go語言源碼分析Handler

2017-04-10 13:26:06

Go語言源碼

2012-08-15 14:44:53

GC

2020-01-03 16:04:10

Node.js內(nèi)存泄漏

2021-05-30 19:29:12

內(nèi)存Go語言
點贊
收藏

51CTO技術棧公眾號