新四季網

JackServer實例的管理方法和裝置與流程

2023-09-22 21:39:55


本發明涉及軟體編譯技術,尤其涉及一種jackserver實例的管理方法和裝置。



背景技術:

優般圖(ubuntu)是一種linux作業系統,也稱為友幫拓或烏班圖,因其開源特性被廣泛使用。例如,安卓(android)系統手機也使用ubuntu進行程序開發。

目前,有多個軟體工程師可能會同時在一個ubuntu伺服器進行程序開發,因而需要在ubuntu伺服器上創建多個用戶。每個用戶在程序開發的過程中都會進行程序編譯,例如android7.0以後的版本的android編譯程序需要使用jackserver進行程序編譯,而jackserver默認一個埠只能一個用戶使用,且每一個用戶編譯時會創建一個jackserver實例。編譯完成後jackserver並不會自動清除,而是長期佔用大量內存。

隨著用戶數量的增多,大量的jackserver實例長期佔用ubuntu伺服器的內存,使得ubuntu伺服器運行緩慢,影響程序開發的進度。



技術實現要素:

本發明提供一種jackserver實例的管理方法和裝置,以實現自動清除編譯結束後不需要的jackserver實例,有效節約內存,提升系統運行速度,提高開發效率。

第一方面,本發明實施例提供的一種jackserver實例的管理方法,包括:

在android項目編譯結束後,檢查當前jackserver實例的佔用情況;

根據當前jackserver實例的佔用情況判斷當前jackserver實例是否被佔用;

若當前jackserver實例被佔用,則重新檢查當前jackserver實例的佔用情況;

若當前jackserver實例未被佔用,則結束當前jackserver實例。

可選地,在檢查當前jackserver實例的佔用情況之前,還包括:

檢查android項目是否編譯結束,若android項目未編譯結束,則等待android項目編譯結束。

可選地,所述檢查當前jackserver實例的佔用情況,包括:

檢測當前jackserver實例對應用戶的用戶進程中包含的編譯進程的個數;

所述根據當前jackserver實例的佔用情況判斷當前jackserver實例是否被佔用,包括:

判斷所述用戶進程中包含的編譯進程的個數是否大於0;

若所述用戶進程中包含的編譯進程的個數等於0,則確定當前jackserver實例未被佔用;

若所述用戶進程中包含的編譯進程的個數大於0,則確定當前jackserver實例被佔用。

可選地,所述檢測當前jackserver實例對應用戶的用戶進程中包含的編譯進程的個數,包括:

查詢所述用戶進程中進程的指令的抬頭字符串中是否包含預設的字符串,所述預設的字符串包含以下中的任意一個:make、mm或mmm;

當所述用戶進程中進程的指令的抬頭字符串中包含所述預設的字符串時,則用戶進程中包含的編譯進程個數的統計值自增1。

可選地,所述若當前jackserver實例未被佔用,則結束當前jackserver實例進程,包括:

運行關閉jackserver實例執行指令,以結束當前jackserver實例進程。

可選地,所述檢查jackserver實例對應的項目是否編譯結束,包括:

判斷所述jackserver實例對應的項目是否生成app文件或者image文件;

若所述jackserver實例對應的項目生成了app文件或者image文件,則確定所述jackserver實例對應的項目已編譯結束。

第二方面,本發明實施例提供一種jackserver實例的管理裝置,包括:

檢測模塊,用於在android項目編譯結束後,檢查當前jackserver實例的佔用情況;

判斷模塊,用於根據當前jackserver實例的佔用情況判斷當前jackserver實例是否被佔用;

檢測模塊,還用於在當前jackserver實例被佔用時,重新檢查當前jackserver實例的佔用情況;

結束模塊,用於在當前jackserver實例未被佔用時,則結束當前jackserver實例。

可選地,所述檢測模塊,還用於:

