美文网首页Flutter
Dart语言概览

Dart语言概览

作者: 我为双鱼狂 | 来源:发表于2019-10-12 16:59 被阅读0次

Dart特性

Dart同时支持JIT(Just In Time,即时编译)和AOT(Ahead of Time,运行前编译)两种编译模式。

JIT 在运行时即时编译,在开发周期中使用,可以动态下发和执行代码,开发测试效率高,但运行速度和执行性能则会因为运行时即时编译受到影响。

AOT 即提前编译,可以生成被直接执行的二进制代码,运行速度快、执行性能表现好,但每次执行前都需要提前编译,开发测试效率低。

Flutter在开发期使用JIT编译,可以缩短产品的开发周期,例如热重载就是基于该特性。在发布期使用AOT,具有运行速度快、执行性能好的特点。

内存分配与垃圾回收

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

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

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

单线程

Dart是单线程模型,不存在资源竞争和状态同步的问题。这就意味着,一旦某个函数开始执行,就将执行到这个函数结束,而不会被其他Dart代码打断。

Dart中并没有线程,只有Isolate(隔离区)。Isolates之前不会共享内存,就像几个运行在不同进程中的worker,通过事件循环(Event Looper)在事件队列(Event Queue)上传递消息通信。

无需单独的声明式布局语言

  • 在Flutter中,界面布局直接通过Dart编码来定义。
  • Dart声明式编程布局易于阅读和可视化,使得Flutter并不需要类似JSX或XML的声明式布局语言。所有的布局都使用同一种格式,也使得Flutter很容易提供高级工具使布局更简单。
  • 开发过程也不需要可视化界面构建器,因为热重载可以让我们立即在手机上看到效果。

相关文章

  • 【Flutter-Dart跨平台开发】01-Dart 语言概览

    Dart 语言概览 2018年12月29日开始笔记 1、Dart 语言概览Dart 是谷歌在 2011 年推出的编...

  • Dart语言简介

    Dart语言概览 Dart Language Tour[https://dart.dev/guides/langu...

  • Dart - Dart 语言介绍

    在线练习 Dart 在线练习 - DartPad 一些文章 Dart 开发语言概览Dart语言简介 30分钟掌握D...

  • Dart语言概览

    Dart特性 Dart同时支持JIT(Just In Time,即时编译)和AOT(Ahead of Time,运...

  • Flutter跨平台开发-语音基础

    Dart For Objcer 本文档是一个面向Objcer 的更加精炼的 Dart 语言概览[https://d...

  • flutter语法学习

    相关资料整理: Dart 语言概览[http://wiki.jikexueyuan.com/project/dar...

  • Dart语言

    Dart语言概览 一切皆对象,所有对象均继承自Object 虽然Dart是强类型语言,但是变量类型是可选的,因为D...

  • 1. Dart - 变量/常量

    Flutter之Dart 编程语言概览学习 前言 这里只是个人学习过程中的一些总结。Dart编程语言中文网[htt...

  • 5、Dart 变量

    详情请看 Dart 编程语言概览[https://www.dartcn.com/guides/language/l...

  • Dart 开发语言概览(学习)

    一个简单的 Dart 程序 // This is a comment. // 注释。以双斜杠开头的一行语句称为单行...

网友评论

    本文标题:Dart语言概览

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