[發明專利]用于計算用于在連續分布式構建中有效高速緩存的校驗和的方法和裝置有效
| 申請號: | 201280062431.X | 申請日: | 2012-10-26 |
| 公開(公告)號: | CN103999050A | 公開(公告)日: | 2014-08-20 |
| 發明(設計)人: | M·弗爾斯特;U·亞當斯;S·舍青格;C·K·肯珀 | 申請(專利權)人: | 谷歌公司 |
| 主分類號: | G06F9/455 | 分類號: | G06F9/455 |
| 代理公司: | 北京市金杜律師事務所 11256 | 代理人: | 酆迅;陳穎 |
| 地址: | 美國加利*** | 國省代碼: | 美國;US |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 用于 計算 連續 分布式 構建 有效 高速緩存 校驗 方法 裝置 | ||
技術領域
本發明的方面涉及用于構建軟件的方法、系統和計算機可讀介質。具體而言,本發明的方面涉及計算校驗和以確定為更早配置文件計算的構建策略是否可以被重用于更晚配置文件。
背景技術
在開發軟件時,經常首先以人類可以容易理解的編程語言將其編寫為編程代碼。編程代碼然后經過編譯過程以便創建計算機可以容易理解的可執行代碼。執行編譯和鏈接過程以便生成可執行代碼。計算機遵循可執行代碼中的指令以便執行所有計算機功能、包括顯示用戶界面、連接到因特網和執行其它計算任務、比如實現字處理和web瀏覽、提供web服務等。
程序員使用與字處理程序相似的編輯器以便編寫計算機軟件。編輯器通常允許程序員鍵入他們的程序、編譯程序并且運行程序以便測試它。為了管理大型軟件程序,程序經常被劃分成稱為模塊的分離單位。模塊是被編寫為處置一個或者多個有關任務的計算機代碼,并且代碼經常可以作為單個單位被一起管理。不同模塊然后可以被編寫為管理特定任務。例如為了編寫web瀏覽程序,可以有用于管理書簽的模塊、用于處置與因特網服務的通信的模塊等。
在編程代碼中編寫的軟件程序或者模塊可以引用其它軟件程序或者模塊。這是一種用于編寫計算機程序的高效方式,因為它允許計算機程序員引用已經創建的代碼、并且因此無需從暫存器重建所有代碼。取而代之,計算機程序員能夠并入或者依賴于其他人先前可能已經編寫的代碼部分或者庫。程序員然后可以關注于編寫他們自己的具體軟件模塊的操作部分。
在從編程代碼生成可執行代碼時,代碼生成器需要知道編譯模塊的順序。依托于第二模塊的第一模塊應當在第二模塊之后被編譯。程序員編寫配置文件以便向代碼生成器通知哪些配置文件依托或者依賴于其它配置文件。配置文件是聲明模塊的依賴關系的文檔,以便使得代碼生成器可以恰當地順序化模塊的編譯。配置文件因此聲明軟件模塊的依賴關系。軟件模塊的依賴關系可以影響模塊被編譯的順序化。在一些情況下,模塊并不相互依賴、因此可以被并行編譯。
傳統上,定義模塊為集合,其中項是單文件和/或其它模塊。如果有對模塊中的項中的任何項的改變,則需要重新編譯完整模塊。因而,也需要重新編譯依賴于重新編譯的特定模塊的所有模塊。另外,每當重新編譯模塊時重新計算編譯計劃,該編譯計劃是用于編譯、鏈接和其它任務的策略。
這樣的重新編譯可能對于大型軟件產品而言計算成本高從而花費寶貴時間和資源。因此希望有一種用于減少計算開支的更好的重新編譯技術。在一種方式中,檢查文件的時間戳以確定重新編譯是否必需。如果時間戳自從先前編譯起尚未改變,則可以略過編譯過程,因為無對軟件模塊的更新或者改變。然而這樣的方式的一個缺點是如果未更新時間戳則不會在可執行代碼中更新對軟件模塊中的編程代碼的改變。另外,時間戳中的錯誤信號、例如在機器具有不同時間時可能導致非密封構建,在這些非密封構建中未包括一些依賴關系,從而導致不希望的結果。鑒于這樣的缺點,尋求一種用于減少重新編譯的計算開支的更好方式。
發明內容
在本發明的一個方面中,本發明可以包括一種由數據處理裝置執行的方法,該方法包括:創建用于第一構建的第一編譯策略;使用第一編譯策略來執行第一構建;計算用于第一構建的第一校驗和;存儲第一編譯策略和第一校驗和;計算用于第二構建的第二校驗和;確定第二校驗和是否等于第一校驗和;響應于確定第二校驗和不等于第一校驗和,創建第二編譯策略;存儲第二編譯策略和第二校驗和,并且使用第二編譯策略來執行第二構建;并且響應于確定第二校驗和等于第一校驗和,取回第一編譯策略并且使用第一編譯策略來執行第二構建。
在本發明的又一方面中,該方法包括其中第一校驗和是全局構建校驗和;并且全局構建校驗和通過使用一個或者多個局部構建校驗和來計算。
在本發明的又一方面中,該方法包括確定為第一構建計算的局部構建校驗和對于第二構建尚未改變并且在第二編譯策略中重新使用第一編譯策略的與局部構建校驗和關聯的部分。
在本發明的又一方面中,該方法包括其中文件系統信息按照路徑名被排序以便計算局部構建校驗和。
在本發明的又一方面中,該方法包括其中文件系統信息包括校驗和。
在本發明的又一方面中,該方法包括其中使用第一編譯策略來執行第一構建還包括檢查配置文件的內容以確定依賴關系;并且為配置文件的每個依賴關系計算局部構建校驗和。
在本發明的又一方面中,該方法包括基于配置文件的依賴關系來計算傳遞閉包。
在本發明的又一方面中,該方法其中包括為計算的傳遞閉包的每個配置文件計算局部構建校驗和。
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于谷歌公司,未經谷歌公司許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201280062431.X/2.html,轉載請聲明來源鉆瓜專利網。





