Skip to content

貌似有内存泄露呀 #32

Open
Open
@w22gb8

Description

@w22gb8

多次请求通过top能发现RES占用内存轻微持续上升,go1.4,linux 64,代码如下:
package main

import (
"fmt"
curl "github.com/andelf/go-curl"
)

func main() {
fooTest := func(buf []byte, userdata interface{}) bool {
//println("DEBUG: size=>", len(buf))
//println("DEBUG: content=>", string(buf))
return true
}
easy := curl.EasyInit()
defer easy.Cleanup()
for i := 0; i < 1000000; i++ {
easy.Setopt(curl.OPT_URL, "http://192.168.1.3/")
easy.Setopt(curl.OPT_WRITEFUNCTION, fooTest)
if err := easy.Perform(); err != nil {
fmt.Printf("ERROR: %v\n", err)
}
}
}
协程下同样如此:
package main

import (
"fmt"
curl "github.com/andelf/go-curl"
"sync"
)

func main() {
var wg sync.WaitGroup
var limit = make(chan struct{}, 200)
fooTest := func(buf []byte, userdata interface{}) bool {
//println("DEBUG: size=>", len(buf))
//println("DEBUG: content=>", string(buf))
return true
}
for i := 0; i < 1000000; i++ {
limit <- struct{}{}
wg.Add(1)
go func() {
easy := curl.EasyInit()
defer easy.Cleanup()
easy.Setopt(curl.OPT_URL, "http://192.168.1.3/")
easy.Setopt(curl.OPT_WRITEFUNCTION, fooTest)

        if err := easy.Perform(); err != nil {
            fmt.Printf("ERROR: %v\n", err)
        }
        <-limit
        defer wg.Done()
    }()
    wg.Wait()
}

}

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions