在线不卡日本ⅴ一区v二区_精品一区二区中文字幕_天堂v在线视频_亚洲五月天婷婷中文网站

  • <menu id="lky3g"></menu>
  • <style id="lky3g"></style>
    <pre id="lky3g"><tt id="lky3g"></tt></pre>

    Go語言的跨平臺能力到底有多強?看完你就知道了

    構(gòu)建方式

    對比于其他語言程序,Go語言的跨平臺能力是真的強,拿.Net和JAVA來說吧,.Net在.Net core出現(xiàn)之前是不能跨平臺的,只能在windows上編譯運行,即使是.net core出現(xiàn)以后,跨平臺的程序也是相當?shù)穆闊?。而java雖然一直都可以跨平臺,但是運行JAVA程序的機器上也必須要有JAVA程序運行環(huán)境JRE。而相對于Go程序,跨平臺就簡單的多了,只需要在編譯指定目標程序運行的架構(gòu)和環(huán)境即可編譯出指定操作系統(tǒng)和架構(gòu)的程序。

    # cpu架構(gòu) go env -w GOARCH=amd64 # 程序運行的最終系統(tǒng),linux、windows、darwin(蘋果macos系統(tǒng)) go env -w GOOS=linux # window編譯設(shè)置Cgo模塊關(guān)閉,因為windows上做cgo開發(fā)太麻煩,如果引用了Cgo庫庫,那么請在linux環(huán)境開發(fā)、編譯 go env -w CGO_ENABLED=0 # 編譯出最終可執(zhí)行文件,進入根目錄(GinSkeleton所在目錄,也就是 go.mod 所在的目錄) # 編譯時建議追加參數(shù):-ldflags “-w -s” ,同時會壓縮編譯后的體積。 # -w 表示去除調(diào)試信息,禁止gdb調(diào)試, # -s 表示去除符號表(符號表在鏈接時起著按符號尋址的作用,靜態(tài)編譯后用不到) # 追加參數(shù)編譯后的程序體積也會比原來減少25%左右. # -trimpath 表示去除絕對路徑信息,只保留基于 go.mod 開始的相對路徑信息 # web|api|cli 三個目錄選擇其一即可,表示編譯的入口目錄 go build -o demo -ldflags “-w -s” -trimpath cmd/(web|api|cli)/main.go

    以上是指定了go的環(huán)境變量后執(zhí)行的go build命令進行目標程序的構(gòu)建,這種方式會一直生效的,如果不讓他一直生效,可以在構(gòu)建的時候臨時指定環(huán)境變量,下面以window的環(huán)境為例,來介紹臨時指定環(huán)境變量的方式構(gòu)建可以在Linux環(huán)境下運行的可執(zhí)行程序:

    set GOARCH=amd64set GOOS=linux set CGO_ENABLED=0#在go程序的根目錄執(zhí)行構(gòu)建命令go build -o demo .

    可以根據(jù)不同的架構(gòu)和操作系統(tǒng)將其編寫為不同的.bat的可執(zhí)行文件放置在程序的根目錄,Linux的和MAC的也一樣編寫成腳本文件放置在程序的根目錄,這樣在構(gòu)建的時候就不用再敲命令了,直接運行腳本就可以了。

    運行方式

    Java程序編譯打包后為war包或者是java包,必須執(zhí)行java -jar 命令或者將其放置到tomcat的指定目錄下,運行tomcat程序。而Go語言編寫的程序最終為可執(zhí)行的文件(window下編譯出的是.exe的可執(zhí)行文件),只需要將其賦予可執(zhí)行的權(quán)限就可以直接運行了。

    容器方式

    構(gòu)建JAVA程序的鏡像需要指定java的基礎(chǔ)鏡像,否則就需要在鏡像中安裝java的運行環(huán)境了,下面展示的是構(gòu)建的一個JAVA程序的鏡像,構(gòu)建出來鏡像的體積相對比較大

    #docker run -itd –name eladmin -p 8000:8000 -v f:/docker/eladmin/config/:/usr/local/config/ -v f:/docker/eladmin/file:/home/eladmin/file -v f:/docker/eladmin/avatar:/home/eladmin/avatar eladmin:v1# 基礎(chǔ)鏡像使用javaFROM java:8# 作者MAINTAINER limingqi # VOLUME 指定了臨時文件目錄為/tmp。# 其效果是在主機 /var/lib/docker 目錄下創(chuàng)建了一個臨時文件,并鏈接到容器的/tmp#VOLUME /tmp# 將jar包添加到容器中并更名為app.jar#ADD demo-0.0.1-SNAPSHOT.jar app.jarWORKDIR /usr/localARG JAR_FILE=eladmin-system/target/eladmin-system-1.0.jarCOPY ${JAR_FILE} app.jarCOPY eladmin-system/src/main/resources/config/ config/EXPOSE 8000# 運行jar包RUN bash -c ‘touch app.jar’ENTRYPOINT [“java”,”-Djava.security.egd=file:/dev/./urandom”,”-jar”,”app.jar”]

    而Go程序制作出的鏡像就不需要安裝任何的依賴環(huán)境,因為他在打包的時候就已經(jīng)將依賴的包一塊打包到一起了

    # 指定基礎(chǔ)鏡像FROM busybox#指定工作目錄WORKDIR /demo# copy可執(zhí)行文件demo到工作目錄COPY demo .#授權(quán)RUN chmod +x demo#對外暴露端口EXPOSE 8080# 執(zhí)行 可執(zhí)行文件。CMD [“./demo”]

    拿著這個鏡像就可以到處運行了。

    通過對比我們可以發(fā)現(xiàn),如果沒有之前的技術(shù)和業(yè)務(wù)的積累,重新開發(fā)一個新的項目,使用go去開發(fā)無疑是最容易上手的,所以現(xiàn)在很多公司都使用go進行開發(fā),也逐漸將其他語言的項目逐步的用go語言進行改造。其實用什么語言不重要,合適的才重要,開發(fā)項目在選擇語言的時候也會綜合多方面來考慮選擇合適的語言和架構(gòu),畢竟很多公司都不是搞研究的,都需要項目來賺錢,所以開發(fā)的速度、客戶的滿意度、項目交付的時間才是驅(qū)動公司技術(shù)的主要因素。

    我們個人也應(yīng)該不斷完善自己的技術(shù)棧,不應(yīng)該太依靠某種語言,最重要的還是自己的架構(gòu)思想和底層架構(gòu)知識,只有掌握了這些才能夠不被社會和公司“優(yōu)化”。

    鄭重聲明:本文內(nèi)容及圖片均整理自互聯(lián)網(wǎng),不代表本站立場,版權(quán)歸原作者所有,如有侵權(quán)請聯(lián)系管理員(admin#wlmqw.com)刪除。
    用戶投稿
    上一篇 2022年7月11日 18:42
    下一篇 2022年7月11日 18:43

    相關(guān)推薦

    • 30個無加盟費的項目(茶顏悅色奶茶店加盟費多少)

      茶顏悅色又爆了,8月18日,茶顏悅色南京門店正式開業(yè),開張不到半小時,門店就人滿為患,消費者的購買熱情十分高漲,而由于人流量過大造成擁堵,茶顏悅色也不得不暫停營業(yè)。 當然,這里面排…

      2022年11月27日
    • cad連續(xù)標注快捷鍵(cad連續(xù)標注快捷鍵)

      本文主要講的是cad連續(xù)標注快捷鍵,以及和cad連續(xù)標注快捷鍵相關(guān)的知識,如果覺得本文對您有所幫助,不要忘了將本文分享給朋友。 cad中連續(xù)標注快捷鍵 CAD尺寸標準快捷命令:DL…

      2022年11月27日
    • 怎么轉(zhuǎn)行總結(jié)出成功轉(zhuǎn)行的3個步驟

      01 前段時間,由麥可思研究院發(fā)布的《就業(yè)藍皮書:2019年中國大學生就業(yè)報告》顯示,2018大學畢業(yè)生半年內(nèi)的離職率為33%,主動離職的主要原因是“個人發(fā)展空間不夠”和“薪資福利…

      2022年11月26日
    • 凈利潤率越高越好嗎(凈利潤率多少合適)

      一、持續(xù)增收不增利,平均凈利潤率首次跌入個位數(shù) 2021年,增收不增利依舊是行業(yè)主流。具體來看,大部分企業(yè)營業(yè)收入呈增長態(tài)勢,E50企業(yè)平均同比增速達到17.3%,但是利潤增速則明…

      2022年11月26日
    • 京東快遞跨省幾天能到(京東一般多久到貨)

      由于覺得京東平臺的物流效勞十分的不錯,而且商品的質(zhì)量都比擬有保證。在京東平臺購物的話,普通多久時間會到貨?下面的內(nèi)容停止引見。 京東普通多久到貨? 詳細要看發(fā)貨地址和你所在的地址的…

      2022年11月26日
    • 開個內(nèi)衣店利潤有多大(新手開內(nèi)衣店怎么開)

      想當老板的人,想去做一件事的人,想去提高能力的人,只要有了這個想法,他只要想行動,你攔都攔不住。 只不過說有些人會尋到正確的方法,不管是機緣巧合,還是漫無目的之后的巧遇,你不行動,…

      2022年11月26日
    • 游戲平臺有哪些(游戲平臺有哪些)

      簡要回答 游戲平臺指的是多人通過互聯(lián)網(wǎng)在線游戲的平臺,例如qq游戲,聯(lián)眾世界,浩方電競平臺,VS競技游戲平臺等,只要你下載平臺,下載相關(guān)游戲,就能實現(xiàn)對戰(zhàn),擺脫了局域網(wǎng)的限制。 詳…

      2022年11月25日
    • 淘寶直播庫存哪里拿貨(淘寶哪里看庫存)

      近年倆直播帶貨越來越火爆,抖音、淘寶、拼多多等平臺都有直播帶貨功能,其中淘寶直播時主流帶貨平臺,一些小伙伴也紛紛加入,但是作為新手不知道淘寶直播庫存哪里拿貨?下面小編為大家?guī)硖詫殹?/p>

      2022年11月25日
    • 淘寶直播沒有貨源怎么解決(淘寶直播沒有貨源怎么辦)

      淘寶是很多人喜歡的購物【平臺,里面的活躍用戶很多,流量很大,所以不少商家在上面開店,為了提高銷量也會開通直播帶貨,也有一些主播沒有貨源,那么淘寶直播沒有貨源怎么解決?下面小編為大家…

      2022年11月25日
    • 個人怎么做抖音帶貨(個人做抖音帶貨能賺錢嗎)

      抖音如今是大家很熟悉的短視頻平臺,不過現(xiàn)在的抖音卻不只是短視頻那么簡單,它的功能非常豐富,其中一個就是可以帶貨,相信很多小伙伴都有在抖音上買過東西,抖音如今的變現(xiàn)能力也是不容小覷的…

      2022年11月25日

    聯(lián)系我們

    聯(lián)系郵箱:admin#wlmqw.com
    工作時間:周一至周五,10:30-18:30,節(jié)假日休息