GVKun编程网logo

PHP 8.0重大版本更新正式发布:支持JIT编译器,性能提升高达3倍(php 8.0.3)

18

本文将分享PHP8.0重大版本更新正式发布:支持JIT编译器,性能提升高达3倍的详细内容,并且还将对php8.0.3进行详尽解释,此外,我们还将为大家带来关于ApacheSeaTunnel2.3.4版

本文将分享PHP 8.0重大版本更新正式发布:支持JIT编译器,性能提升高达3倍的详细内容,并且还将对php 8.0.3进行详尽解释,此外,我们还将为大家带来关于Apache SeaTunnel 2.3.4 版本发布:功能升级,性能提升、Chrome 4.0正式发布,性能提升42%、Cocos Studio v2.0 Beta0正式发布:多维升级,性能全面提升、Dart 1.9 发布,新正则引擎,性能提升显著!的相关知识,希望对你有所帮助。

本文目录一览:

PHP 8.0重大版本更新正式发布:支持JIT编译器,性能提升高达3倍(php 8.0.3)

PHP 8.0重大版本更新正式发布:支持JIT编译器,性能提升高达3倍(php 8.0.3)

美国时间 11 月 26 日,PHP 团队宣布 PHP 8.0 正式 GA。PHP 8.0 是 PHP 语言的最新主要版本,带来了许多新特性和优化,包括命名参数(named arguments)、联合类型(union types)、属性(attributes)、构造器属性提升(constructor property promotion)、Match 表达式、nullsafe 运算符、JIT,以及针对类型系统、错误处理和一致性的诸多改进。

PHP 8.0.0 下载地址:

https://www.PHP.net/downloads

下文将对新版本的重要亮点做简单介绍:

命名参数

https://wiki.PHP.net/rfc/named_params

PHP 7

htmlspecialchars($string, ENT_COMPAT | ENT_HTML401, 'UTF-8', false);

PHP 8

htmlspecialchars($string, double_encode: false);
  • 仅指定必需参数,跳过可选参数。

  • 参数与顺序无关,且是自描述的。

属性

现在,开发者可以使用基于 PHP 原生语法的结构化元数据来代替 PHPDoc 注解。

https://wiki.PHP.net/rfc/attributes_v2

PHP 7

class PostsController
{
  /**
   * @Route("/api/posts/{id}", methods={"GET"})
   */
  public function get($id) { /* ... */ }
}

PHP 8

class PostsController
{
  #[Route("/api/posts/{id}", methods: ["GET"])]
  public function get($id) { /* ... */ }
}

构造器属性提升

新版本定义和初始化属性所用的样板代码更少。

https://wiki.PHP.net/rfc/constructor_promotion

PHP 7

class Point {
  public float $x;
  public float $y;
  public float $z;
  public function __construct(
   float $x = 0.0,
   float $y = 0.0,
   float $z = 0.0,
  ) {
   $this->x = $x;
   $this->y = $y;
   $this->z = $z;
 }
}

PHP 8

class Point {
  public function __construct(
   public float $x = 0.0,
   public float $y = 0.0,
   public float $z = 0.0,
 ) {}
}

联合类型(Union Types)

Union Types 支持接收多个不同类型的值,而不是单个类型。目前 PHP 已经支持两种特殊的联合类型:

  • Type 或 null,使用特殊?Type 语法。

  • array 或 Traversable,使用特殊 iterable 类型。

对于类型组合,可以使用在运行时经过验证的原生联合类型声明来代替 PHPDoc 注解。

https://wiki.PHP.net/rfc/union_types_v2

支持联合类型之后,将会允许将更多类型信息从 PHPdoc 迁移至函数签名。可以说,泛型之后,联合类型是目前类型声明系统中最大的突破口。

PHP 7

class Number {
  /** @var int|float */
  private $number;
  /**
   * @param float|int $number
   */
  public function __construct($number) {
   $this->number = $number;
 }
}
new Number('NaN'); // Ok

PHP 8

class Number {
  public function __construct(
   private int|float $number
  ) {}
}
new Number('NaN'); // TypeError

Match 表达式

新的 match 很像 switch,并具有以下特性:

  • Match 是一个表达式,表示其结果可以存储在变量中或返回。

  • Match 分支仅支持单行表达式,不需要 break; 语句。

  • Match 执行严格比较。

https://wiki.PHP.net/rfc/match_expression_v2

PHP 7

switch (8.0) {
  case '8.0':
   $result = "Oh no!";
   break;
  case 8.0:
   $result = "This is what I expected";
   break;
}
echo $result;
//> Oh no!

PHP 8

echo match (8.0) {
  '8.0' => "Oh no!",
  8.0 => "This is what I expected",
};
//> This is what I expected

Nullsafe 运算符

现在,开发者可以使用带有新的 nullsafe 运算符的调用链来代替 null check。当对链中一个元素的求值失败时,整个链的执行将中止,并且整个链的求值为 null。

https://wiki.PHP.net/rfc/nullsafe_operator

PHP 7

$country = null;
if ($session !== null) {
  $user = $session->user;
 if ($user !== null) {
   $address = $user->getAddress();
  if ($address !== null) {
    $country = $address->country;
  }
 }
}

PHP 8

$country = $session?->user?->getAddress()?->country;

字符串与数字的判断更合理

使用 == 和其他非严格比较运算符对字符串和数字之间做比较时,原本的做法是将字符串强制转换为数字,然后对整数或浮点数进行比较。这会导致许多令人惊讶的比较结果,其中最值得注意的是0 == "foobar"返回 true。

在新版本中,仅在字符串实际为数字时才使用数字比较,否则将数字转换为字符串,并执行字符串比较。

https://wiki.PHP.net/rfc/string_to_number_comparison

PHP 7

0 == 'foobar' // true

PHP 8

0 == 'foobar' // false

内部函数的类型错误一致

在新版本中,如果参数验证失败,大多数内部函数将抛出 Error 异常。

https://wiki.PHP.net/rfc/consistent_type_errors

PHP 7

strlen([]); // Warning: strlen() expects parameter 1 to be string, array given
array_chunk([], -1); // Warning: array_chunk(): Size parameter expected to be greater than 0

PHP 8

strlen([]); // TypeError: strlen(): Argument #1 ($str) must be of type string, array given
array_chunk([], -1); // ValueError: array_chunk(): Argument #2 ($length) must be greater than 0

JIT 编译

PHP 8 引入了两个 JIT 编译引擎。Tracing JIT 的表现最出色,它在综合基准测试中的性能提高到大约 3 倍,在某些特定的传统应用程序中提高到 1.5–2 倍。典型的应用程序性能与 PHP 7.4 相当。

JIT 对 PHP 8 性能的贡献

