轻量化运行时

仓颉语言提供了超轻量化的运行时,不但自身的分发开销低,也帮助应用以极低的开销部署和运行。

通过软件工程的优化手段,仓颉运行时库剔除了不必要的冗余代码,移除了对 C++ 运行库的依赖,减少了外部可见符号的定义,其二进制体积达到了 1MB 量级。针对嵌入式的定制优化后的运行时共享库的体积更小,可以达到约 500KB 这个量级。

仓颉轻量化运行时支持用户态线程以极低的开销创建、运行和调度。用户态线程的创建耗时只需数百纳秒,用户代码执行栈内存仅有数 KB,单次调度耗时只需数百纳秒。

仓颉轻量化运行时实现了仓颉语言与 C 语言互调的开销接近零成本。在底层实现上,仓颉语言的 ABI 定义与 C 语言高度兼容。仓颉语言支持的 C 兼容类型(通过“@C”关键字修饰)具有和 C 语言一致的内存布局,在典型场景里,仓颉语言与 C 语言数据可以实现无转换地共享。

仓颉轻量化运行时为开发者提供了灵活的应用剪裁技术,帮助开发者优化应用的包体积。仓颉语言的反射机制支持按需使能,可以在不需要时关闭反射能力。对于仓颉包内的私有方法可以通过函数粒度的按需链接清除冗余代码。

在轻量化运行时的帮助下,仓颉应用的部署和启动开销极低,应用启动时长在十毫秒级别,空载应用内存在 1MB 量级,在嵌入式场景里空载内存小于 1MB。