JIT

JIT是一个并发虚拟机,运行NBRE上算法和接口程序,是NBRE动态更新的基石。

一、功能

动态更新 NBRE动态更新包含两个内容:

  • NBRE自身的动态更新
  • NBRE增加新的功能接口

NBRE的更新都是通过增加新的算法和接口程序并放入数据库中,自身更新和调用新的功能都是数据库中载入对应程序到JIT中运行。

并发虚拟机 为提高性能,JIT基于并发虚拟机机制实现。 当一个功能被调用,JIT首先查询内存中是否已载入对应程序。 如果程序被载入,设置其运行计数为1800;否则载入该程序,设置其运行计数为1801。 然后运行对应的程序。 每隔一段时间(现定为1秒),JIT将每个载入的函数对应计数减一,并对计数小于0的程序进行释放。

二、框架

JIT框架如下图所示。

https://github.com/nebulasio/nebdocs/blob/zh-CN/docs/resources/JIT.png

  1. 外部申请调用一个功能
  2. JIT从数据库中查询对应功能的程序
  3. JIT载入对应程序
  4. 运行程序
  5. 返回运行结果