本文目錄一覽:
- 1、解壓縮文件Golang的簡便方法問題,怎麼解決
- 2、linux下怎麼安裝Go開發環境
- 3、zstd,未來可期的數據壓縮算法
- 4、GoLang — json文件操作
- 5、golang html文件轉pdf
- 6、phpstorm golang開發環境如何配置
解壓縮文件Golang的簡便方法問題,怎麼解決
golang生成的json是格式化後的,有沒有提供方法壓縮一下 那些空格換行也佔用不了多少空間, 要壓縮可以自己寫個正則, 把那些空格、換行去掉就行了。
linux下怎麼安裝Go開發環境
Linux下安裝Go開發環境操作步驟
第一步:登陸linux
第二步:用命令yum install mercurial安裝 mercurial包
第三步:用命令yum install git安裝git包
第四步:用命令yum install gcc安裝gcc
第五步:用命令wget 下載golang的壓縮包
第六步:等待下載完成
第七步:用tar 命令來解壓壓縮包 tar -zxvf go1.2.linux-amd64.tar.gz
第八步:用命令vi /etc/profile打開系統環境變量聲明文件添加環境變量
第九步:
在profile裡面添加如下內容
export GOROOT=/home/forward/tools/go
export PATH=$GOROOT/bin:$PATH
export GOPATH=/home/forward/tools/gopkg
GOPATH和GOROOT修改為你的路徑即可
第十步:用命令source /etc/profile使我們添加的環境變量即使生效
第十一步:
最後我們驗證一下是否安裝成功
go version
如果出現下面的信息說明安裝成功了
zstd,未來可期的數據壓縮算法
最近了解到了 zstd 這種新的壓縮算法。不像lz4,lzo,snappy等近幾年流行的壓縮算法專註於壓縮和解壓縮性能,zstd在性能不錯的同時號稱壓縮率跟Deflate(zip/gzip的算法)相當。下面是 官網 列出的數據:
我們知道,壓縮算法的效果和性能跟被壓縮的數據類型和模式有很大的關係,光看別人的測試數據、benchmark是不夠的。正好有功能開發需要,於是結合我們的使用場景真實測試的一下。
驚喜的是,實測的結果比官方提供的還好,終於找到了我們的cup of tea。
Intel(R) Core(TM) i5-4570 CPU @ 3.20GHz, 8G內存
CentOS 7.0
對幾種支持流式寫入的壓縮算法,使用對應的命令行工具進行壓縮測試。
除了snappy,各種壓縮算法/工具都支持設置壓縮級別,高級別意味着以更長的壓縮時間換取更高的壓縮率。
100萬行不重複的某個應用的日誌文件,大小為977MB。
從上面可以看出:
zstd無論從處理時間還是壓縮率來看都佔優。snappy, lz4, lzo的壓縮率較低,但壓縮速度都很快,而zstd甚至比這些算法更快。Gzip的壓縮率比lz4等高不少,而zstd的壓縮率比gzip還提升一倍。
如果從上面的比較還不是特別直觀的話,我們再引入一個創造性的指標(從網上其他壓縮算法對比沒有見過使用這項指標):
代表單位處理時間可以壓縮去掉多少冗餘數據。其中 權重係數 用來指定壓縮率和壓縮速度哪個更重要,這裡我們認為在我們的使用場景里兩者同樣重要,取係數為1。
從這裡我們可以明顯看出, zstd lz4 lzo snappy 其他 。
對1000行、大小約為1MB的文件進行壓縮測試,各種算法的壓縮率跟1GB大文件的壓縮率幾乎一樣。
下面再對更小的數據量——10行日誌數據的壓縮率進行對比。雖然我們的使用場景里沒有對小數據量的壓縮處理,但還是比較好奇zstd字典模式的效果。
其中最後一組數據為zstd使用10000行日誌進行訓練生成字典文件,並利用字典文件輔助壓縮測試數據。
可以看出來,除了zstd字典模式外,各種壓縮算法在處理更小的數據量時壓縮率都下降很多。而zstd字典模式對壓縮率帶來幫助非常明顯,與gzip對比,壓縮率從1000行時相差1倍,到10行時變為了相差接近3倍。
下一篇文章將給大家對比這幾種算法的golang開源庫的性能和壓縮率。敬請期待。
GoLang — json文件操作
json格式可以算我們日常最常用的序列化格式之一了,Go語言作為一個由Google開發,號稱互聯網的C語言的語言,自然也對JSON格式支持很好。官方提供的Json解析包已經非常強大,我們接下來講解Json的序列化與反序列化操作。另外還有一些第三方的Json解析庫,也能夠高效的操作Json對象,比如simplejson,ffjson等。下面是兩個比較重要的函數:
• Json Marshal:將數據編碼成json字符串
Marshal 用於將struct對象序列化到json對象中。v是interface{}類型,任何類型都實現了空接口。
1:tag中的第一個參數是用來指定別名,比如Name 指定別名為 username `json:”username”`
2:如果不想指定別名但是想指定其他參數用逗號來分隔,omitempty 指定到一個field時,如果在賦值時對該屬性未賦值或者對該屬性賦值為 zero value,那麼將Person序列化成json時會忽略該字段
3:- 指定到一個field時,無論有沒有值,將Person序列化成json時都會忽略該字段
4:string 指定到一個field時,比如Person中的Count為int類型 如果沒有任何指定在序列化到json之後也是int 比如這個樣子 “Count”:0,但是如果指定了string之後序列化之後也是string類型的,那麼就是這個樣子”Count”:”0″
• struct序列化為Json
• slice序列化為Json
• map 序列化為Json
• Json Unmarshal:將json字符串解碼到相應的數據結構,Unmarshal的第一個參數是[]byte,第二個參數是接受json解析的數據結構。
下面我們依次講解Json的操作。
1:將Json序列化進入結構體
2::將Json序列化到結構體slice
3:將Json序列化進Map
4:將Json序列化進Slice
golang html文件轉pdf
可以使用虛擬打印機來處理:
方法一:使用虛擬打印機pdf factory即可,而且其他格式文件只要是能夠打印,選擇這個虛擬打印機,都可以做成PDF文件,很簡單實用;
最簡單而且實用的使用虛擬打印機pdf factory即可,可以把任意只要能夠打印的格式文件都可以做成PDF文件,並且可以把多個文件通過打印之後合成一個PDF文件。
pdfFactory Pro(虛擬打印機)是一個無須 Acrobat 創建 Adobe PDF 文件的打印機驅動程序。pdfFactory Pro(虛擬打印機)提供的創建 PDF 文件的方法比其他方法更方便和高效。 功能包括: 多個文檔整合到一個 PDF 文件中; 內嵌字體; 通過 E-mail 發送; 預覽; 自動壓縮優化。
PDF Factory是pdf虛擬打印機軟件,下載安裝好PDF Factory後,在打印機控制面板中就可以找到一台由pdf Factory虛擬出來的打印機,可以把任何可以打印的文件轉換成pdf文件。用任何可以支持打印輸出的軟件,把需要處理的文件逐個打印到這個虛擬打印機,全部打印完成後可把結果保存成一個pdf文件。甚至可以把不同軟件格式的文件,如word、excel、photoshop等任何可以支持打印的文件,打印到同一個pdf文件。
在打印之前,在PDF Factory Pro裡面設置一下PDF的打開、打印等權限即可實現加密等目的;
在打印之前,在設置裡面,就把加載所有的系統字體選中。
在打印界面出來後,可以在左側設置水印。然後再保存PDF文件。
打印完畢後,下載一個Adobe Reader,然後安裝,可以很流暢的閱讀PDF文件。
方法二:用其他虛擬打印機轉成PDF文件。
方法三:使用專門的轉換軟件,把文件轉成PDF文件。
phpstorm golang開發環境如何配置
golang 有編輯器可以用 如國人開發的liteide,或者sublimetext、vim、emacs,為什麼一定要用phpstorm?如果你只是做php開發,phpstorm很不錯,如果用golang來開發,phpstorm 並不合適
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/184873.html