类型系统和错误处理方面的改进

  • 对算术 / 按位运算符进行更严格的类型检查(https://wiki.PHP.net/rfc/arithmetic_operator_type_checks)

  • 抽象特征方法验证(https://wiki.PHP.net/rfc/abstract_trait_method_validation)

  • 魔术方法的正确签名(https://wiki.PHP.net/rfc/magic-methods-signature)

  • 重分类引擎警告(https://wiki.PHP.net/rfc/engine_warnings)

  • 不兼容方法签名的致命错误(https://wiki.PHP.net/rfc/lsp_errors)

  • @运算符不再使致命错误静默。

  • 用私有方法继承(https://wiki.PHP.net/rfc/inheritance_private_methods)

  • 混合类型(https://wiki.PHP.net/rfc/mixed_type_v2)

  • 静态返回类型(https://wiki.PHP.net/rfc/static_return_type)

  • 内部函数类型(https://externals.io/message/106522)

  • 不透明的对象代替 Curl、Gd、Sockets、OpenSSL、XMLWriter 和 XML 扩展的资源

其他语法调整和改进

  • 在参数列表(https://wiki.PHP.net/rfc/trailing_comma_in_parameter_list)和使用闭包的列表(https://wiki.PHP.net/rfc/trailing_comma_in_closure_use_list)中允许结尾逗号

  • non-capturing 捕获(https://wiki.PHP.net/rfc/non-capturing_catches)

  • 变量语法调整(https://wiki.PHP.net/rfc/variable_Syntax_tweaks)

  • 将命名空间名称视为单个令牌(https://wiki.PHP.net/rfc/namespaced_names_as_token)

  • Throw 现在是表达式(https://wiki.PHP.net/rfc/throw_expression)

  • 在对象上允许::class(https://wiki.PHP.net/rfc/class_name_literal_on_object)

新的类、接口和函数

  • Weak Map 类(https://wiki.PHP.net/rfc/weak_maps)

  • Stringable 接口(https://wiki.PHP.net/rfc/stringable)

  • str_contains()、str_starts_with()、str_ends_with()(https://wiki.PHP.net/rfc/str_contains)

  • fdiv()(https://github.com/PHP/PHP-src/pull/4769)

  • get_debug_type()(https://wiki.PHP.net/rfc/get_debug_type)

  • get_resource_id()(https://github.com/PHP/PHP-src/pull/54270

  • token_get_all() 对象实现(https://wiki.PHP.net/rfc/token_as_object)

    下载    

要下载 PHP 8 的源代码,请访问下载页面:

https://www.PHP.net/downloads

Windows 二进制文件位于 Windows 版 PHP 网站:

http://windows.PHP.net/download

更改列表位于 ChangeLog:

http://www.PHP.net/ChangeLog-8.PHP

PHP 手册中提供了迁移指南。请查阅它以获取新特性细节和向后不兼容更改的详细列表。

https://www.PHP.net/manual/en/migration80.PHP

 延伸阅读

https://www.PHP.net/releases/8.0/en.PHP

Apache SeaTunnel 2.3.4 版本发布:功能升级,性能提升

Apache SeaTunnel 2.3.4 版本发布:功能升级,性能提升

【直播预告】程序员逆袭 CEO 分几步?

​Apache SeaTunnel 团队自豪地宣布 2.3.4 版本正式发布!本次更新聚焦于增强核心功能,改善用户体验,并进一步优化文档质量。

file

此次版本发布带来了多项重要更新和功能增强,包括核心与 API 的修复、文档的全面优化、Catalog 支持的引入,以及多表同步的实现等,旨在为开发者提供更加强大和便捷的数据处理能力。

核心功能一览

文档

  • 文档结构统一:我们对文档结构进行了全面优化,使结构更加清晰,便于开发者查找和阅读。
  • 增加示例:每个关键特性现在都附带了相应的示例,帮助开发者更好地理解和应用。
  • JDBC 连接器文档拆分:针对不同数据库的特殊参数,我们对 JDBC 连接器文档进行了拆分,每个数据库都有专门的文档。
  • 设计文档同步到 Wiki:为了方便开发者阅读和进行二次开发,我们将设计文档同步到了 Wiki。

Catalog 支持

重构代码添加了 Catalog 接口 设计文档: https://cwiki.apache.org/confluence/display/SEATUNNEL/STIP5-Refactor+Catalog+and+CatalogTable

  • 获取到的表结构更精确,表结构的自动迁移、转换成为可能。
  • 统一 CatalogTable 的应用,模型推演贯穿整个数据流。
  • 多表同步有了实现的构架基础。

多表同步 —— 多表读取

支持在一个 Source 中配置读取多张表

设计文档:https://cwiki.apache.org/confluence/display/SEATUNNEL/STIP4-JDBC+source+supports+multi-table+reading+in+one+task

多表同步 —— 多表写入

支持在一个 Sink 多表写入:更省资源(无网络 IO 开销,JDBC 连接数可控)

设计文档:https://cwiki.apache.org/confluence/display/SEATUNNEL/STIP3-Sink+supports+multi-table+in+one+task

  • 支持多个表之间 JDBC 连接共享
  • CDC 同步场景下,Sink 支持单表多线程处理,提升写入性能。
  • 支持指定线程数,线程资源更可控

SaveMode

设计文档: https://cwiki.apache.org/confluence/pages/viewpage.action?pageId=263427916

  • 已有表结构处理,支持目标表不存在时自动创建。真正的解放两手。
  • 已有数据处理,支持删除数据,追加写入
  • 自定义 SQL (相当于 presql 功能)

离线同步

基于主键和唯一索引的自动分片,降低使用门槛:无论是离线同步还是 CDC 同步的历史同步阶段,SeaTunnel 都会自动通过 catalog 获取表结构信息查询表中的主键和唯一索引字段。SeaTunnel 会优先使用主键字段进行分片,没有主键字段时使用唯一索引字段进行分片。如果有联合主键或联合唯一索引,默认使用第一个字段进行分片。

更多的分片算法支持,之前的版本中当表中的数据分布不均匀时(分布因子与 1 的差异较大)会通过 SQL 在源表进行抽样的方式进行分片,这种方式需要用到源数据库的计划资源,经过测试 8c16g 的 mysql 数据库中一张有 5 亿行记录的表抽样的 SQL 需要几个小时才能计算出结果,为了解决这个问题 SeaTunnel 放弃了使用 SQL 在源表进行抽样的算法,改为直接查询分片字段的所有值,并在 SeaTunnel 中进行抽样,可以将抽样的时间缩短到 20 分钟以内。

支持关闭 checkpoint,再也不会 checkpoint 超时了:2.3.3 版本及以前的版本,SeaTunnel 离线同步任务也默认开启了 checkpoint,由于 checkpoint 机制依赖合理的分片设置,在抽取的表无法进行分片或者由于设置不当导致单个分片过大时,就会导致 checkpoint 超时,影响同步任务稳定性。2.3.4 版本中默认关闭了离线同步的 checkpoint 功能,不再会出现 checkpoint 超时的问题。如果用户希望离线同步能够断点续传,可以通过参数设置手工开始 checkpoint 功能。

支持任务级别的 checkpoint 超时设置。可以给每个任务设置不同的 checkpoint 超时时长。

CDC 同步

  • 更多的数据库支持

PostgreSQL CDC

Oracle CDC

  • Flink 引擎支持运行 CDC 任务

2.3.4 版本更新说明

Bug 修复

Core

  • [Core] [API] 修复了列表中泛型类丢失的问题 (#4421)
  • [Starter] 修复了在 [] 中 "," 被分隔的问题 (#5401)
  • [Core] [API] 修复了 ReadonlyConfig 键丢失错误 (#5565)
  • [Core] [API] 修复了从 LinkHashMap 获取字节的问题 (#5622)
  • [Core] [API] 修复了多表接收器关闭时的日志错误 (#5683)
  • [Core] [API] 修复了 MultiTableSink 返回提交器但接收器不支持的问题 (#5710)
  • [Core] [API] 修复了解析不支持类型的模式时的错误消息 (#5790)
  • [Core] [API] 修复了 OptionUtilTest.test 的不稳定测试 (#5894)
  • [Core] [API] 修复了 SaveModeHandler 未关闭的问题 (#5843)
  • [Core] [API] 修复了 MultiTableSinkWriter 线程索引始终为 1 的问题 (#5832)
  • [Core] [API] 修复了 SeaTunnelRow::getBytesSize 不支持映射接口的问题 (#5990)
  • [Core] [Common] 修复了 FileUtils::createNewFile 未创建新文件的问题 (#5943)
  • [Core] [API] 修复了 Debezium 格式无法解析日期 / 时间 / 时间戳的问题 (#5887)
  • [Starter] 当在双引号内时,'','' 被视为普通字符而不是分隔符 (#6042)
  • [Core] [Common] 替换 CommonErrorCodeDeprecated.JSON_OPERATION_FAILED (#5978)
  • [Core] [API] 修复 Object.class 选项值无法返回正常值的问题 (#6247)

转换器 - V2

  • [All] 修复转换中的 PrimaryKey 问题 (#5704)
  • [All] 修复转换为时间戳、日期、时间的 bug (#5812)

格式

  • [Text] 允许映射中的条目为 null 并允许条目中的键为 null (#5277)

连接器 - V2

  • [Connector-V2] [Clickhouse] 修复了 Clickhouse 旧版本兼容性问题 (#5326)
  • [Connector-V2] [Clickhouse] 修复了 http 头覆盖问题 (#5446)
  • [Connector-V2] [StarRocks] 修复了 starrocks 模板 sql 解析器问题 (#5332)
  • [Connector-V2] [Hive] 修复了 hive-site.xml 无法注入 HiveConf 的问题 (#5261)
  • [Connector-V2] [Clickhouse] 修复了 clickhouse 接收器刷新 bug (#5448)
  • [Connector-V2] [Hive] 修复了读取空目录时发生的错误 (#5427)
  • [Connector-V2] [Oss jindo] 修复了 jindo 驱动下载失败的问题 (#5511)
  • [Connector-V2] [Oss jindo] 移除无用代码 (#5540)
  • [Connector-V2] [File] 修复了 WriteStrategy 并行写入线程不安全问题 (#5546)
  • [Connector-V2] [CDC] 修复了原始表删除字段时 CDC 出现的 NPE bug (#5579)
  • [Connector-V2] [Jdbc] 修复了 oracle catalog 创建表重复和 oracle pg 空指针问题 (#5517)
  • [Connector-V2] [CDC] 修复了 cdc 枚举器中线程不安全的集合容器问题 (#5614)
  • [Connector-V2] [Mongodb] 修复了由 bsonNull 引起的不支持异常 (#5659)
  • [Connector-V2] [File] 修复了文件接收器 isPartitionFieldWriteInFile 在未给出列时出现的异常 (#5508)
  • [Connector-V2] [Doris] 修复了 RestService 报空指针异常 (#5319)
  • [Connector-V2] [MaxCompute] 修复了 MaxCompute 使用不存在的 SCHEMA 选项 (#5708)
  • [Connector-V2] [Doris] 使用 try-with-resources 简化代码 (#4995)
  • [Connector-V2] [Clickhouse] 修复了 clickhouse-sink 输出数据字段顺序错乱的 BUG (#5346)
  • [Connector-V2] [Jdbc] 支持 postgresql xml 类型 (#5724)
  • [Connector-V2] [Jdbc] 可空列源数据中的 null 数据可能导致意外结果 (#5560)
  • [Connector-V2] [Iceberg] Iceberg 源在并行度选项下数据丢失 (#5732)
  • [Connector-V2] [Jdbc] 修复 PG 使用自动创建表时不会创建索引 (#5721)
  • [Connector-V2] [Jdbc] 修复数据库标识符 (#5756)
  • [Connector-V2] [CDC] 修复添加新表时 MultiTableSink 恢复失败 (#5746)
  • [Connector-V2] [CDC] 修复 Postgres 创建表测试用例失败 (#5778)
  • [Connector-V2] [CDC] 清理未使用的代码 (#5785)
  • [Connector-V2] [CDC] 修复从单表切换到多表时状态恢复错误 (#5784)
  • [Connector-V2] [ElasticSearch] 修复 elasticsearch 数组格式的转换异常 (#5825)
  • [Connector-V2] [Jdbc] 修复从 Oracle 读取日期类型值时丢失时间 (#5814)
  • [Connector-V2] [Pulsar] 修复:更新 IDENTIFIER = Pulsar,对于 pulsar-datasource 在项目:seatunnel-web (#5852)
  • [Connector-V2] [Jdbc] 修复 Hive-Jdbc 使用 krb5 时覆盖 kerberosKeytabPath (#5891)
  • [Connector-V2] [InfluxDB] 解决在 initColumnsIndex 方法中直接使用 ''tz'' 函数附加 QUERY_LIMIT 导致的无效 SQL (#4829)
  • [Connector-V2] [Jdbc] 修复 cdc 更新时未过滤相同主键 (#5923)
  • [Connector-V2] [File] Parquet 读取器解析数组类型异常 (#4457)
  • [Connector-V2] [Http] 修复 http 配置无 schema 选项的 bug 并改进 e2e 测试添加案例 (#5939)
  • [Connector-V2] [Doris] 修复 DorisCatalog 未实现 name 方法 (#5988)
  • [Connector-V2] [TDengine] 修复多个并行度影响驱动加载的程度 (#6020)
  • [Connector-V2] [Jdbc] 修复 jdbc setFetchSize 错误 (#6005)
  • [Connector-V2] [CDC] 修复 CDC 作业恢复运行后无法消费增量数据 (#625) (#6094)
  • [Connector-V2] [File] 修复从 Excel 文件读取异常数据的问题 (#5932)
  • [Connector-V2] [CDC] 修复为恢复作业添加表时导致的 NPE (#6145)
  • [Connector-V2] [Jdbc] 修复 dameng catalog 查询表 sql (#6141)
  • [Connector-V2] [Jdbc] 更新 pgsql catalog 以支持保存模式 (#6080)
  • [Connector-V2] [Jdbc] 修复在大量重复数据情况下的 Spliter 错误 (#6026)
  • [Connector-V2] [CDC] 修复作业恢复后添加的列无法解析 (#6118)
  • [Connector-V2] [CDC] 修复 CDCRecordEmitDelay 指标中的负值 (#6259)
  • [Connector-V2] [CDC] 修复没有主键时无效的拆分键 (#6251)

Zeta (ST - 引擎)

  • [Zeta] 修复 NotifyTaskRestoreOperation npe (#5362)
  • [Zeta] 修复 Zeta 会关闭任务两次的错误 (#5422)
  • [Zeta] 禁用 CheckpointTimeOutTest (#5438)
  • [Zeta] 修复 CDC 任务恢复抛出 NPE (#5507)
  • [Zeta] 同一类型的多个接收器动作具有相同名称 (#5499)
  • [Zeta] Checkpoint 异常状态消息不包括状态数据 (#5547)
  • [Zeta] 修复与检查点相关的内存泄漏问题 (#5539)
  • [Zeta] 修复检查点被长时间阻塞的问题 (#5695)
  • [Zeta] 修复作业状态不稳定的问题 (#5450)
  • [Zeta] 修复提交作业 API (#5702)
  • [Zeta] 将默认 DeployMode 设置为 DeployMode.CLIENT (#5783)
  • [Zeta] 使用中文名称提交作业时,rest api 返回乱码名称 (#5870)
  • [Zeta] 修复 CheckpointCoordinator 在未存在待处理检查点时报告 NPE (#5909)
  • [Zeta] 修复提交作业时存在相同作业名称的错误 (#6041)
  • [Zeta] 修复由于没有状态参数而导致返回列表为空的问题 (#6040)
  • [Zeta] 修复 zeta 调度器 bug (#6050)
  • [Zeta] 修复作业在最后一个检查点失败时无法恢复的问题 (#6193)
  • [Zeta] [Rest-API] 从非活动主节点提交或停止作业 (#6217)

E2E

  • [E2E] [Common] 更新 seatunnel 引擎的测试容器版本 (#5323)
  • [E2E] [Jdbc] 修复 jdbc 套件测试完成后未移除 docker 镜像的问题 (#5586)
  • [E2E] [ClickHouse] 增强 ClickHouse E2E 测试以触发多个检查点 (#5476)
  • [E2E] 修复 jdbc 套件测试完成后未移除 docker 镜像的问题 (#5586)
  • [E2E] 修复 ConnectorPackageServiceContainer 未实现 getSavePointCommand/getRestoreCommand 的问题 (#5780)
  • [E2E] 修复因 JdbcHiveITSparkSinkTest 导致的构建失败 (#5798)
  • [E2E] 修复提交作业案例错误 (#6059)
  • [E2E] 修复与动作相关的错误 (#6264)
  • [E2E] 将 mysql 容器版本锁定为 8.0 (#6263)

CI

  • [CI] 修复 jindo oss 连接器名称问题 (#5385)
  • [Build] 修复 fork 仓库不是最新时的错误消息 (#5497)
  • [CI] 修复 CI 在 fork 仓库中运行时未检查文件更改的问题 (#5515)
  • [CI] 移除 jindo 依赖 (#5528)
  • [CI] 修复 phoenix ci 错误 (#5530)
  • [Build] 更新构建版本为 2.3.4-SNAPSHOT (#5619)
  • [Build] 确保 install-plugin.sh 脚本与 Debian 上的 sh 兼容 #5630 (#5631)
  • [CI] [Chore] 移除无用的 sonar 检查脚本 (#5665)
  • [Chore] 移除 DISCLAIMER 文件 (#5673)
  • [CI] 修复 CI 不稳定问题 (#5896)
  • [Build] 修复 config/plugin_config 中的空行导致的构建失败 (#5921)
  • [CI] 修复 CI 未在更改 api 时运行 Kudu/AmazonSQS IT 的问题 (#5955)
  • [CI] 将 doris e2e 分成单独的模块 (#5999)
  • [CI] 修复死链接检查器失败 (#6016)
  • [CI] 修复 e2e 错误 (#6018)
  • [Build] 更新 pom.xml (#6113)
  • [Build] 解决示例运行失败的问题 (#6173)
  • [Build] 修复构建错误 (#6196)
  • [CI] 修复引擎客户端未关闭的问题 (#6241)

示例

  • [Examples] 修改转换 URL 链接 (#5298)

改进

  • [Improve][CheckStyle] 移除 checkstyle 中无用的 ''SuppressWarnings'' 注解 (#5260)
  • [Improve][CheckStyle] 调整 spotless 插件的阶段以适用于发布插件 (#5607)

Core

  • [Core] [API] 移除 CatalogTableUtil 中的 CatalogTable 字段 (#5521)
  • [Core] [API] 将获取模式逻辑从 Config 移动到 ReadonlyConfig (#5534)
  • [Starter] 当发现一个 pluginIdentifier 对应多个连接器 jar 时抛出 IllegalArgumentException (#5551)
  • [Core] [API] 重构 CatalogTable 并添加 SeaTunnelSource::getProducedCatalogTables (#5562)
  • [Core] [API] 在模式中支持配置列 / 主键 / 约束键 (#5564)
  • [Core] [API] 移除 ReadonlyConfig 扁平化特性的无用功能 (#5612)
  • [Core] [Flink & Spark] 重构 Spark/Flink 执行处理器 (#5595)
  • [Core] [API] 标记 SeaTunnelPluginLifeCycle 为废弃 (#5625)
  • [Core] [API] 支持为模式配置 tableIdentifier (#5628)
  • [Core] [Pom] 在根 pom 中添加 junit4 (#5611)
  • [Core] [API] 移除配置文件中的 catalog 标签 (#5645)
  • [Core] [API] 移除来自 setTypeInfo 的无用转换代码 (#5647)
  • [Core] [API] 确保 CatalogTable 选项和 partitionKeys 是可变的 (#5681)
  • [Core] [API]SeaTunnelSource::getProducedType 添加默认实现 (#5670)
  • [Core] [API]SeaTunnelSink::setTypeInfo 添加默认实现 (#5682)
  • [Core] [API] 添加使用后备键的警告 (#5753)
  • [Core] [API] 调整 flink 和 spark 引擎的睡眠模式与 zeta 一致 (#5698)
  • [Core] [API] 移除 Factory 选项以避免无用信息 (#5754)
  • [Core] [API] 将字段名称添加到 DataTypeConvertor 以改善错误消息 (#5782)
  • [Core] [API] 移除使用 SeaTunnelSink::getConsumedType 方法并将其标记为废弃 (#5755)
  • [Core] [Common] 移除 assert 关键字 (#5915)
  • [Core] [Common] 清理流量控制代码 (#5991)
  • [Core] [Common]FILE_OPERATION_FAILED 适配为 CommonError (#5928)
  • [Core] [API] 为 Column 添加 serialVersionUID
  • [Core] [Common]SupportResourceShare 扩展到 spark/flink (#5847)
  • [Core] [API] 如果禁用检查点,则移除检查点超时检查 (#6231)

格式

  • [Json] 使用静态对象映射器代替每次创建它 (#5460)
  • [Json] 移除 assert 关键字 (#5919)
  • [Formats] 替换 CommonErrorCodeDeprecated.JSON_OPERATION_FAILED (#5948)
  • [Formats] 重构 ignoreParseErrors 的异常捕获 (#6065)
  • [Formats]seatunnel-format-compatible-debezium-json 中使用数字格式解析 Decimal 类型 (#5803)
  • [Text] 添加 dateTimeFormatter 以解析 ISO8601 (#5974)
  • [Formats] 替换 CommonErrorCodeDeprecated.JSON_OPERATION_FAILED (#5948)

连接器 - V2

  • [Connector-V2] [IoTDB] 移除 IoTDB 接收器中的调度器 (#5270)
  • [Connector-V2] [InfluxDB] 移除 InfluxDB 接收器中的调度器 (#5271)
  • [Connector-V2] [Dynamodb] 移除 Dynamodb 接收器中的调度器 (#5248)
  • [Connector-V2] [StarRocks] 移除 StarRocks 接收器中的调度器 (#5269)
  • [Connector-V2] [CDC] 避免在不必要的数据库下列出表 (#5365)
  • [Connector-V2] [Jdbc] 重构 AbstractJdbcCatalog (#5096)
  • [Connector-V2] [CDC] 支持在 flink 上运行 cdc 作业 (#4918)
  • [Connector-V2] [Assert] 支持 ''DECIMAL'' 类型并修复 ''Number'' 类型精度问题 (#5479)
  • [Connector-v2] [Redis] Redis 支持选择数据库 (#5570)
  • [Connector-v2] [CDC] 使用 Source 输出 CatalogTable (#5626)
  • [Connector-v2] [CDC] 添加 dataType datetimeoffset (#5548)
  • [Connector-v2] [Jdbc] 支持读取多个表 (#5581)
  • [Connector-v2] [CDC] 统一 sqlserver TypeUtils 类型转换模式 (#5668)
  • [Connector-v2] [Http] 改进 http e2e 测试 (#5655)
  • [Connector-v2] [AmazonDynamicDB] 添加 amazondynamicdb 源拆分 (#5275)
  • [Connector-v2] [File] parquet 使用系统时区 (#5605)
  • [Connector-v2] [Amazonsqs] 更改 amazonsqsAmazonSqs 作为连接器标识符 (#5742)
  • [Connector-v2] [File] 统一文件源 / 接收器选项并更新文档 (#5680)
  • [Connector-v2] [AmazonDynamicDB] 代码清理 AmazonDynamoDB 连接器 (#5791)
  • [Connector-v2] [MongoDB] 实现 TableSourceFactory 以创建 mongodb 源
  • [Connector-v2] [Jdbc] 优化 catalog-table 元数据合并逻辑 (#5828)
  • [Connector-v2] [Jdbc]getCountSql 重命名为 getExistDataSql (#5838)
  • [Connector-v2] [ClickHouse] 加速 ClickhouseFile Local 生成 mmap 对象 (#5822)
  • [Connector-v2] [Jdbc] 改进 Jdbc 连接器在数据类型不支持时的错误消息 (#5864)
  • [Connector-v2] [Jdbc] 减少 getCatalogTable 在 jdbc 中的时间消耗 (#5908)
  • [Connector-v2] [StarRocks] StarRocks 支持创建 varchar 字段类型 (#5911)
  • [Connector-v2] [StarRocks] 添加 http socket 超时 (#5918)
  • [Connector-v2] [File] 清理 JsonWriteStrategyExcelWriteStrategy 的内存缓冲 (#5925)
  • [Connector-v2] [StarRocks] StarRocks 支持创建带唯一键的表模板 (#5905)
  • [Connector-v2] [CDC]exactly_once 关闭时禁用内存缓冲以提高稳定性 (#6017)
  • [Connector-v2] [Doris] 在 doris 接收器中添加批量刷新 (#6024)
  • [Connector-v2] [Paimon] 适配 Paimon 0.6 版本 (#6061)
  • [Connector-v2] [File] 使 Oss 实现源工厂和接收器工厂 (#6062)
  • [Connector-v2] [File] 禁用 HDFSFileSystem 缓存 (#6039)
  • [Connector-v2] [Jdbc] 在 jdbc 连接器中遮蔽 hikari (#6116)
  • [Connector-v2] [Jdbc] 支持 Sqlserver 小众数据类型 (#6122)
  • [Connector-v2] [Kafka] 移除 kafka 连接器的无用代码 (#6157)
  • [Connector-v2] [Doris] 改进 doris 接收器以随机使用 be (#6132)
  • [Connector-v2] [Http] 增加自定义配置超时 (#6223)
  • [Connector-v2] [Pulsar] 提高 pulsar 吞吐性能 (#6234)
  • [Connector-v2] [CDC] 支持 int identity 类型在 sql server 中 (#6186)
  • [Connector-v2] [CDC] Doris 流加载使用 FE 而不是 BE (#6235)
  • [Connector-v2] [CDC] 修正名称错误 (#6248)
  • [Connector-v2] [Tdengine] 支持从 tdengine 读取 bool 列 (#6025)
  • [Connector-v2] [Jdbc] 使用 PreparedStatement 从列中采样数据 (#6242)

CI

  • [CI] 更新 sql-udf 文档 (#5197)
  • [CI][E2E][Zeta] 增加 Zeta 检查点超时以避免 connector-file-sftp-e2e 频繁失败 (#5339)
  • [CI] 修复 phoenix ci 错误
  • [Build]seatunnel-hadoop3-3.1.4-uber.jar 放入发布二进制包 (#5743)
  • [Test] 确保在 spark 中的值不会被重用 (#5767)
  • [Test] 移动 MaxCompute 测试用例文件 (#5786)
  • [CI] 始终运行所有模块的单元测试 (#5800)
  • [Test] 将 System.out.println 更改为日志输出 (#5912)
  • [Test] 为命令使用添加一些测试用例
  • [Test] 修复 sql server catalog 测试用例失败 (#6128)
  • [Test] 修复 JobMetricsTest 不稳定 (#6152)
  • [Test] 修复 ConnectorSpecificationCheckTest 无效 (#5820)

E2E

  • [E2E] 移除不必要的代码以减少磁盘压力 (#5613)
  • [E2E] 启用 Oceanbase Mysql 模式的 IT 案例 (#5697)
  • [E2E] 按需从 url 加载驱动类 (#5712)
  • [E2E] Jdbc 测试检查数据一致性 (#5734)
  • [E2E] 启用 e2e 日志输出并禁用控制台接收器日志 (#5879)
  • [E2E] 改进所有引擎的 e2e 日志 (#5936)
  • [E2E] 增强 Kudu E2E 的稳定性 (#6258)

Zeta (ST - 引擎)

  • [Zeta] 优化测试用例 CheckpointTimeOutTest.testJobLevelCheckpointTimeOut (#5403)
  • [Zeta] 改进依赖包 (#5624)
  • [Zeta] 将硬编码配置键更改为引用 (#5618)
  • [Zeta] 更改 RestJobExecutionEnvironment 实现的类名 (#5671)
  • [Zeta] 更改默认 Zeta 客户端 JVM 堆值 (#5674)
  • [Zeta] 将 generate_client_protocol.sh 移动到引擎模块 (#5667)
  • [Zeta] 优化 SeaTunnel Zeta 引擎 Jar 包上传逻辑 (#5542)
  • [Zeta]RestJobExecutionEnvironment 移动到 rest 包 (#5764)
  • [Zeta] 从动作名称(检查点状态键)中移除 result_table_name (#5779)
  • [Zeta] 重构 jar 包服务模块 (#5763)
  • [Zeta] 将客户端 cluster-connect-timeout-millis 暴露给 yaml (#5868)
  • [Zeta] 减少检查点完成日志 (#5916)
  • [Zeta] 移除 assert 关键字 (#5947)
  • [Zeta] 调整工厂验证实现的日志级别 (#6153)
  • [Zeta] 忽略无用的错误目标槽错误 (#6135)
  • [Zeta] 添加在提交失败时恢复的功能 (#6101)

Transformer-V2

  • [All] 为 SeaTunnel 转换添加 JsonPath 转换 (#5632)
  • [All] 支持 SqlTransform Not Like 表达式 (#5768)
  • [All] 添加 from_unixtime 函数 (#5462)
  • [All] 支持 case when 表达式 (#6123)

特性

核心

  • [Core] [API] 为检查点超时添加作业级配置 (#5222)
  • [Core] [API] 目录添加大小写转换定义 (#5328)
  • [Core] [API] 为测试添加 InMemoryCatalog 并添加新的 getCatalogTableFromConfig 方法 (#5485)
  • [Core] [Flink] 支持可配置精度和规模的 Decimal 类型 (#5419)
  • [Core] [API]SinkAggregatedCommitter 中添加 initrestoreCommit 方法 (#5598)
  • [Core] [Flink] 在 Flink 中支持流量控制 (#5509)
  • [Core] [Spark] 支持 SeaTunnel 时间类型 (#5188)
  • [Core] [Flink] 移除无用的 stageType (#5650)
  • [Core] [API] 支持多表接收器 (#5620)
  • [Core] [Spark] 在 Spark 中支持流量控制 (#5510)
  • [Core] [Flink] 添加外部配置参数 (#5480)
  • [Core] [API] 移除所有无用的 preparegetProducedType 方法 (#5741)
  • [Core] [Common] 引入新的错误定义规则 (#5793)
  • [Core] [Common] 移除无用的 DeserializationFormatFactory 及其实现 (#5880)
  • [Core] [API] 用 TableSchema 替换 SeaTunnelRowType 在 JdbcRowConverter 中
  • [Core] [Flink] 升级 flink 源翻译 (#5100)
  • [Core] [API] 为所有目录添加不支持的数据类型检查 (#5890)
  • [Core] [Flink] 在 flink 引擎中支持记录指标 (#6035)

连接器 - V2

  • [Connector-V2] [CDC] [SQLServer] 支持多表读取 (#4377)
  • [Connector-V2] [Jdbc] Jdbc 数据库支持标识符 (#5089)
  • [Connector-V2] [Jdbc] jdbc 连接器支持 Kingbase 数据库 (#4803)
  • [Connector-V2] [Jdbc] 添加 tidb 数据类型转换器 (#5440)
  • [Connector-V2] [Jdbc] 添加 Dameng 目录 (#5451)
  • [Connector-V2] [File] 支持在输出类型为文件 (CSV) 时写入列名 (#5459)
  • [Connector-V2] [File] 当 FILE_FORMAT_TYPE 为 text/csv 时,添加参数 BaseSinkConfig.ENABLE_HEADER_WRITE: #5566 (#5567)
  • [Connector-V2] [CDC] 支持优先使用数字字段作为分割键 (#5384)
  • [Connector-V2] [File] 支持读取空目录 (#5591)
  • [Connector-V2] [Fake&Assert] 从 FakeSource/Assert 添加 table-names 以产生 / 断言多表 (#5604)
  • [Connector-V2] [Jdbc] 添加 OceanBase 目录 (#5439)
  • [Connector-V2] [File] 支持 LZO 压缩在文件读取上 (#5083)
  • [Connector-V2] [CDC] 支持在 flink 上运行 MongoDB CDC (#5644)
  • [Connector-V2] [Jdbc] 支持更多配置连接参数的方式 (#5388)
  • [Connector-V2] [Kafka] KafkaSource 使用 Factory 创建源 (#5635)
  • [Connector-V2] [Jdbc] 添加连接器 amazonsqs (#5367)
  • [Connector-V2] [Jdbc] 在 MaxCompute Source 中支持目录 (#5283)
  • [Connector-V2] [Kudu] 重构 Kudu 功能并支持 CDC 数据的接收器 (#5437)
  • [Connector-V2] [CDC] 优化 mysql server-id 的默认值范围以减少冲突 (#5550)
  • [Connector-V2] [Http] HTTP 支持页面增加 #5477 (#5561)
  • [Connector-V2] [Jdbc] 添加 Save Mode 功能和 Connector-JDBC (MySQL) 连接器已实现 (#5663)
  • [Connector-V2] [Jdbc] 支持 XMLTYPE 数据集成 #5716 (#5723)
  • [Connector-V2] [Jdbc] 支持 Hive JDBC Source 连接器 (#5424)
  • [Connector-V2] [Http] Http 参数支持自定义加密 (#5727)
  • [Connector-V2] [Kudu] 在 kudu 上支持 TableSourceFactory/TableSinkFactory (#5789)
  • [Connector-V2] [File] LocalFileSource 支持多表
  • [Connector-V2] [Fake] FakeSource 支持为 MultipleTable 生成不同的 CatalogTable (#5766)
  • [Connector-V2] [Kudu] 支持 kudu 多表源读取 (#5878)
  • [Connector-V2] [Http] 在 http 上支持 TableSourceFactory/TableSinkFactory (#5816)
  • [Connector-V2] [Redis] 在 redis 上支持 TableSourceFactory/TableSinkFactory (#5901)
  • [Connector-V2] [Jdbc] 修复 split 键不支持 BigInteger 类型
  • [Connector-V2] [File] LocalFile 接收器支持多表 (#5931)
  • [Connector-V2] [Doris] Doris 目录 (#5175)
  • [Connector-V2] [Kudu] 支持 kudu 多表接收器特性 (#5951)
  • [Connector-V2] [File] 支持使用多个 hadoop 账户 (#5903)
  • [Connector-V2] [File] 将多表文件 API 放到文件基础模块 (#6033)
  • [Connector-V2] [Paimon] Flink 表存储在准备提交时失败 (#6057)
  • [Connector-V2] [File] 添加多表文件接收器到基础模块 (#6049)
  • [Connector-V2] [Jdbc] jdbc 源支持将字符串类型作为分区键 (#6079)
  • [Connector-V2] [File] 支持读取 .xls excel 文件 (#6066)
  • [Connector-V2] [CDC] 支持读取没有主键的表 (#6098)
  • [Connector-V2] [Assert] 支持检查 Decimal 类型的精度和规模 (#6110)
  • [Connector-V2] [Hbase] 支持数组数据 (#6100)
  • [Connector-V2] [File] FTP 源 / 接收器添加 ftp 连接模式 (#6077) (#6099)
  • [Connector-V2] [Jdbc] 更新 sqlserver 目录以支持保存模式 (#6086)
  • [Connector-V2] [CDC] 支持自定义表主键 (#6106)
  • [Connector-V2] [Doris] 在 Doris 上支持 SaveMode (#6085)
  • [Connector-V2] [Jdbc] 更新 oracle 目录以支持保存模式 (#6092)
  • [Connector-V2] [ElasticSearch] 添加 elasticsearch save_mode (#6046) (#6092)
  • [Connector-V2] [Jdbc] 改进查询列 sql 的兼容性 (#5664)
  • [Connector-V2] [Jdbc] 改进查询列 sql 的兼容性 (#5664)
  • [Connector-V2] [Pulsar] 添加 Pulsar 接收器连接器 (#4382)
  • [Connector-V2] [StarRocks] 添加 starrocks save_mode (#6029)
  • [Connector-V2] [CDC] 支持 oracle cdc (#5196)
  • [Connector-V2] [Doris] 添加 Doris ConnectorV2 源 (#6161)
  • [Connector-V2] [Jdbc] 支持 postgres jdbc 中的 uuid (#6185)
  • [Connector-V2] [CDC] 支持读取没有主键的表 (#6209)
  • [Connector-V2] [CDC] 修复 jdbc setFetchSize 错误 (#6210)
  • [Connector-V2] [CDC] 修复从单表切换到多表时状态恢复错误 (#6211)
  • [Connector-V2] [CDC] 清理未使用的代码 (#6212)
  • [Connector-V2] [File] 添加 s3file save mode 功能 (#6131)
  • [Connector-V2] [CDC] 支持自定义表主键 (#6216)
  • [Connector-V2] [CDC] 为拆分支持添加日期类型和浮点类型列 (#6160)
  • [Connector-V2] [CDC] 支持 Postgres cdc (#5986)
  • [Connector-V2] [CDC] 更新 jdbc fetchsize (#6245)
  • [Connector-V2] [CDC] 默认禁用 exactly_once 以提高稳定性 (#6244)
  • [Connector-V2] [CDC] 支持在拆分器中的 Short 和 Byte 类型 (#6027)
  • [Connector-V2] [Jdbc] 改进查询表的大致总行数的 SQL 兼容性 (#5972)

Zeta (ST - 引擎)

  • [Zeta] 添加 UNKNOWABLE 作业状态 (#5303)
  • [Zeta] 在 zeta 中支持流量控制 (#5502)
  • [Zeta] [REST-API] 停止运行中的作业 (#5512)
  • [Zeta] 在 Kubernetes 上支持 Zeta 引擎 (#5594)
  • [Zeta] 在批处理模式中,可以禁用检查点 (#5914)
  • [Zeta] 将跳过触发检查点的日志级别更改为调试 (#5954)
  • [Zeta] 添加新作业状态 DOING_SAVEPOINTSAVEPOINT_DONE (#5917)
  • [Zeta] 添加 waitForJobCompleteV2 api (#5965)
  • [Zeta] 可以使用 rest api 自动向 Zeta 主节点提交作业 (#5950)
  • [Zeta] [REST-API] 获取已完成作业的信息 (#5949)
  • [Zeta] 修复转换动作返回相同名称 (#6034)
  • [Zeta] 统一作业环境参数 (#6003)
  • [Zeta] 将 TaskGroupLocation 添加到 TaskExecutionService 的线程名称中 (#6095)
  • [Zeta] 在 zeta 中使用 G1 作为默认垃圾收集器 (#6114)
  • [Zeta] 修复带有无检查点文件的保存点启动时的错误 (#6215)
  • [Zeta] 支持在泛型类型中用 hocon 风格声明行类型 (#6187)

CI

  • [Bin] 为所有脚本添加 .bat 脚本 (#5445)
  • [INFRA] 将 CI 移至在 fork 仓库容器上运行 (#5495)
  • [Build] 移除 connector/seatunnel 目录 (#5489)
  • [INFRA] 更新 PR 模板以添加测试和用户更改问题 (#5486)
  • [INFRA] 为 notify_test_workflow.yml 添加日志以追踪错误原因
  • [INFRA] 修复 notify_test_workflow.yml 不稳定
  • [Test] 测试完成后在 jdbc 套件上移除 docker 镜像 (#5568)
  • [Test] 为 ResourceManager 添加测试以确保任务将在不同节点上部署 (#5518)
  • [Chore] 移除无用的 .scalafmt.conf 文件 (#5616)
  • [LICENSE] 添加 hadoop 许可 (#6067)
  • [Build] 将 seatunnel-spark-3-starter.jar 放入发布包 (#6044)
  • [Test] 减少重复目录测试次数 (#6207)
  • [CI] 确保 notify_test_workflow.yml 错误将被抛出 (#6226)

格式

  • [Ogg] 支持读取 ogg 格式消息 #4201 (#4225)
  • [Json] 移除 assert 关键字 (#5919)
  • [Avro] 支持 avro 格式 (#5084)
  • [Formats] 重构 ignoreParseErrors 的异常捕获 (#6065)
  • [Avro] 改进 avro 格式转换 (#6082)

转换器 - V2

  • [All] 添加 JsonPath 转换 (#5632)
  • [All] 支持 SqlTransform Not Like 表达式 (#5768)
  • [All] 添加 from_unixtime 函数 (#5462)
  • [All] 支持 case when 表达式 (#6123)

文档优化详情

  • [Docs] 使用统一格式 Feishu 重构 connector-v2 文档 (#5343)
  • [Docs] 重构 IoTDB 接收器文档 (#5306)
  • [Docs] 更正单词错误 (#5360)
  • [Docs] 改进 iceberg 文档 (#5335)
  • [Docs] 使用短链接 https://s.apache.org/seatunnel-slack 替换长 URL (#5363)
  • [Docs] 改进 http 文档参数体描述 (#5368)
  • [Docs] 使用统一格式 Slack 重构 connector-v2 文档 (#5344)
  • [Docs] 更新 sql-udf 文档 (#5197)
  • [Docs] 重构 MySQL-CDC 文档 (#5302)
  • [Docs] 在 FtpFile 的选项描述中将 username 由 user 替换 (#5421)
  • [Docs] 更新 iotdb 文档 (#5404)
  • [Docs] 添加 mysql Connector 文档版本标题示例 pr (#5249)
  • [Docs] 添加并行度 (#5310)
  • [Docs] Http 源选项键 poll_interval_ms 在源代码中不同 (#5430)
  • [Docs] 改进 kafka 接收器文档中的错误示例 (#5527)
  • [Docs] 改进控制台接收器文档 (#5230)
  • [Docs] 添加如何更改 e2e 测试的日志配置 (#5589)
  • [Docs] 添加 RocketMq 连接器 (#5361)
  • [Docs] 在 README.md 中修复构建状态未更新 (#5574)
  • [Docs] hdfsFile 的 file_format 更改为 file_format_type (#5653)
  • [Docs] 改进 README.md (#5662)
  • [Docs] 添加 FakeSource 连接器文档 (#5255)
  • [Docs] 在 README.md 中介绍 SeaTunnel web 项目 (#5634)
  • [Docs] 向 README 添加目录和常见问题解答 (#5693)
  • [Docs] 更新 quick-start-spark.md (#5795)
  • [Docs] 添加 Socket 连接器文档 #5255 (#5287)
  • [Docs] 改进文件接收器文档 (#5799)
  • [Docs] 添加 SqlServer 连接器文档 (#5498)
  • [Docs] 更新 (#5808)
  • [Docs] 添加 hive jdbc 参考值 (#5882)
  • [Docs] 修正 Checkpoint-Storage 描述不正确 (#5883)
  • [Docs] 重构 OssFile 连接器文档 (#5233)
  • [Docs] 修复 oss 连接器无法运行的 bug (#6010)
  • [Docs] 为 jdbc-connector 更新文档 (#5765)
  • [Docs] 添加 V2 连接器 jdbc 文档参数可以加速数据导入 PR (#6176)
  • [Docs] 修改一些文档标题规范 (#6237)
  • [Docs] 重构 Socket Source 和 SftpFile 连接器文档 (#5386)
  • [Docs] 改进驱动放置路径的文档
  • [Docs] 更正数组元素类型和映射键类型的介绍 (#6261)

致谢名单

感谢所有为 2.3.4 版本做出贡献的社区成员,包括代码贡献者、文档撰写者和测试人员。Apache SeaTunnel 的成功离不开每一个人的努力!

用户名 1 用户名 2 用户名 3
Carl-Zhou-CN halo.kim Nick Young
Adarsh Jha Hao Xu Pritham Sriram Govindaraj
Alex Ting haolinkong pstrasser
Anirudh Hegde happyboy1024 seckiller
asia-zengtao He Wang sunjane
bingquanzhao Huan Liang Tung Bui (Leo)
Carl-Zhou-CN ic4y Tyrantlucifer
chaos Jarvis Volodymyr
chen0623-bak Jia Fan wachoo
Chengyu Yan john wei zhao
chenyunde kk Wenjun Ruan
David Zollo Kunni wow_zx
Dennis lightzhao xiami
dependabot[bot] lizhenglei xiaofan2012
dian luo XiaoJiang521
Eric michalrys Yan Xiaole
fang mingbei.xu zhengyuan
FlechazoW Morssssy ZhilinLi
FuYouJ MoSence 丑西蒙
gitfortian muzhongjiang 老王
gnehil Nick 王渔
Guangdong Liu hailin0

本文由 白鲸开源科技 提供发布支持!

Chrome 4.0正式发布,性能提升42%

Chrome 4.0正式发布,性能提升42%

继1月21日对Chrome 4.0 Beta进行最后一次升级后,Google于今天正式发布了Chrome 4.0稳定版,并将其版本号同样命名为4.0.249.78。Google Chrome项目主管Anthony Laforge在官方博客中表示,该版本目前仅针对Windows平台,包括以下新增功能和自3.0以来的安全修复:

— 扩展;

— 书签同步;

— 增强的开发者工具;

— HTML5:通知、Web数据库、本地存储、WebSockets、支持Ruby;

— 改善v8引擎性能;

— 完善Skia性能;

— 支持远程字体后以满分通过了Acid3基准测试;

— 支持HTTP字节排序;

— 新的安全功能:支持“Strict Transport Security”

— 实验性防XSS攻击新功能:XSS Auditor;

— 修复了11个安全漏洞,其中四个为高危级别。

Chrome 4.0的一个最重大的改进就是增强了浏览器的扩展功能,采用了新的扩展系统。另一位Chrome 产品主管Nick Baum表示,使用Chrome 4.0稳定版,PC平台上的Chrome用户可以通过新的扩展系统获得1500多个 新功能。用户可以到Chrome的扩展库中搜寻扩展,安装只需花费几秒钟的时间,卸载也同样轻松。

Google补充说,除了新增了诸多功能,Chrome 4.0还在性能方面取得了极大地进步。采用Mozilla的Dromaeo DOM Core测试工具所得的结果显示,Chrome 4.0比Chrome 3.0整体性能提升了42%,接近Chrome 1.0的5倍

Cocos Studio v2.0 Beta0正式发布:多维升级,性能全面提升

Cocos Studio v2.0 Beta0正式发布:多维升级,性能全面提升

总结

以上是小编为你收集整理的Cocos Studio v2.0 Beta0正式发布:多维升级,性能全面提升全部内容。

如果觉得小编网站内容还不错,欢迎将小编网站推荐给好友。

Dart 1.9 发布,新正则引擎,性能提升显著!

Dart 1.9 发布,新正则引擎,性能提升显著!

Dart 1.9 发布,异步编程无处不在 —— 用户交互,网络访问,文件 I/O。Dart 简化和增强了这些功能。

Dart 1.9 引入了 async 方法和 await 表达式,都是基于现有的 Future API。Dart 1.9 可以使用:for/while 循环,if 块和 try/catch 来管理复杂的异步交互。

之前

之后

Dart 1.9 同时引入了生成器方法 – sync*async*

其他改进如下:

  • enum, a long-requested feature, is now fully supported.

  • The Dart Analyzer has moved to the Dart Analysis Server. This makes it much easier to integrate Dart source analysis into IDE’s beyond the Dart Editor (for instance, IntelliJ and Sublime).

  • We''ve updated the regular expression engine for the Dart VM. It''s up to 150x faster than the previous implementation.

  • The Isolate API has now been fully implemented in the Dart VM, making it much easier to create applications that target multiple CPUs.

完整列表请看发行说明,现已提供下载。

更多内容请看这里。

Dart 1.9 包括了超多新特性,但是 Google 还是宣布 Chrome 不会内置 Dart VM,详情请看:

  • Google 决定不将 Dart VM 整合进 Chrome

  • 五大原因导致 Google 放弃在 Chrome 中使用 Dart 语言

今天关于PHP 8.0重大版本更新正式发布:支持JIT编译器,性能提升高达3倍php 8.0.3的分享就到这里,希望大家有所收获,若想了解更多关于Apache SeaTunnel 2.3.4 版本发布:功能升级,性能提升、Chrome 4.0正式发布,性能提升42%、Cocos Studio v2.0 Beta0正式发布:多维升级,性能全面提升、Dart 1.9 发布,新正则引擎,性能提升显著!等相关知识,可以在本站进行查询。

本文标签: