bsdiff

来源:https://www.cnblogs.com/yangjun121/archive/2018/01/23/8336098.html
-Advertisement-
Play Games

BSDiff是一個差量更新演算法,它在伺服器端運行BSDiff演算法產生patch包,在客戶端運行BSPatch演算法,將舊文件和patch包合成新文件 演算法介紹 安裝步驟: 系統:centos wget http://www.daemonology.net/bsdiff/bsdiff-4.3.tar.g ...


 

BSDiff是一個差量更新演算法,它在伺服器端運行BSDiff演算法產生patch包,在客戶端運行BSPatch演算法,將舊文件和patch包合成新文件

演算法介紹

 

安裝步驟:

系統:centos

wget http://www.daemonology.net/bsdiff/bsdiff-4.3.tar.gz
tar zxvf bsdiff-4.3.tar.gz
cd bsdiff-4.3
修改Makefile 在倒數第一行 第三行 加TAB
然後執行make
make 會報錯,確實zip庫
執行下麵命令安裝(RHEL/CENTOS)
yum install bzip2-devel

編譯完成後,會在目錄下生成2個二進位文件:
bsdiff
bspatch
這2個二進位文件可以直接使用

也可以拷貝到/usr/local/sbin/下
cp bsdiff /usr/local/sbin/
cp bspatch /usr/local/sbin/

# bsdiff -h
bsdiff: usage: bsdiff oldfile newfile patchfile

# bspatch -h
bspatch: usage: bspatch oldfile newfile patchfile

 

 

擴展: 使用bsdiff 進行差分升級,還並不是最優的方式,google在它的Chromium項目中,對這個差分演算法進行了優化,優化後的版本叫做小胡瓜Courgette,據說性能優化了很多不是一個數量級了,官方的一個例子:
Full update       10,385,920 bsdiff update     704,512 Courgette update      78,848
您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • EF 更新部分欄位寫法 1、EF預設是查詢出來,修改後保存; 2、設置不修改欄位的IsModified為false,此方法不需要先從資料庫查詢出實體來(最優方法): 3、使用 EntityFramework.Extended 擴展,缺點是EF的上下文日誌不能捕獲執行的sql,此方法也比較麻煩需要逐一 ...
  • 之前有跟第三方通訊合作,應為CRC表碼問題導致校驗出結果不一致,糾結了很久,最後直接採用CRC計算方式校驗才解決。 兩種方式貼,自行對比。 CRC校驗計算方法 查表方法 ...
  • 電腦中文件有很多種,我們知道實際存在電腦中的都是二進位。這裡我記錄了通過流對文件的讀取操作。 一、首先在這裡簡單涉及下位,位元組,字元的概念。 位(bit):可以表示0或1; 位元組(byte):由8位組成(bit),可以表示0-255,是256個不同的數據; 字元:字元根據編碼的不同有所區別; A ...
  • 一、Get 方式傳輸 二、POST 方式傳輸 其中PUT、DELETE方式跟上面基本相似。這裡就不再多說明 ...
  • 1.在上章-移植uboot里.我們來分析下uboot是如何進入到內核的 首先,uboot啟動內核是通過bootcmd命令行實現的,在我們之前移植的bootcmd命令行如下所示: 1.1然後我們進入cmd_bootm.c,找到對應的bootm命令對應的do_bootm(): 上面的boot_os_fn ...
  • 1: 為系統添加操作用戶,並授予sudo許可權 sudo的配置文件在/etc/sudoers下麵,不過是只讀文件。想要修改使用“visudo”命令。 用戶名 可登錄的終端 具體命令(使用絕對路徑,which查看) cairui ALL=(ALL) /usr/sbin/useradd 2: 配置Yum源 ...
  • 1.JDK安裝 註意:rpm與軟體相關命令 相當於window下的軟體助手 管理軟體 步驟: 1)查看當前Linux系統是否已經安裝java 輸入 rpm -qa | grep java ps:博主這裡已經卸載過了 2)卸載兩個openJDK 輸入rpm -e --nodeps 要卸載的軟體 3)上 ...
  • 1.目錄切換命令 linux目錄結構 ps:綠色標註為常用命令 2.目錄的操作命令 3.查看目錄2:ll(顯示目錄詳細信息) 4.尋找目錄:find 目錄 參數(find /root -name ‘test*’) 5.修改目錄的名字:mv 目錄名稱 新目錄名稱(mv oldTest newTest) ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...