在檢查當前jackserver實例的佔用情況之前,檢查android項目是否編譯結束,若android項目未編譯結束,則等待android項目編譯結束。

可選地,所述檢測模塊,具體用於:檢測當前jackserver實例對應用戶的用戶進程中包含的編譯進程的個數;

所述判斷模塊,具體用於:判斷所述用戶進程中包含的編譯進程的個數是否大於0;

若所述用戶進程中包含的編譯進程的個數等於0,則確定當前jackserver實例未被佔用;

若所述用戶進程中包含的編譯進程的個數大於0,則確定當前jackserver實例被佔用。

可選地,所述檢測模塊,具體用於:查詢所述用戶進程中進程的指令的抬頭字符串中是否包含預設的字符串,所述預設的字符串包含以下中的任意一個:make、mm或mmm;

當所述用戶進程中進程的指令的抬頭字符串中包含所述預設的字符串時,則用戶進程中包含的編譯進程個數的統計值自增1。

可選地,所述結束模塊,還用於運行關閉jackserver實例執行指令,以結束當前jackserver實例進程。

可選地,所述檢測模塊,還用於:

判斷所述jackserver實例對應的項目是否生成app文件或者image文件;

若所述jackserver實例對應的項目生成了app文件或者image文件,則確定所述jackserver實例對應的項目已編譯結束。

本發明提供的jackserver實例的管理方法和裝置,通過在android項目編譯結束後,檢查當前jackserver實例的佔用情況,若檢查確定當前jackserver實例未被佔用,則結束當前jackserver實例。從而能夠在編譯結束後,自動釋放未被佔用的jackserver實例佔用的內存,從而能夠有效節約系統內存,提升系統運行速度,提高程序開發的效率。

附圖說明

為了更清楚地說明本發明實施例或現有技術中的技術方案,下面將對實施例或現有技術描述中所需要使用的附圖作一簡單地介紹,顯而易見地,下面描述中的附圖是本發明的一些實施例,對於本領域普通技術人員來講,在不付出創造性勞動性的前提下,還可以根據這些附圖獲得其他的附圖。

圖1為本發明實施例一提供的jackserver實例的管理方法的流程圖;

圖2為本發明實施例二提供的jackserver實例的管理方法的流程圖;

圖3為本發明實施例三提供的jackserver實例的管理方法的流程圖;

圖4為本發明實施例一提供的jackserver實例的管理裝置的結構示意圖。

具體實施方式

為使本發明實施例的目的、技術方案和優點更加清楚,下面將結合本發明實施例中的附圖,對本發明實施例中的技術方案進行清楚、完整地描述,顯然,所描述的實施例是本發明一部分實施例,而不是全部的實施例。基於本發明中的實施例,本領域普通技術人員在沒有作出創造性勞動前提下所獲得的所有其他實施例,都屬於本發明保護的範圍。

圖1為本發明實施例一提供的jackserver實例的管理方法的流程圖,如圖1所示,本實施例的方法可以包括:

s101、在android項目編譯結束後,檢查當前jackserver實例的佔用情況。

本實施例中,檢查當前jackserver實例的佔用情況,具體為:檢查當前jackserver實例對應用戶的用戶進程中包含的編譯進程的個數。在伺服器中,每個jackserver實例對應一個用戶,用戶的用戶進程中包括多個進程,多個進程中可能包括編譯進程以及其他進程。

s102、根據當前jackserver實例的佔用情況判斷當前jackserver實例是否被佔用。

在當前jackserver實例的佔用情況為當前jackserver實例對應用戶的用戶進程中的編譯進程數量時,根據當前jackserver實例的佔用情況判斷當前jackserver實例是否被佔用,具體為:判斷用戶進程中包含的編譯進程的個數是否大於0。若用戶進程中包含的編譯進程的個數等於0,則確定當前jackserver實例未被佔用;若用戶進程中包含的編譯進程的個數大於0,則確定當前jackserver實例被佔用。

