Facebook 重写 React 和 Relay 框架,旨在提升性能

Facebook 已完全重写用于构建用户界面的 React 框架。新的项目名称为 React Fiber,其在公布之前就已在 Facebook.com 运行使用。现在,Facebook 将此项目公示,并计划在今年推出 React 16.0 之后将它向开发者开放。

同时,Facebook 也表示已重写 React 的数据驱动框架 Relay。

React Fiber

React Fiber 包含 React 最初的开发理念,也兼容现有的基于 React 的应用程序。Facebook 将其作为 React 框架未来改进和功能开发的基础。

关于为何重写 React 的问题,React 核心开发团队的 Ben Alpert 说道:“这并不代表旧代码存在问题,而是我们希望从一个新起点开始,继续往前发展。”这意味着新代码从一开始就是可扩展的。Alpert 强调,重写后的框架会带来一些突破性的变化,强大的 API 合约将给项目的更新带来灵活性。

Relay Modern

Relay 的重写主要在其性能和可扩展性。Relay 将 React 与 Facebook 的 GraphQL 查询语言结合起来成就了 Relay Modern,它旨在推动 Relay 的理念,并克服原始设计的一些限制,即简化设计以提高框架整体性能。

Relay Modern 保留了 Relay 的最佳部分:

共同定位的数据和视图定义

声明式数据提取

同时:

简化 API

增加新功能

简化框架大小以提升性能等

Facebook 表示,当他们将 Facebook 应用程序中的 Marketplace 选项卡从“Relay”转接到“Relay Modern”时,Android 上交互的时间平均提高了 900ms,使应用程序的响应更敏捷。

本文来自开源中国社区 [http://www.oschina.net]

时间: 2024-07-28 14:46:16

Facebook 重写 React 和 Relay 框架,旨在提升性能的相关文章

Win10 UWP再支持Facebook React Native开源框架

微软正在为React Native开源框架增加Windows 10 UWP的支持. React Native最初是由Facebook开发的用于生成用户界面的JavaScript代码库,并于2015年开放了的源代码.该框架旨在让开发人员能够开发跨iOS和安卓平台的移动原生应用程序.但是,React Native并不是一次编写就能在多个平台运行的框架,相反,它侧重于每个平台独特的功能特点. 微软称,将React Native应用程序延伸到了Windows 10设备,包括个人电脑.移动设备.Xbox

Win10 UWP 再支持 React Native 开源框架

React Native最初是由Facebook开发的用于生成用户界面的JavaScript代码库,并于2015年开放了的源代码.该框架旨在让开发人员能够开发跨iOS和安卓平台的移动原生应用程序.但是,React Native并不是一次编写就能在多个平台运行的框架,相反,它侧重于每个平台独特的功能特点. 微软称,将React Native应用程序延伸到了Windows 10设备,包括个人电脑.移动设备.Xbox One和HoloLens."对于Windows应用程序开发人员来说,这也意味着有机会

Facebook:React向Windows、Tizen、iOS和Android开放

正在进行的F8开发者大会上,Facebook面向React(构建反应式图形界面的JavaScript库)开发者提供了一些酷炫的东西.在和三星.微软的合作下,React Native应用能够为Windows.Xbox.智能电视和可穿戴设备编译使用.微软现已支持在Universal Windows Platform(UWP)平台上使用React Native框架,同样那些为Windows编译的应用程序也能访问React Native工具. React Native同样也会登陆Tizen系统(涵盖三星

DT科技评论第36期:Facebook开源Caffe2深度学习框架

DT科技评论 Data Technology Review 第 36 期           阿里云研究中心,人民网研究院,DeepTech深科技 本期目录 谷歌斥资2910万美元建数据中心 Facebook推出AR新应用 Facebook开源Caffe2深度学习框架 Facebook研发"意念打字" IBM Security App Exchange平台上的应用程序突破90个 谷歌发布新版谷歌地球 谷歌正在开发招聘App Malwarebytes实验室介绍:网络犯罪战术与技术报告 英

JavaScript提升性能的常用技巧总结【经典】_javascript技巧

本文讲述了JavaScript提升性能的常用技巧.分享给大家供大家参考,具体如下: 1.注意作用域 随着作用域链中的作用域数量的增加,访问当前作用域以外的变量的时间也在增加.访问全局变量总是要比访问局部变量慢,因为要遍历作用域链.  1). 避免全局查找   将在一个函数中会多次用到的全局对象存储为局部变量总是没错的. 2). 避免 with 语句  with会创建自己的作用域,因此会增加其中执行代码的作用域链的长度. 2.选择正确的方法 性能问题的一部分是和用于解决问题的算法或者方法有关的.

AMP是如何提升性能?

AMP简介 Google推出移动网页加速项目AMPAMP介绍 AMP是如何提升性能? 以下的优化点是AMP页面能被快速加载的原因: 只允许异步脚本 静态计算资源尺寸大小 不让 外部插件阻塞渲染 让所有第三方JavaScript离开关键路径 所有CSS必须内联 字体触发必须高效 最小化样式重计算 只运行GPU加速动画 加载资源的优先级策略 瞬间加载页面 下面这个视频是APM引擎的lead ,Malte Ubl对AMP的介绍,内容跟下面的段落差不多. 只允许异步脚本 JavaScript很强大,它能

Facebook专家:Huge Page是否为拯救性能的万能良药?

准备知识   在阅读本文之前,需要读者至少了解以下基础知识:   CPU Cache的基本概念. NUMA的基本概念. 目前Linux基于多核CPU繁忙程度的线程调度机制,参看Chip Multi Processing aware Linux Kernel Scheduler论文.   一.关于Huge Page   在正式开始本文分析前,我们先大概介绍下Huge Page的历史背景和使用场景.   为什么需要Huge Page    了解CPU Cache大致架构的话,一定听过TLB Cach

Mozilla推火狐7测试版:重点提升性能

北京时间8月20日消息,火狐6刚刚发布,Mozilla就推出了火狐7的测试版,并且重点对性能进行了提升. 火狐7的开发代号为Aurora,目前已经面向Windows.Mac OS X和Linux推出.该浏览器新增了一项名为MemShrink的功能,希望改变用户对火狐浏览器内存消耗过大的印象.Mozilla 称,MemShrink可以将火狐7的内存使用量降低20%至50%.不仅可以加快速度,而且可以减少软件崩溃的情况发生. 除此之外,火狐7增强了JavaScript垃圾收集功能.不仅加快了该功能的

传统内核协议栈为什么不使用零拷贝,也就是内存映射来提升性能?

问题描述 传统内核协议栈为什么不使用零拷贝,也就是内存映射来提升性能? 如题,传统内核协议栈为什么不使用零拷贝,也就是内存映射来提升性能? 内核TCP/IP协议在中断处理阶段将网卡中数据拷贝到内核缓冲区,协议处理完后再将其拷贝到用户态,第一次拷贝很快,第二次拷贝很慢,大约占了整个处理流程的一半时间以上: 现在的零拷贝技术不再进行内核到用户的拷贝,而是直接进行一次内存映射,以此来提升网络性能. 那么,我想问的是:内核协议栈是否可以使用零拷贝技术?若不能,主要原因是什么? 在此,我的一个想法是:是不