ThinkJS 2.1:支持 TypeScript,性能提升 90%

简介:

Thinkjs 2.0 是第一个全面支持使用 ES6/7 特性开发的 Node.js 框架,于 2015.10.30 正式发布。使用 ES6 里的*/yield 或者 ES7 里的 async/await 可以很好的解决异步嵌套的问题,借助 Babel 编译,可以稳定运行在 Node.js 各个主流版本中。同时 ThinkJS 提供了自动编译和自动更新的机制,免去了文件修改后重启 Node.js 服务的麻烦。

经过一个多月的紧张开发后,ThinkJS 迎来了 2.1 版本。2.1 版本不管在功能还是在性能上都有大幅的改进和提升,具体如下:

支持 TypeScript

TypeScript 是一种由微软开发的自由和开源的编程语言。它是 JavaScript 的一个超集,向这个语言添加了可选的静态类型,在大型项目里非常有用。

ThinkJS 2.1 开始支持了创建 TypeScript 类型的项目,并且开发时会自动编译、自动更新,无需手工编译等复杂的操作。具体请见这里。

性能提升 90%

2.1 版本利用 V8 的 trace(--trace-opt, --trace-inlining, --trace-gc) 分析做了很多深度的优化,同时使用 bluebird 库替换原生和 Babel 里的 Promise 库,使性能有大幅的提高,具体性能相对于 2.0 版本提升高达 90%。

评价一个框架是否出色,一方面看支持的功能,另一方面也要看性能。虽然 ThinkJS 更适合大型项目,功能和复杂度远远超过 Express 和 Koa,但性能上并不比 Express 和 Koa 逊色多少,具体的测试数据请见下图。

screenshot

注:以上数据使用分布式压力测试系统测试。

从上图中测试数据可以看到,虽然 ThinkJS 比 Express 和 Koa 性能要差一些,但差别并不大。ThinkJS 和 Sails.js 都更符合大型项目,但 ThinkJS 的性能要比 Sails.js 高很多。

具体测试代码请见:,可以下载代码在本机测试,如果使用 ab 测试工具,请注意该工具在 Mac 系统下很不稳定,多次测试结果会相差很大。

升级 Babel 到 6

2.0 编译依赖的 Babel 为 5,在 2.1 版本里升级到 6,这样和前端代码编译可以更好的结合了。

多级控制器

传统的 MVC 中,Controller 只支持一级。虽然在 2.0 版本中添加了模块的功能,但还是不能很好的满足特别大型的项目。

2.1 版本支持多级控制器,也是就在 Controller 里可以建立子目录,目录层级深度完全可以根据项目需要来设定,这样可以更好的满足不足项目复杂度的开发需求。

支持 PostgreSQL

继支持 PostgreSQL 后, ThinkJS 现在支持 MySQL,SQLite,MongoDB 和 PostgreSQL 4 种数据库,后续还会支持更多的数据库,开发者也可以进行扩展。

====================================分割线================================
文章转载自 开源中国社区[http://www.oschina.net]

目录
相关文章
|
2月前
|
JavaScript 前端开发 安全
Typescript 的优点
Typescript 的优点
15 0
|
5月前
|
JavaScript 前端开发 安全
开发业务需求有必要引入 TypeScript 吗?
随着前端技术的不断更新和发展,TypeScript作为一种静态类型的JavaScript超集语言,逐渐在业界崭露头角,尤其是在当今快速发展的软件开发环境中,选择适合的开发工具和技术变得至关重要。在项目规模和复杂性的增加的同时,保证代码质量、可读性和可维护性成为开发团队的重要任务。这样的背景下,引入TypeScript作为一种开发工具来弥补JavaScript的某些弱点,已经成为许多开发团队的选择。那么TypeScript是否值得在业务中引入?它是否会取代JavaScript?那么本文就来聊聊在业务开发过程中是否有必要引入TypeScript,并讨论一下对于现代前端框架发展的看法和期待。
53 0
开发业务需求有必要引入 TypeScript 吗?
|
8天前
|
JavaScript 前端开发
typescript 混合类型
typescript 混合类型
|
4月前
|
JavaScript 前端开发 编译器
TypeScript的10个缺点
TypeScript的10个缺点
|
9月前
03-TypeScript核心基础
03-TypeScript核心基础
28 0
|
4月前
|
JavaScript 前端开发
一文读懂TypeScript类型兼容性
一文读懂TypeScript类型兼容性
|
6月前
|
JavaScript 安全 IDE
列出使用Typescript的一些优点?
列出使用Typescript的一些优点?
|
7月前
TypeScript-类型兼容性
TypeScript-类型兼容性
17 0
|
7月前
|
JavaScript 前端开发
什么是 TypeScript 的类型增强功能
什么是 TypeScript 的类型增强功能
40 0
|
9月前
|
JavaScript 前端开发 索引
TypeScript深度剖析:TypeScript 中接口的理解?应用场景?
TypeScript深度剖析:TypeScript 中接口的理解?应用场景?
65 0