若當前jackserver實例被佔用時,則返回執行步驟s101,若當前jackserver實例未被佔用時,執行步驟s103。

可選地,本實施例中,當前jackserver實例被佔用時,可以間隔預設時間重新檢查當前jackserver實例的佔用情況;或者,以計算機運行的最小時間差(例如毫秒級)重新檢查當前jackserver實例的佔用情況。

s103、結束當前jackserver實例。

可以通過運行關閉jackserver實例執行指令,結束當前jackserver實例進程。該關閉jackserver實例執行指令例如是:jack-adminkill-server指令。本實施例中,結束當前jackserver實例即釋放當前jackserver實例所佔用的內存。

本實施例,通過在android項目編譯結束後,檢查當前jackserver實例的佔用情況,若檢查確定當前jackserver實例未被佔用,則結束當前jackserver實例。從而能夠在編譯結束後,自動釋放未被佔用的jackserver實例佔用的內存,從而能夠有效節約系統內存,提升系統運行速度,提高程序開發的效率。

圖2為本發明實施例二提供的jackserver實例的管理方法的流程圖,如圖2所示,本實施例的方法在圖1所示方法的基礎上,可以包括:

s201、檢查android項目是否編譯結束,若android項目未編譯結束,則等待android項目編譯結束。

具體地,判斷android項目是否生成app文件或者image文件;若android項目生成了app文件或者image文件,則確定android項目已編譯結束。若android項目未生產app文件或者image文件,則確定android項目沒有編譯結束。

s202、在android項目編譯結束後,檢查當前jackserver實例的佔用情況。

s203、根據當前jackserver實例的佔用情況判斷當前jackserver實例是否被佔用;若當前jackserver實例被佔用,則返回執行步驟s202;若當前jackserver實例未被佔用,則執行步驟s204。

s204、結束當前jackserver實例進程。

本實施例中,步驟s202-s204的具體實現過程參見圖1所示方法中的相關描述,此處不再贅述。

圖3為本發明實施例三提供的jackserver實例的管理方法的流程圖,如圖3所示,本實施例的方法在圖1所示方法的基礎上,可以包括:

s301、在android項目編譯結束後,檢測當前jackserver實例對應用戶的用戶進程中包含的編譯進程的個數。

本實施例中,通過統計當前jackserver實例對應用戶的用戶進程中包含的編譯進程的個數,檢測當前jackserver實例的佔用情況。

可選地,檢測當前jackserver實例對應用戶的用戶進程中包含的編譯進程的個數,具體為:查詢用戶進程中進程的指令的抬頭字符串中是否包含預設的字符串,該預設的字符串包含以下中的任意一個:make、mm或mmm;當用戶進程中進程的指令的抬頭字符串中包含該預設的字符串時,則用戶進程中包含的編譯進程個數的統計值自增1。

s302、判斷用戶進程中包含的編譯進程的個數是否大於0。

本實施例中,根據用戶進程中包含的編譯進程的個數是否為0來判斷當前jackserver實例是否被佔用。若用戶進程中包含的編譯進程的個數等於0,則確定jackserver實例沒有被佔用,執行步驟s303;若用戶進程中包含的編譯進程的個數大於0,則確定jackserver實例被佔用,返回執行步驟s301。

s303、結束當前jackserver實例進程。

本實施例中,步驟s303的具體實現過程參見圖1所示方法中的相關描述,此處不再贅述。

圖4為本發明實施例一提供的jackserver實例的管理裝置的結構示意圖,如圖4所示,本實施例的裝置可以包括:檢測模塊10、判斷模塊20和結束模塊30。檢測模塊10,用於在android項目編譯結束後,檢查當前jackserver實例的佔用情況。判斷模塊20,用於根據當前jackserver實例的佔用情況判斷當前jackserver實例是否被佔用。判斷模塊,還用於在當前jackserver實例被佔用時,重新檢查當前jackserver實例的佔用情況。結束模塊,用於在當前jackserver實例未被佔用時,結束當前jackserver實例進程。

可選地,檢測模塊10,還用於:在檢查當前jackserver實例的佔用情況之前,檢查android項目是否編譯結束,若android項目未編譯結束,則等待android項目編譯結束。

可選地,檢測模塊10,具體用於:檢測當前jackserver實例對應用戶的用戶進程中包含的編譯進程的個數;

可選地,判斷模塊20,具體用於:判斷用戶進程中包含的編譯進程的個數是否大於0;在用戶進程中包含的編譯進程的個數等於0時,確定當前jackserver實例未被佔用;在用戶進程中包含的編譯進程的個數大於0時,確定當前jackserver實例被佔用。

可選地,檢測模塊10,具體用於:查詢用戶進程中進程的指令的抬頭字符串中是否包含預設的字符串,預設的字符串包含以下中的任意一個:make、mm或mmm;當用戶進程中進程的指令的抬頭字符串中包含預設的字符串時,則用戶進程中包含的編譯進程個數的統計值自增1。

本實施例可以執行上述圖1-圖3中任意一項所示的方法中的技術方案,其實現過程和技術效果與上述方法類似,此處不再贅述。

此外,本申請實施例還提供一種計算機可讀存儲介質,計算機可讀存儲介質中存儲有計算機執行指令,當用戶設備的至少一個處理器執行該計算機執行指令時,用戶設備執行上述各種可能的方法。

其中,計算機可讀介質包括計算機存儲介質和通信介質,其中通信介質包括便於從一個地方向另一個地方傳送電腦程式的任何介質。存儲介質可以是通用或專用計算機能夠存取的任何可用介質。一種示例性的存儲介質耦合至處理器,從而使處理器能夠從該存儲介質讀取信息,且可向該存儲介質寫入信息。當然,存儲介質也可以是處理器的組成部分。處理器和存儲介質可以位於asic中。另外,該asic可以位於用戶設備中。當然,處理器和存儲介質也可以作為分立組件存在於通信設備中。

本領域普通技術人員可以理解:實現上述各方法實施例的全部或部分步驟可以通過程序指令相關的硬體來完成。前述的程序可以存儲於一計算機可讀取存儲介質中。該程序在執行時,執行包括上述各方法實施例的步驟;而前述的存儲介質包括:rom、ram、磁碟或者光碟等各種可以存儲程序代碼的介質。

最後應說明的是:以上各實施例僅用以說明本發明的技術方案,而非對其限制;儘管參照前述各實施例對本發明進行了詳細的說明,本領域的普通技術人員應當理解:其依然可以對前述各實施例所記載的技術方案進行修改,或者對其中部分或者全部技術特徵進行等同替換;而這些修改或者替換,並不使相應技術方案的本質脫離本發明各實施例技術方案的範圍。

同类文章

一種新型多功能組合攝影箱的製作方法

一種新型多功能組合攝影箱的製作方法【專利摘要】本實用新型公開了一種新型多功能組合攝影箱,包括敞開式箱體和前攝影蓋,在箱體頂部設有移動式光源盒,在箱體底部設有LED脫影板,LED脫影板放置在底板上;移動式光源盒包括上蓋,上蓋內設有光源,上蓋部設有磨沙透光片,磨沙透光片將光源封閉在上蓋內;所述LED脫影

壓縮模式圖樣重疊檢測方法與裝置與流程

