站長資訊網
        最全最豐富的資訊網站

        php和golang怎么配合

        最近工作中遇到的一個場景,php項目中需要使用一個第三方的功能,而恰好有一個用Golang寫好的類庫。那么問題就來了,要如何實現不同語言之間的通信呢?下面就來一起看看吧。

        php和golang怎么配合

        常規的方案 (推薦學習:PHP視頻教程)

        1、 用Golang寫一個http/TCP服務,php通過http/TCP與Golang通信

        2、將Golang經過較多封裝,做為php擴展。

        3、PHP通過系統命令,調取Golang的可執行文件

        存在的問題

        1、http請求,網絡I/O將會消耗大量時間

        2、需要封裝大量代碼

        3、PHP每調取一次Golang程序,就需要一次初始化,時間消耗很多

        優化目標

        1、Golang程序只初始化一次(因為初始化很耗時)

        2、所有請求不需要走網絡

        3、盡量不大量修改代碼

        解決方案

        1、簡單的Golang封裝,將第三方類庫編譯生成為一個可執行文件

        2、PHP與Golang通過雙向管道通信

        使用雙向管道通信優勢

        1:只需要對原有Golang類庫進行很少的封裝

        2:性能最佳 (IPC通信是進程間通信的最佳途徑)

        3:不需要走網絡請求,節約大量時間

        4:程序只需初始化一次,并一直保持在內存中

        具體實現步驟

        1:類庫中的原始調取demo

        package main import (  "fmt"  "github.com/yanyiwu/gojieba"  "strings" )   func main() {  x := gojieba.NewJieba()  defer x.Free()    s := "小明碩士畢業于中國科學院計算所,后在日本京都大學深造"  words := x.CutForSearch(s, true)  fmt.Println(strings.Join(words, "/")) }

        保存文件為main.go,就可以運行

        2:調整后代碼為:

        package main import (  "bufio"  "fmt"  "github.com/yanyiwu/gojieba"  "io"  "os"  "strings" )   func main() {    x := gojieba.NewJieba(   "/data/tmp/jiebaDict/jieba.dict.utf8",    "/data/tmp/jiebaDict/hmm_model.utf8",    "/data/tmp/jiebaDict/user.dict.utf8"  )  defer x.Free()    inputReader := bufio.NewReader(os.Stdin)  for {   s, err := inputReader.ReadString('n')   if err != nil && err == io.EOF {    break   }   s = strings.TrimSpace(s)     if s != "" {    words := x.CutForSearch(s, true)    fmt.Println(strings.Join(words, " "))   } else {    fmt.Println("get empty n")   }  } }

        只需要簡單的幾行調整,即可實現:從標準輸入接收字符串,經過分詞再輸出

        測試:

        # go build test # ./test # //等待用戶輸入,輸入”這是一個測試“ # 這是 一個 測試 //程序

        贊(0)
        分享到: 更多 (0)
        網站地圖   滬ICP備18035694號-2    滬公網安備31011702889846號
        主站蜘蛛池模板: 亚洲精品黄色视频在线观看免费资源| 亚洲精品乱码久久久久久蜜桃不卡| 精品91自产拍在线观看二区| 人妻少妇精品视频二区| 国产精品乱视频| 国产伦精品一区二区三区女| 亚洲精品狼友在线播放| 精品国产一区二区三区在线观看| 99香蕉国产精品偷在线观看| 日韩三级精品| 国产欧美精品区一区二区三区| 久久国产精品-久久精品| 久久精品午夜一区二区福利| 天天爽夜夜爽8888视频精品| 国产日韩精品无码区免费专区国产| 精品精品国产高清a毛片牛牛| 亚洲国产精品久久电影欧美 | 在线观看国产精品普通话对白精品 | 四虎精品影库4HUTV四虎| 女人香蕉久久**毛片精品| 东京热TOKYO综合久久精品| 无码精品A∨在线观看中文| 亚洲精品午夜国产VA久久成人| 日本精品一区二区三区在线视频一 | 免费视频成人国产精品网站| 国产高清在线精品一本大道国产 | 日韩精品无码一区二区三区| 亚洲国产综合精品中文字幕| 九九久久精品无码专区| 久久久久久国产精品无码下载 | 欧产日产国产精品精品| 亚洲AV无码久久精品蜜桃| 亚洲国产第一站精品蜜芽| 综合国产精品第一页| 亚洲精品你懂的在线观看| 亚洲综合av永久无码精品一区二区| 四虎影院国产精品| 一本一本久久aa综合精品| 久久婷婷国产综合精品| 久久亚洲精品中文字幕| HEYZO无码综合国产精品227|