[發明專利]一種用于控制工程軟件的腳本執行速度提升方法及裝置有效
| 申請號: | 202010119931.9 | 申請日: | 2020-02-26 |
| 公開(公告)號: | CN111258588B | 公開(公告)日: | 2023-03-17 |
| 發明(設計)人: | 王文海;孫優賢;馬聰威;嵇月強;張益南;張曉東;高慧;徐斌;王智;許志正;王秋婷;張穩穩;趙璐 | 申請(專利權)人: | 杭州優穩自動化系統有限公司;浙江大學 |
| 主分類號: | G06F8/41 | 分類號: | G06F8/41 |
| 代理公司: | 杭州宇信知識產權代理事務所(普通合伙) 33231 | 代理人: | 劉艷艷 |
| 地址: | 310000 浙江省杭州市*** | 國省代碼: | 浙江;33 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 一種 用于 控制工程 軟件 腳本 執行 速度 提升 方法 裝置 | ||
1.一種用于控制工程軟件的腳本執行速度提升方法,其特征在于,包括:
步驟S1、重構腳本框架,創建腳本解析器,其中,重構腳本框架,使用虛擬機寄存器架構代替棧式架構;
步驟S2、編譯腳本,使用hash表查找方法;
步驟S3、執行腳本,通過數組下標直接獲取函數,并判斷是否需要調用外部模塊:如需調用,則根據需求調用事件模塊、報表模塊、sql數據庫模塊和配方模塊中的一種或幾種,之后再跳轉至下一步;如不需調用,直接跳轉至下一步;
步驟S4、獲取執行結果;
步驟S5、根據用戶需求銷毀腳本解析器或返回步驟S2重新執行腳本解析器,用戶自定義內存申請或釋放接口時,使用宏定義切換內存申請方式,包括debug模式、std模式或自定義模式,其中,自定義模塊至少包括使用開放源代碼的第三方內存管理庫。
2.根據權利要求1所述的方法,其特征在于,步驟S3之后還包括步驟S3',判斷腳本的編譯和執行是否報錯:
若腳本報錯,根據C++拋錯機制進行精準定位,并修改腳本,然后跳轉至步驟S2重新執行;
若腳本沒有報錯,直接跳轉至步驟S4。
3.根據權利要求2所述的方法,其特征在于,步驟S5之后還包括,對腳本解析器進行性能測試,具體測試方法為:使用while對腳本局部變量進行腳本性能測試。
4.一種用于控制工程軟件的腳本執行速度提升裝置,其特征在于,至少包括:
實現架構模塊,用于重構腳本框架,創建腳本解析器,其中,重構腳本框架,使用虛擬機寄存器架構代替棧式架構;
擴展函數模塊,用于編譯腳本和執行腳本,其中,編譯腳本時,使用hash表查找方法,執行腳本時,通過數組下標直接獲取函數且獲取當前運行環境相關參數;還用于調用外部模塊,其中,外部模塊包括事件模塊、報表模塊、sql數據庫模塊和配方模塊;
運算指令模塊,設于腳本解析器中,用于重新定義目標代碼指令集,增加專門的運算符指令,其中,專門的運算符指令至少包括算術運算符指令、比較運算符指令、連接運算符指令和邏輯運算符指令;
內存管理模塊,用于自定義內存申請或釋放接口,根據需要切換模式,自定義內存申請或釋放接口時,使用宏定義切換內存申請方式,包括debug模式、std模式或自定義模式,其中,自定義模塊至少包括使用開放源代碼的第三方內存管理庫;還增加了內存管理回收機制,用于在每次循環后清除腳本執行產生的內存。
5.根據權利要求4所述的裝置,其特征在于,還包括異常處理模塊,用于判斷腳本的編譯和執行是否報錯,并使用C++拋錯機制定位具體錯誤位置。
6.根據權利要求4或5所述的裝置,其特征在于,所述實現架構模塊,還增加了變量類型,至少包括數組、字典和函數引用;還規范化變量作用域,變量查找先后順序按照局部變量-全局變量-系統記錄點排列。
7.根據權利要求4所述的裝置,其特征在于,所述擴展函數模塊中,擴展函數接口提供所有函數信息的結構,函數參數統一只有一個指針,指向該腳本執行信息結構和當前運行環境相關參數;編譯時使用hash表查找,執行時通過數組下標直接獲取函數。
8.根據權利要求4所述的裝置,其特征在于,所述內存管理模塊中,增加了內存管理回收機制,使得每個腳本獨立對所有申請的內存使用鏈表進行管理,統一對申請的內存進行掃描,釋放無引用內存。
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于杭州優穩自動化系統有限公司;浙江大學,未經杭州優穩自動化系統有限公司;浙江大學許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/202010119931.9/1.html,轉載請聲明來源鉆瓜專利網。
- 上一篇:一種拉伸彎曲的復合檢測裝置
- 下一篇:一種判斷膩子粉粘接強度的方法





