當我編譯我的Snap webapp(將其部署到生產服務器)時,它出現到19MB! 什麼給?這是正常的嗎?難道我做錯了什麼?減小Snap二進制文件的大小?
我的網站只有3個靜態頁面,基本上是snap's init project。
當我編譯我的Snap webapp(將其部署到生產服務器)時,它出現到19MB! 什麼給?這是正常的嗎?難道我做錯了什麼?減小Snap二進制文件的大小?
我的網站只有3個靜態頁面,基本上是snap's init project。
我猜Snap會引起很多依賴。這個問題的一個解決方案,不幸影響(初始)編譯時間的是使用--split-objs選項安裝庫,您的項目依賴於。這將產生大量不同的對象,但會使最終的可執行文件變得更小,比2-4倍小。
$ cabal install --enable-split-objs
如果您已經安裝了這些庫,你需要先刪除它們,安裝一個新的GHC或使用沙箱與它自己的包集合。
您還應該使用strip
命令(cabal會在某些情況下自動執行此操作)。
此外,您可以考慮使用upx
來壓縮可執行文件,最後使用rsync
將最小差異可執行文件上傳到服務器。
使用共享庫(cabal install --enable-shared
)在這裏可能有幫助或沒有幫助:我沒有嘗試過這個選項。
這是某種方式的問題嗎?使用共享庫會讓你感覺更好嗎? –
那麼,每次我想做一個小小的改變時,我必須通過慢速scp連接上傳20MB到我的EC2實例...... – drozzy
因此,聽起來您應該使用共享庫來刪除重複。 –