Dart

作者: 李永开 | 来源:发表于2020-07-12 11:59 被阅读0次

    一.?

    谷歌开发的

    二.编译方式

    Dart是少数同时支持JIT(Just In Time,即时编译)和AOT(Ahead of Time,运行前编译)的语言.

    • JIT在运行时即时编译,在开发周期中使用,可以动态下发和执行代码,开发测试效率高,但运行速度和执行性能则会因为运行时即时编译受到影响。JavaScript、Python等几乎所有的脚本语言
    • AOT即提前编译,可以生成被直接执行的二进制代码,运行速度快、执行性能表现好,但每次执行前都需要提前编译,开发测试效率低。oc java c

    三.内存分配与垃圾回收

    Dart VM的内存分配策略比较简单,创建对象时只需要在堆上移动指针,内存增长始终是线性的,省去了查找可用内存的过程。

    在Dart中,并发是通过Isolate实现的。Isolate是类似于线程但不共享内存,独立运行的worker。这样的机制,就可以让Dart实现无锁的快速分配。

    Dart的垃圾回收,则是采用了多生代算法。新生代在回收内存时采用“半空间”机制,触发垃圾回收时,Dart会将当前半空间中的“活跃”对象拷贝到备用空间,然后整体释放当前空间的所有内存。回收过程中,Dart只需要操作少量的“活跃”对象,没有引用的大量“死亡”对象则被忽略,这样的回收机制很适合Flutter框架中大量Widget销毁重建的场景。

    相关文章

      网友评论

          本文标题:Dart

          本文链接:https://www.haomeiwen.com/subject/xzmrfktx.html