System.ArgumentOutOfRangeException: 索引和長度必須引用該字符串內(nèi)的位置。 參數(shù)名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技術(shù)實(shí)現(xiàn)步驟摘要】
本申請涉及計(jì)算機(jī),特別是涉及一種軟件編譯優(yōu)化方法、設(shè)備以及存儲介質(zhì)。
技術(shù)介紹
1、在計(jì)算機(jī)領(lǐng)域中,軟件工程項(xiàng)目在經(jīng)過逐步迭代更新后,項(xiàng)目的工程復(fù)雜度會逐漸變高。除了項(xiàng)目本身的工程代碼外,還會持續(xù)增加許多依賴子工程,進(jìn)而導(dǎo)致項(xiàng)目的編譯生成周期會被逐漸拉長。
2、目前盡管采用子工程并行編譯等方式能提高項(xiàng)目的編譯生成速度,但是在項(xiàng)目持續(xù)集成過程中,且需要頻繁生成項(xiàng)目的情況下,仍明顯影響著工程項(xiàng)目的開發(fā)周期,降低了工程項(xiàng)目的編譯生成效率。
3、因此,如何提高開發(fā)效率成為當(dāng)前亟待解決的問題之一。
技術(shù)實(shí)現(xiàn)思路
1、本申請至少提供一種軟件編譯優(yōu)化方法、裝置、設(shè)備以及計(jì)算機(jī)可讀存儲介質(zhì)。
2、本申請第一方面提供了一種軟件編譯優(yōu)化方法,包括:對獲取到的軟件工程項(xiàng)目的各頭文件和各源文件進(jìn)行分析處理,得到各頭文件和各源文件之間的引用關(guān)系;基于所述引用關(guān)系和預(yù)設(shè)的文件篩選規(guī)則從各頭文件中確定第一頭文件以及從各源文件中確定第一源文件;基于獲取到的各源文件在編譯過程中的編譯結(jié)果確定各源文件中的第二源文件以及確定各源文件中的第三源文件;基于所述第一頭文件、所述第一源文件、所述第二源文件以及所述第三源文件之間的匹配結(jié)果確定待優(yōu)化頭文件和/或待優(yōu)化源文件;對所述待優(yōu)化頭文件和/或所述待優(yōu)化源文件進(jìn)行優(yōu)化處理,得到優(yōu)化后的軟件工程項(xiàng)目。
3、在一實(shí)施例中,所述基于獲取到的各源文件在編譯過程中的編譯結(jié)果確定各源文件中的第二源文件以及確定各源文件中的第三源文件,包括:獲
4、在一實(shí)施例中,所述基于所述目標(biāo)文件的文件大小對各源文件進(jìn)行篩選處理,得到所述第二源文件;以及基于所述編譯耗時(shí)對各源文件進(jìn)行篩選處理,得到所述第三源文件,包括:基于各源文件對應(yīng)生成的目標(biāo)文件的文件大小以及預(yù)設(shè)的大小篩選閾值,對各源文件進(jìn)行堆排序處理,得到所述第二源文件;基于各源文件對應(yīng)的編譯耗時(shí)以及預(yù)設(shè)的時(shí)間篩選閾值,對各源文件進(jìn)行堆排序處理,得到所述第三源文件。
5、在一實(shí)施例中,所述基于所述第一頭文件、所述第一源文件、所述第二源文件以及所述第三源文件之間的匹配結(jié)果確定待優(yōu)化頭文件和/或待優(yōu)化源文件,包括:對所述第三源文件和所述第一源文件進(jìn)行匹配處理,將和所述第一源文件匹配成功的第三源文件作為第一匹配源文件,以及將和所述第一源文件匹配失敗的第三源文件作為所述待優(yōu)化源文件;對所述第三源文件和所述第二源文件進(jìn)行匹配處理,將和所述第二源文件匹配成功的第三源文件作為的第二匹配源文件;對所述第一匹配源文件和所述第二匹配源文件進(jìn)行匹配處理,將匹配成功的第二匹配源文件所引用的第一頭文件確定為所述待優(yōu)化頭文件,以及匹配失敗的第二匹配源文件作為所述待優(yōu)化源文件。
6、在一實(shí)施例中,所述對所述第三源文件和所述第一源文件進(jìn)行匹配處理,包括:將所述第三源文件的文件名稱和所述第一源文件的文件名稱進(jìn)行同名匹配處理,得到和所述第一源文件匹配成功的第三源文件,以及和所述第一源文件匹配失敗的第三源文件;所述對所述第三源文件和所述第二源文件進(jìn)行匹配處理,包括:將所述第三源文件的文件名稱和所述第二源文件的文件名稱進(jìn)行同名匹配處理,得到和所述第二源文件匹配成功的第三源文件;所述對所述第一匹配源文件和所述第二匹配源文件進(jìn)行匹配處理,包括:將所述第一匹配源文件的文件名稱和所述第二匹配源文件的文件名稱進(jìn)行同名匹配處理,得到匹配成功的第二匹配源文件和匹配失敗的第二匹配源文件。
7、在一實(shí)施例中,所述對所述待優(yōu)化頭文件和/或所述待優(yōu)化源文件進(jìn)行優(yōu)化處理,得到優(yōu)化后的軟件工程項(xiàng)目,包括:基于所述引用關(guān)系查找每個(gè)待優(yōu)化頭文件對應(yīng)的待處理源文件;獲取每個(gè)待處理源文件所引用的各頭文件的功能類型;對每個(gè)待處理源文件中所述功能類型重復(fù)的頭文件進(jìn)行功能去重處理;和/或,提取各待優(yōu)化源文件中的預(yù)設(shè)代碼模板,并對各預(yù)設(shè)代碼模板進(jìn)行外部聲明處理,得到優(yōu)化后的源文件;獲取各優(yōu)化后的源文件的依賴關(guān)系;對存在重復(fù)依賴關(guān)系的源文件進(jìn)行依賴去重處理;得到所述優(yōu)化后的軟件工程項(xiàng)目。
8、在一實(shí)施例中,所述基于所述引用關(guān)系和預(yù)設(shè)的文件篩選規(guī)則從各頭文件中確定第一頭文件以及從各源文件中確定第一源文件,包括:基于所述引用關(guān)系確定每個(gè)源文件所引用的頭文件數(shù)量,以及每個(gè)頭文件的被引用次數(shù);基于每個(gè)源文件所引用的頭文件數(shù)量對各源文件進(jìn)行篩選處理,得到所述第一源文件;基于每個(gè)頭文件的被引用次數(shù)對各頭文件進(jìn)行篩選處理,得到所述第一頭文件。
9、在一實(shí)施例中,在所述對獲取到的軟件工程項(xiàng)目的各頭文件和各源文件進(jìn)行分析處理,得到各頭文件和各源文件之間的引用關(guān)系之前,包括:響應(yīng)于所述軟件工程項(xiàng)目的編譯事件觸發(fā),對所述軟件工程項(xiàng)目包含的解決方案進(jìn)行解析,得到所述解決方案的編譯信息;若基于所述編譯信息判斷所述解決方案未更新,則根據(jù)預(yù)設(shè)的復(fù)用列表獲取所述解決方案對應(yīng)的方案產(chǎn)物;若基于所述編譯信息判斷所述解決方案已更新,則對所述解決方案進(jìn)行編譯處理。
10、本申請第二方面提供了一種軟件編譯優(yōu)化裝置,包括:分析模塊,用于對獲取到的軟件工程項(xiàng)目的各頭文件和各源文件進(jìn)行分析處理,得到各頭文件和各源文件之間的引用關(guān)系;第一確定模塊,用于基于所述引用關(guān)系和預(yù)設(shè)的文件篩選規(guī)則從各頭文件中確定第一頭文件以及從各源文件中確定第一源文件;第二確定模塊,用于基于獲取到的各源文件在編譯過程中的編譯結(jié)果確定各源文件中的第二源文件以及確定各源文件中的第三源文件;匹配模塊,用于基于所述第一頭文件、所述第一源文件、所述第二源文件以及所述第三源文件之間的匹配結(jié)果確定待優(yōu)化頭文件和/或待優(yōu)化源文件;優(yōu)化模塊,用于對所述待優(yōu)化頭文件和/或所述待優(yōu)化源文件進(jìn)行優(yōu)化處理,得到優(yōu)化后的軟件工程項(xiàng)目。
11、本申請第三方面提供了一種電子設(shè)備,包括存儲器和處理器,處理器用于執(zhí)行存儲器中存儲的程序指令,以實(shí)現(xiàn)上述軟件編譯優(yōu)化方法。
12、本申請第四方面提供了一種計(jì)算機(jī)可讀存儲介質(zhì),其上存儲有程序指令,程序指令被處理器執(zhí)行時(shí)實(shí)現(xiàn)上述軟件編譯優(yōu)化方法。
13、上述方案,通過對獲取到的軟件工程項(xiàng)目的各頭文件和各源文件進(jìn)行分析處理,得到各頭文件和各源文件之間的引用關(guān)系;基于所述引用關(guān)系和預(yù)設(shè)的文件篩選規(guī)則從各頭文件中確定第一頭文件以及從各源文件中確定第一源文件,由此可以確定在編譯過程中可能影響編譯速度的頭文件和源文件;基于獲取到的各源文件在編譯過程中的編譯結(jié)果確定各源文件中的第二源文件以及確定各源文件中的第三源文件,則可以進(jìn)一步確定影響編譯速度的頭文件和源文件;因此,通過第一頭文件、第一源文件、第二源文件以及第三源文件之間的匹配結(jié)果能夠?qū)Υ齼?yōu)化頭文件和/或待優(yōu)化源文件進(jìn)行定位;對待優(yōu)化頭文件和/或待優(yōu)化源文件進(jìn)行優(yōu)化處理,能夠優(yōu)化編譯過程,得到優(yōu)化后的軟件工程項(xiàng)目,本文檔來自技高網(wǎng)...
【技術(shù)保護(hù)點(diǎn)】
1.一種軟件編譯優(yōu)化方法,其特征在于,所述方法包括:
2.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述基于獲取到的各源文件在編譯過程中的編譯結(jié)果確定各源文件中的第二源文件以及確定各源文件中的第三源文件,包括:
3.根據(jù)權(quán)利要求2所述的方法,其特征在于,所述基于所述目標(biāo)文件的文件大小對各源文件進(jìn)行篩選處理,得到所述第二源文件;以及基于所述編譯耗時(shí)對各源文件進(jìn)行篩選處理,得到所述第三源文件,包括:
4.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述基于所述第一頭文件、所述第一源文件、所述第二源文件以及所述第三源文件之間的匹配結(jié)果確定待優(yōu)化頭文件和/或待優(yōu)化源文件,包括:
5.根據(jù)權(quán)利要求4所述的方法,其特征在于,所述對所述第三源文件和所述第一源文件進(jìn)行匹配處理,包括:
6.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述對所述待優(yōu)化頭文件和/或所述待優(yōu)化源文件進(jìn)行優(yōu)化處理,得到優(yōu)化后的軟件工程項(xiàng)目,包括:
7.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述基于所述引用關(guān)系和預(yù)設(shè)的文件篩選規(guī)則從各頭文件中確定第一頭文件以及從各源文
8.根據(jù)權(quán)利要求1所述的方法,其特征在于,在所述對獲取到的軟件工程項(xiàng)目的各頭文件和各源文件進(jìn)行分析處理,得到各頭文件和各源文件之間的引用關(guān)系之前,包括:
9.一種電子設(shè)備,其特征在于,包括存儲器和處理器,所述處理器用于執(zhí)行所述存儲器中存儲的程序指令,以實(shí)現(xiàn)權(quán)利要求1至8任一項(xiàng)所述的方法。
10.一種計(jì)算機(jī)可讀存儲介質(zhì),其上存儲有程序指令,其特征在于,所述程序指令被處理器執(zhí)行時(shí)實(shí)現(xiàn)權(quán)利要求1至8任一項(xiàng)所述的方法。
...【技術(shù)特征摘要】
1.一種軟件編譯優(yōu)化方法,其特征在于,所述方法包括:
2.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述基于獲取到的各源文件在編譯過程中的編譯結(jié)果確定各源文件中的第二源文件以及確定各源文件中的第三源文件,包括:
3.根據(jù)權(quán)利要求2所述的方法,其特征在于,所述基于所述目標(biāo)文件的文件大小對各源文件進(jìn)行篩選處理,得到所述第二源文件;以及基于所述編譯耗時(shí)對各源文件進(jìn)行篩選處理,得到所述第三源文件,包括:
4.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述基于所述第一頭文件、所述第一源文件、所述第二源文件以及所述第三源文件之間的匹配結(jié)果確定待優(yōu)化頭文件和/或待優(yōu)化源文件,包括:
5.根據(jù)權(quán)利要求4所述的方法,其特征在于,所述對所述第三源文件和所述第一源文件進(jìn)行匹配處理,包括:
6.根據(jù)...
【專利技術(shù)屬性】
技術(shù)研發(fā)人員:林封笑,蘇浩,黃鵬,張小鋒,
申請(專利權(quán))人:浙江大華技術(shù)股份有限公司,
類型:發(fā)明
國別省市:
還沒有人留言評論。發(fā)表了對其他瀏覽者有用的留言會獲得科技券。