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。 

 

最后一个答复异常清晰!

再次谢过诸位大神~

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值