本發明涉及通信領域,特別涉及一種壓縮模式圖樣重疊檢測方法與裝置。背景技術:在寬帶碼分多址(WCDMA,WidebandCodeDivisionMultipleAccess)系統頻分復用(FDD,FrequencyDivisionDuplex)模式下,為了進行異頻硬切換、FDD到時分復用(TDD,Ti

個性化檯曆的製作方法

專利名稱::個性化檯曆的製作方法技術領域::本實用新型涉及一種檯曆,尤其涉及一種既顯示月曆、又能插入照片的個性化檯曆,屬於生活文化藝術用品領域。背景技術::公知的立式檯曆每頁皆由月曆和畫面兩部分構成,這兩部分都是事先印刷好,固定而不能更換的。畫面或為風景,或為模特、明星。功能單一局限性較大。特別是畫

一種實現縮放的視頻解碼方法

專利名稱:一種實現縮放的視頻解碼方法技術領域:本發明涉及視頻信號處理領域,特別是一種實現縮放的視頻解碼方法。背景技術: Mpeg標準是由運動圖像專家組(Moving Picture Expert Group,MPEG)開發的用於視頻和音頻壓縮的一系列演進的標準。按照Mpeg標準,視頻圖像壓縮編碼後包

基於加熱模壓的纖維增強PBT複合材料成型工藝的製作方法

本發明涉及一種基於加熱模壓的纖維增強pbt複合材料成型工藝。背景技術:熱塑性複合材料與傳統熱固性複合材料相比其具有較好的韌性和抗衝擊性能,此外其還具有可回收利用等優點。熱塑性塑料在液態時流動能力差,使得其與纖維結合浸潤困難。環狀對苯二甲酸丁二醇酯(cbt)是一種環狀預聚物,該材料力學性能差不適合做纖

一種pe滾塑儲槽的製作方法

專利名稱:一種pe滾塑儲槽的製作方法技術領域:一種PE滾塑儲槽一、 技術領域 本實用新型涉及一種PE滾塑儲槽,主要用於化工、染料、醫藥、農藥、冶金、稀土、機械、電子、電力、環保、紡織、釀造、釀造、食品、給水、排水等行業儲存液體使用。二、 背景技術 目前,化工液體耐腐蝕貯運設備,普遍使用傳統的玻璃鋼容

釘的製作方法

專利名稱:釘的製作方法技術領域:本實用新型涉及一種釘,尤其涉及一種可提供方便拔除的鐵(鋼)釘。背景技術:考慮到廢木材回收後再加工利用作業的方便性與安全性,根據環保規定,廢木材的回收是必須將釘於廢木材上的鐵(鋼)釘拔除。如圖1、圖2所示,目前用以釘入木材的鐵(鋼)釘10主要是在一釘體11的一端形成一尖

直流氧噴裝置的製作方法

專利名稱:直流氧噴裝置的製作方法技術領域:本實用新型涉及ー種醫療器械,具體地說是ー種直流氧噴裝置。背景技術:臨床上的放療過程極易造成患者的局部皮膚損傷和炎症,被稱為「放射性皮炎」。目前對於放射性皮炎的主要治療措施是塗抹藥膏,而放射性皮炎患者多伴有局部疼痛,對於止痛,多是通過ロ服或靜脈注射進行止痛治療

新型熱網閥門操作手輪的製作方法

專利名稱:新型熱網閥門操作手輪的製作方法技術領域:新型熱網閥門操作手輪技術領域:本實用新型涉及一種新型熱網閥門操作手輪,屬於機械領域。背景技術::閥門作為流體控制裝置應用廣泛,手輪傳動的閥門使用比例佔90%以上。國家標準中提及手輪所起作用為傳動功能,不作為閥門的運輸、起吊裝置,不承受軸向力。現有閥門

用來自動讀取管狀容器所載識別碼的裝置的製作方法

專利名稱:用來自動讀取管狀容器所載識別碼的裝置的製作方法背景技術:1-本發明所屬領域本發明涉及一種用來自動讀取管狀容器所載識別碼的裝置,其中的管狀容器被放在循環於配送鏈上的文檔匣或託架裝置中。本發明特別適用於,然而並非僅僅專用於,對引入自動分析系統的血液樣本試管之類的自動識別。本發明還涉及專為實現讀