Runtime是什么?


 

在看 RPC 的概念模型與實現解析 的時候,看到圖片上有Runtime,又想到見過很多Runtime之類的東西,所以就想弄明白這到底是個什么東西。

(因為是程序名,所以根本沒想到代碼的“編譯-運行”~)

於是上網求助,得到很多熱心網友的回復:

字面意思,運行時 
目前天天用application server runtime environment(如,Tomcat) 
相對的還有design time, build time... 
運行時 是相當於 編譯時來說的
有些事情是在編譯時就能決定的
有些決定在運行時候才知道
編譯時候就能決定的東西通常顯得看起來沒技術含量
比如說 int i=0;編譯時候就知道i=0
運行時才能決定的東西顯得比較高大上點
所以起名字沒事就加個runtime顯得比格高一點。 
這兩個詞應該是來源自編譯器解釋器相關的用語
java運行時決定的特性比如說多態,反射之類的
一個決策放到運行時才決定靈活性會高很多,實現難度也高很多
  
一個系統叫xxxruntime就是聲稱自己設計的比較牛,比較靈活可定制
幾乎是一個可編程的環境,幾乎是一個虛擬機 
runtime對應於compile time來講的。
比如hello world里javac這步是 compile
  
實際生產環境,會有打包發布到生產環境里面,要改代碼就要重新編譯打包發布,如果pipleline做得不好,這幾步可以很冗長。
  
你可以看下spring的Dependency Injection. 里面就是可以通過改配置文件產生不同的實現,不需要重新編譯。這個就是runtime 
我來給你解釋下吧。
這個runtime是這個架構圖里面一個組件的命名,你要問作者為什么把這部分程序叫做叫做runtime。一個組件的命名,一般是根據他的功能和職責命名的。一個系統中有組件命名為runtime那么必然有組件負責designtime。你貼的這個圖是一個RPC系統。一般使用方法是需要定義IDL,然后使用一些系統提供的工具生成stub之類的東西。然后程序運行起來之后真正進行遠程調用時,有個組件要負責,序列化反序列化,網絡通訊這些功能。在上面這個過程中,生成stub的系統就是design time組件。而負責傳輸數據,序列化反序列化的組件就可以命名為runtime組件。
其他系統也類似,一個數據庫系統,編輯sql的編輯器就是design time, 響應sql, 執行操作的部分就是runtime。
一個工作流系統,定義流程模型的部分可以認為是design time, 解釋執行流程的部分就是runtime。
一個游戲系統,地圖編輯器之類的組件就是design time, 把游戲跑起來的部分就是runtime。
總之,系統跑起來,負責干活那部分組件就是runtime。 

 

最后一個答復異常清晰!

再次謝過諸位大神~


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM