Web前端开发网

fly63.com

首页 资源 工具 文章 教程 栏目
  • 在线搜索
  • 文章标签
  • 广告合作
  • 赞助一下
  • 关于我们
资源推荐
AiPPT
全智能AI一键生成 PPT
fly63工具箱
简单、易用、便捷的在线工具
SpeedAI
一键去重、降AIGC率、数据可视化、论文写作
美图设计室
AI智能一键生成海报,免费平面设计
仙宫云
GPU算力租赁,云算力在线租赁平台
奇绘馆AI视频
新一代AI视频创作平台
LiblibAI
一站式AI内容创作生成平台,原创AI模型分享社区
任推邦
APP推广项目分发和流量变现平台
蜂小推
不扣量的项目推广平台
即梦AI
一站式智能创作平台,即刻造梦

资源分类

AI智能 酷站推荐 招聘/兼职 框架/库 模块/管理 移动端UI框架 Web-UI框架 Js插件 Jquery插件 CSS相关 IDE环境 在线工具 图形动效 游戏框架 node相关 调试/测试 在线学习 社区/论坛 博客/团队 前端素材 图标/图库 建站资源 设计/灵感 IT资讯
网站收录 / 问题反馈

LLRT

分享
复制链接
新浪微博
QQ 好友

扫一扫分享

GitHub:https://github.com/awslabs/llrt
网站描述:亚马逊开源的一个轻量级的 JavaScript 运行时
GitHub

LLRT(低延迟运行时)是一种轻量级 JavaScript运行时,旨在满足对快速高效的无服务器应用程序不断增长的需求。

与AWS Lambda上运行的其他 JavaScript 运行时相比, LLRT 的启动速度提高了10 倍以上,总体成本降低了2 倍 它采用 Rust 构建,利用 QuickJS 作为 JavaScript 引擎,确保高效的内存使用和快速启动。


特点

  • 更快的启动时间:LLRT 的启动速度比其他在 AWS Lambda 上运行的 JavaScript 运行时快 10 倍以上。这种速度优势对于需要快速响应传入请求的 Serverless 函数至关重要。

  • 节省成本:LLRT 的整体成本比其他运行时低 2 倍以上。通过优化内存使用和减少启动时间,它有助于最小化运行无 Serverless 工作负载的成本。

  • 基于 Rust 构建:LLRT 使用 Rust 实现,这是一种系统编程语言,以其性能、安全性和内存效率而闻名。

  • QuickJS 引擎:LLRT 使用 QuickJS JavaScript 引擎。QuickJS 是一个小巧且可嵌入的用 C 语言编写的引擎,非常适合像 LLRT 这样的轻量级运行时。


关键区别

与像 Node.js、Bun 或 Deno 这样的通用运行时不同,LLRT 专注于 Serverless 环境的需求。以下是一些关键区别:

  • 无 JIT 编译器:与 Node.js 依赖即时(JIT)编译不同,LLRT 不包含 JIT 编译器。这种设计选择简化了系统复杂性,减少了运行时大小,同时节省了 CPU 和内存资源。

  • 打包依赖项:为了实现加速,LLRT 要求开发者将他们的代码和依赖项打包到一个单独的 .js 文件中。这消除了模块解析期间的文件系统查找,这是其他运行时中常见的瓶颈。

  • 预编译 AWS SDK:LLRT 将 AWS SDK 的部分内容预打包和预编译为字节码。这种方法进一步有助于加快应用的启动时间。


LLRT 可以用于以下情况

  • 数据转换:LLRT 在需要低延迟的数据处理任务中表现出色。

  • 实时处理:对于实时工作负载,例如事件驱动处理或流式数据,LLRT 的快速启动时间是无价的。

  • AWS 服务集成:在与 AWS 服务如 DynamoDB 或 S3 集成时,LLRT 确保快速响应。


测试并确保兼容性

确保代码与 LLRT 兼容的最佳方法是编写测试并使用内置测试运行器执行它们。测试运行程序当前支持 Jest/Chai 断言。您可以创建两种主要类型的测试:

单元测试

  • 对于单独验证特定模块和功能很有用
  • 允许对各个组件进行集中测试

端到端 (E2E) 测试

  • 验证与 AWS SDK 的整体兼容性和 WinterCG 合规性
  • 测试所有组件之间的集成
  • 从最终用户的角度确认预期行为


使用 LLRT 的节点模块(依赖项)

由于 LLRT 适用于对性能要求较高的应用程序,因此不建议在未进行捆绑、最小化和树形抖动的情况下部署 node_modules。

LLRT 可与您选择的任何捆绑程序配合使用。以下是一些常用捆绑程序的配置:

ESBuild

esbuild index.js --platform=node --target=es2020 --format=esm --bundle --minify --external:@aws-sdk --external:@smithy --external:uuid

Rollup

import resolve from "@rollup/plugin-node-resolve";
import commonjs from "@rollup/plugin-commonjs";
import terser from "@rollup/plugin-terser";

export default {
input: "index.js",
output: {
file: "dist/bundle.js",
format: "esm",
sourcemap: true,
target: "es2020",
},
plugins: [resolve(), commonjs(), terser()],
external: ["@aws-sdk", "@smithy", "uuid"],
};

webpack

import TerserPlugin from "terser-webpack-plugin";
import nodeExternals from "webpack-node-externals";

export default {
entry: "./index.js",
output: {
path: "dist",
filename: "bundle.js",
libraryTarget: "module",
},
target: "web",
mode: "production",
resolve: {
extensions: [".js"],
},
externals: [nodeExternals(), "@aws-sdk", "@smithy", "uuid"],
optimization: {
minimize: true,
minimizer: [
new TerserPlugin({
terserOptions: {
ecma: 2020,
},
}),
],
},
};


仅供个人学习参考/导航指引使用,具体请以第三方网站说明为准,本站不提供任何专业建议。如果地址失效或描述有误,请联系站长反馈~感谢您的理解与支持!

链接: https://fly63.com/nav/4139

更多»
热门资源
TypeScript
一种由微软开发的自由和开源的编程语言。它是JavaScript的一个超集
官网
GitHub
Vite
下一代前端开发与构建工具
官网
GitHub
webpack
webpack 是一个模块打包器。它的主要目标是将 JavaScript 文件打包在一起
官网
GitHub
npm
javascript 最流行的包管理器
官网
GitHub
yarn
可替代NPM的快速、可靠、安全的可信赖包管理工具Yarn
官网
GitHub
bower
解决js的依赖管理
官网
GitHub
grunt
基于Node.js的项目构建工具。它可以自动运行你所设定的任务
官网
GitHub
Parcel
快速,零配置的 Web 应用程序打包器
官网
GitHub
babel
Babel 是一个 JavaScript 编译器,可用下一代JavaScript 语法写代码
官网
GitHub
browserify
一个浏览器端代码模块化工具,require和module.exports来导入和导出.Browserify的原理:部署时处理代码依赖,将模块打包为一个文件。
官网
GitHub
Rolldown
Rust 驱动的高性能打包器
官网
GitHub
HEAD
一份你可以在 <head> 里设置的列表
官网
GitHub
类似于LLRT的资源
qiankun(乾坤)
为微型前端提供快速,简单且完整的解决方案
点击进入
GitHub
ied
Node的另一个包管理器
官网
GitHub
WMR
微型的多合一开发工具,用于现代 Web 应用程序
官网
GitHub
electron-webpack
使用webpack编译Electron应用程序的脚本和配置
官网
GitHub
wujie (无界)
腾讯推出的极致的微前端框架
官网
GitHub
npm
javascript 最流行的包管理器
官网
GitHub
Docker
一个开源的应用容器引擎
官网
GitHub
Jiko
现代化的,易于使用的面向Javascript的模板引擎
官网
GitHub
目录

手机扫一扫预览

》
分享组件加载中...
首页 技术导航 在线工具 技术文章 教程资源 前端标签 AI工具集 前端库/框架 实用工具箱 广告合作 关于我们

Copyright © 2018 Web前端开发网 All Rights Reserved. 提供免费在线工具、编程学习资源(教程/框架/库),内容以学习参考为主,助您解决各类实际问题,快速提升专业能力。