A method and system for reducing storage applications using dynamic script language into the required amount of memory space, the realized by the computer, the program module is loaded into memory and from the program module to remove code classification, such as debugging information or function etc.. The method and system for debugging also receives a request for information, or function calls or query, and the corresponding program code in the memory; if not in the position to identify the program stored in the memory module, and the corresponding program code contains another copy is loaded into the memory; loading the corresponding code and copied to the program in memory, and in response to the request.
【技術實現步驟摘要】
【國外來華專利技術】按需加載動態腳本語言代碼以減少內存使用相關申請案交叉申請本專利技術要求于2015年2月23日遞交的專利技術名稱為“按需加載動態腳本語言代碼以減少內存使用”的第14/629,197號美國非臨時專利申請案的在先申請優先權,該在先申請的內容以引入的方式并入本文。
本文大體涉及動態腳本語言代碼的編譯和加載,更具體地,涉及通過按需編譯和加載用動態腳本語言編寫成的應用程序源代碼以減少內存使用。
技術介紹
動態腳本語言廣泛應用于許多行業和學術領域。例如,JavaScript被廣泛認為是構建客戶端Web應用程序的主要計算機編程語言;PHP通常是用于建立服務器端Web應用程序的骨干;Python廣泛應用于建立高級和低級應用程序;Lua已廣泛應用在游戲行業和嵌入式系統中;R和Matlab已在特定應用中普及。一般情況下,動態腳本語言的性能帶來憂慮。例如,用動態腳本語言編寫成的應用程序通常運行較慢,且比基于靜態語言的應用程序使用更多的內存。但在許多場景下,內存使用至關重要。例如,在典型的嵌入式系統中,若應用程序所需的內存多過可用內存,應用程序將會崩潰。應用程序使用的內存通常包括代碼段和數據段。在許多應用程序中,所述代碼段最多可使用所需總內存的一半。因此,減少代碼段所需內存量是減少總應用程序內存使用的有效途徑。現有的減少代碼段所需內存量的方案包括重寫或重建應用程序,以移除不必要的代碼。此方案可行,因為應用程序通常包含應用程序的所有可能特征的源代碼,即使通常不執行某些特征。重寫或重建代碼能保證應用程序中只包含必要的代碼。然而,重寫或重建代碼是相對勞動密集型的,因此,相對昂貴。另外,純 ...
【技術保護點】
一種用于減少存儲用動態腳本語言編寫成的應用程序所需內存空間的系統,其特征在于,所述系統包括:輸入/輸出設備,用于接收與用動態腳本語言編寫成的程序模塊中的一段程序代碼對應的請求;按需加載器,用于確定所述一段程序代碼是否在內存中;若確定所述一段程序代碼不在所述內存中,則識別包含所述一段程序代碼的至少一部分所述程序模塊在存儲器中的存儲位置;定位所述一部分程序模塊的第二副本中的所述一段程序代碼;將所述一段程序代碼復制到所述內存中的所述程序模塊的第一副本中;代碼加載器,用于將包含所述一段程序代碼的所述一部分程序模塊的所述第二副本從所述存儲器加載到所述內存。
【技術特征摘要】
【國外來華專利技術】2015.02.23 US 14/629,1971.一種用于減少存儲用動態腳本語言編寫成的應用程序所需內存空間的系統,其特征在于,所述系統包括:輸入/輸出設備,用于接收與用動態腳本語言編寫成的程序模塊中的一段程序代碼對應的請求;按需加載器,用于確定所述一段程序代碼是否在內存中;若確定所述一段程序代碼不在所述內存中,則識別包含所述一段程序代碼的至少一部分所述程序模塊在存儲器中的存儲位置;定位所述一部分程序模塊的第二副本中的所述一段程序代碼;將所述一段程序代碼復制到所述內存中的所述程序模塊的第一副本中;代碼加載器,用于將包含所述一段程序代碼的所述一部分程序模塊的所述第二副本從所述存儲器加載到所述內存。2.根據權利要求1所述的系統,其特征在于,所述代碼加載器還將所述程序模塊的所述第一副本從所述存儲器加載到所述內存;將程序代碼分類從所述程序模塊的所述第一副本中移除,并將占位符插入所述程序模塊的所述第一副本。3.根據權利要求2所述的系統,其特征在于,從所述程序模塊的所述第一副本中移除的所述程序代碼分類包括調試信息和與從所述程序模塊的所述第一副本中移除的所述調試信息對應的請求。4.根據權利要求2所述的系統,其特征在于,從所述程序模塊的所述第一副本中移除的所述程序代碼分類包括函數定義和調用或查詢所述函數定義的請求。5.一種用于減少存儲用動態腳本語言編寫成的應用程序所需內存空間的方法,其特征在于,所述方法包括:通過處理器接收與用動態腳本語言編寫成的程序模塊中的一段程序代碼對應的請求;確定所述一段程序代碼是否在內存中;若確定所述一段程序代碼不在所述內存中,則識別包含所述一段程序代碼的至少一部分所述程序模塊在存儲器中的存儲位置;將包含所述一段程序代碼的所述一部分程序模塊的第二副本從所述存儲器加載到所述內存;定位所述一部分程序模塊的所述第二副本中的所述一段程序代碼;將所述一段程序代碼復制到所述內存中的所述程序模塊的第一副本中。6.根據權利要求5所述的方法,其特征在于,還包括:將所述程序模塊的所述第一副本從所述存儲器加載到所述內存;將程序代碼分類從所述程序模塊的所述第一副本中移除;將占位符插入所述程序模塊的所述第一副本。7.根據權利要求6所述的方法,其特征在于,從所述程序模塊的第一副本中移除的所述程序代碼分類包括...
【專利技術屬性】
技術研發人員:王海川,葉寒棟,吳芃,
申請(專利權)人:華為技術有限公司,
類型:發明
國別省市:廣東,44
還沒有人留言評論。發表了對其他瀏覽者有用的留言會獲得科技券。