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

        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號
        主站蜘蛛池模板: 免费精品久久久久久中文字幕| 久久久久人妻一区精品性色av| 亚洲av无码成人精品区在线播放| 国产在线拍揄自揄视精品不卡 | 国产精品成人免费观看| 亚欧洲精品在线视频免费观看| 97国产视频精品| 国产99久久精品一区二区| 国产午夜精品理论片久久| 亚洲日韩欧美制服精品二区| 国产高清在线精品一本大道国产 | 亚洲精品无码成人AAA片| 精品国产青草久久久久福利| 精品亚洲一区二区| 91精品国产综合久久婷婷| 久久精品欧美日韩精品| 四虎成人精品永久免费AV| 亚洲综合国产精品第一页| 日本精品一区二区三区四区| 久久国产精品无码网站| 国产在线精品一区二区高清不卡| 一级香蕉精品视频在线播放| 欧美精品国产一区二区| 老司机91精品网站在线观看| 久久精品国产91久久综合麻豆自制 | 亚洲国产精品一区二区第一页| 亚洲精品老司机在线观看| 久久久精品视频免费观看| 精品国偷自产在线视频| 国产精品无码永久免费888| 国产精品乱视频| 国产精品嫩草影院一二三区| 国产成人无码精品久久久久免费 | 国产精品成熟老女人视频| 国产成人精品日本亚洲网站| 国产精品福利自产拍在线观看| 国产精品国产三级国产普通话| 岛国精品一区免费视频在线观看| 97人妻无码一区二区精品免费| 国产精品久久久久影视不卡 | 999久久久国产精品|