为什么我的代码需要这么长时间才能返回结果?

运行此代码时,我必须等待 10 秒才能打印 s.Locations,并等待 60 秒以上才能打印 n.Titles。是什么原因造成的?


有关如何解决此问题的提示会很有帮助,即查看完成某些代码行需要多长时间。Go 新手,所以不确定如何具体执行此操作。


我已确保关闭我的联系。由于我计算机上的其他所有内容加载速度都非常快,因此我认为通过 http.Get 访问互联网不会很慢。


package main


import (

    "encoding/xml"

    "fmt"

    "io/ioutil"

    "net/http"

    "strings"

)


// SitemapIndex is the root xml

type SitemapIndex struct {

    Locations []string `xml:"sitemap>loc"`

}


// News is the individual categories

type News struct {

    Titles    []string `xml:"url>news>title"`

    Keywords  []string `xml:"url>news>keywords"`

    Locations []string `xml:"url>loc"`

}


// NewsMap is the

type NewsMap struct {

    Keywords string

    Location string

}


func main() {

    var s SitemapIndex

    var n News

    // np := make(map[string]NewsMap)

    resp, _ := http.Get("https://www.washingtonpost.com/news-sitemaps/index.xml")

    bytes, _ := ioutil.ReadAll(resp.Body)

    xml.Unmarshal(bytes, &s)

    resp.Body.Close()


    for i := range s.Locations {

        s.Locations[i] = strings.TrimSpace(s.Locations[i])

    }


    fmt.Println(s.Locations) // slice of data


    for _, Location := range s.Locations {

        resp, _ := http.Get(Location)

        bytes, _ := ioutil.ReadAll(resp.Body)

        xml.Unmarshal(bytes, &n)

        resp.Body.Close()

    }


    fmt.Println(n.Titles)

}

我得到了输出,但 s.Locations 需要等待 10 秒,n.Titles 需要等待 60 秒以上


翻阅古今
浏览 87回答 0
0回答
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Go