[發明專利]編譯鏈接優化方法有效
| 申請號: | 201711294532.0 | 申請日: | 2017-12-08 |
| 公開(公告)號: | CN109918074B | 公開(公告)日: | 2022-09-27 |
| 發明(設計)人: | 孟杰;薛皓琳;馬瑤瑤;盧彥;楊建生;張蓓;方平;馮艷紅;穆鶴林;程毅軒;楊曉璇;吳昆鵬;李洪彬;申利飛 | 申請(專利權)人: | 中標軟件有限公司 |
| 主分類號: | G06F8/41 | 分類號: | G06F8/41;G06F9/445;G06F16/901 |
| 代理公司: | 北京匯智英財專利代理事務所(普通合伙) 11301 | 代理人: | 鄭玉潔 |
| 地址: | 200030 上海市徐匯*** | 國省代碼: | 上海;31 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 編譯 鏈接 優化 方法 | ||
本發明涉及一種編譯鏈接優化方法,其利用GNU開源編譯鏈接工具BINUTILS的鏈接器LD的地址空間分配功能、符號決議功能以及重定位功能,對鏈接器的鏈接功能進行優化,并且,優化的功能包括符號表建立功能、查找功能以及鏈接過程中的查詢功能。本發明提供的編譯鏈接優化方法,克服了編譯鏈接速度慢的缺陷,可降低鏈接時內存占用率,從而達到提升編譯鏈接速度、節省時間成本、提高生產效率的目的。
技術領域
本發明涉及計算機軟件程序運行技術領域,具體涉及一種編譯鏈接優化方法。
背景技術
GNU工具鏈在Linux系統中的作用重大,編譯鏈接占有重要比例。近些年,Linux系統迅速發展,隨著計算機技術的不斷發展,越來越多的個人和企業開始大量使用Linux系統,各種應用程序的種類不斷增加,程序功能不斷發生變化,變的愈加多樣和復雜,這樣的現象導致了程序代碼量的急劇增加和模塊的增加,同時也給程序的編譯鏈接帶來了極大的負擔。編譯集成過程中,模塊的增加導致了二進制目標文件的增加,直接導致需要鏈接的符號大量增加,這樣的數量級將會占用大量系統資源,嚴重拖慢系統的運行速度,所以將引入一種大數據的查詢處理方式,以解決鏈接帶來的問題。
原有的鏈接器使用了hash算法。hash算法就是將任一給定長度的數據(字符或數值等)通過給定函數映射為較短的、固定長度的數值,這個數值被稱為hash值,這個數值便作為索引。hash表是通過給定的hash函數H(key)和處理沖突方法將一組關鍵字映射到一個已申請好的內存空間上,H(key)作為給定關鍵字在內存空間中的存儲位置,這部分內存空間被稱為hash表或散列,所得存儲位置稱為hash地址或散列地址。作為線性數據結構與表格和隊列等相比,hash表無疑是查找速度比較快的一種。
整個鏈接過程中,符號表的建立、查找部分最為耗時,主要在于對符號表的建立、查找定位方面的消耗,數量稍小一點的目標文件無法察覺到這方面的消耗,但是如果面臨上百個目標文件的鏈接,而每個目標文件又包括上百個(不止)需要鏈接的符號時,這樣的數量級將會暴露龍芯平臺硬件方面的不足。如果在這樣的數量級或更高的數量級下繼續使用鏈接器現有的hash算法,將會暴露hash算法的重要缺陷,就是空間效率低下,也就是說當在更高數量級的情況下,將會產生hash沖突,為解決hash沖突,就要開拓更多的內存;鏈接器現在使用的hash算法將占用更大的內存,在此期間對系統速度影響非常大,極易導致系統卡頓,鏈接導致的系統資源被大量占用對系統的影響已經不容忽視。
發明內容
為解決現有技術存在的不足,本發明提供了一種編譯鏈接優化方法,利用GNU開源編譯鏈接工具BINUTILS的鏈接器LD的地址空間分配功能、符號決議功能以及重定位功能,對鏈接器的鏈接功能進行優化,并且,優化的功能包括符號表建立功能、查找功能以及鏈接過程中的查詢功能。
其中,所述符號表建立功能的優化為創建GL_KV符號表。
其中,符號表建立功能的優化中,通過下述步驟創建GL_KV符號表:
步驟S1:分別收集GNU庫符號和基本圖形庫符號;
步驟S2:將步驟S1中收集的符號的符號名輸入布隆過濾器;
步驟S3:將布隆過濾器的輸出作為索引算法的輸入,確定符號在符號表中的位置;
步驟S4:將符號信息寫入符號表。
其中,還包括:
步驟S5:如果經索引算法計算后發現有重復,則另填一張表存放數據,是否重復由GL_KV_sym-rep-sym_r確定;
所述步驟S3中,索引算法為Hash索引算法;
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于中標軟件有限公司,未經中標軟件有限公司許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201711294532.0/2.html,轉載請聲明來源鉆瓜專利網。





