看板 Linux 關於我們 聯絡資訊
請問一下大家 最近為了自動化 所以用了jenkins自動編譯程式為java的war檔 之後在透過判斷新舊war檔是否差異來判斷要不要重新deploy 原本的判斷方式為… cmp -l a.war a.war.bak |wc -l 透過cmp -l 列出所有的差異 在統計行數 只要差異的行數超過10行就重新deploy程式…這樣基本上沒有問題 但是…因為該war檔大約有300m 而且比對下去大約有近3億個不同OTZ 要花費一些些時間…所以想請問一下是否有其它的方式可以加快速度… 或是在統計差異行數時只要超過幾行的差異時就停止cmp呢? ps差異數超過10行才重新deploy的原因是因為 重新編譯的檔案一定會有約8行的不同… 謝謝大家~ OTZ 重新確認一次後 "cmp -l" 的方式約 106(s) "diff -a --speed-large-files" 的方式約 30(s) 速度快很多… 怕謝…因該是3億個不同(?) -- 受遺棄之子 生來無長物 學著去承受寂寞 學著從黑暗中找到出路 誰會在那等候你... 安慰你...關心你呢 ? 學著去承受寂寞吧 學著自已一人作件 未曾夢想過外面世界 會有雙臂來擁抱你 你一直清楚明白 你的心孤獨無助 所以笑看孤寂吧...受遺棄之子... 學著去承受寂寞 學著如何去愛孤獨的生活 學著去承受寂寞 人生可以如此過 人生可以如 此愛 靠著獨自一人... -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 59.126.216.178
kira925:diff? 09/05 16:07
hgs1906:有試著用diff比對…不過效果好像和cmp一樣… 09/05 16:08
bitlife:300MB也才3億bytes,怎會有3億行不同? XD 其實寫一個簡單的 09/05 16:28
bitlife:程式取代wc -l,也就是從stdin讀入超過預定的行數就exit , 09/05 16:28
bitlife:如此就可以結束pipe, cmp也會終止 (broken pipe) 09/05 16:29
※ 編輯: hgs1906 來自: 59.126.216.178 (09/05 16:33)
hgs1906:感謝樓上的幫忙 只想到計算行數都忘了其它方法了囧 09/05 16:36
hgs1906:怕謝 想來想去還是不知道具體的寫法 OTZ 09/05 16:59