您的位置:首页 > 软件问答

控制时间的软件(安卓苹果都能用!看片无限制,这手机播放器真爽)

导读控制时间的软件文章列表:1、安卓苹果都能用!看片无限制,这手机播放器真爽2、ROG月刃无线AP 36k鼠标评测:不止于信仰,轻量化的电竞游戏利刃3、5款好用逆天的小众app ,相见恨晚!4、

控制时间的软件文章列表:

控制时间的软件(安卓苹果都能用!看片无限制,这手机播放器真爽)

安卓苹果都能用!看片无限制,这手机播放器真爽

因口罩原因,小雷身边的阳性朋友数量急剧上升,为了自己的健康着想,最近又开始了居家办公生活,这样不仅可以减少感染风险,还能明目张胆的摸鱼。

加上气温骤变,身在广州的小雷也穿起了打底裤,天气越冷在家越无心工作,只想着如何让这个工作时间过得快一点。好在小雷的工作不会突然来个视频会议,绝大多数时间是可以通过刷剧聊八卦来消磨时间。

说起刷剧,小雷之前也分享过不少第三方播放器,也正是因为免费资源全,渐渐地那些主流播放器基本都不用了。

不过市面上也有很多第三方播放器,通过不断地更新刷版本号,来植入广告、恶意导流等,导致用户使用体验大打折扣。说白了就是打着免费的旗号,等使用人数一多,就想尽各种法子来变现跑路。

当然,解决方法也不是没有,有一些论坛大神会对软件进行魔改,去掉了更新及广告这些服务,让其彻底变成一个纯净版工具。

碰巧小雷手上就有一款纯净版播放器,秉承着“有鱼大家一起摸的理念”,所以本期内容,小雷将这款工具分享给各位,让喜欢看片追剧的你,不再忍受广告等烦恼。

工具首页提供几大类选择,涵盖了电影、电视剧、动漫、综艺等,页面布局和常规第三方播放器保持一致,方便大家快速找到相关内容。

感兴趣的朋友,小雷也打包好了,老规矩呀!

最重要的是,不管是首页还是播放页,因特殊处理过,均没有广告植入等问题,大伙可以直接享受追剧的乐趣。

虽然工具每次启动都会有页面提示更新,但我们只要无视即可,它并不会强制更新。好了,考虑到资源敏感等问题,小雷就不一一展开说明,更多功能留着大家自行体验。

最后,还是需要强调一点,虽然是特殊处理过的版本,今后也不敢保证会不会出现广告问题,这类第三方播放器总能见缝插针的植入广告推广内容,大伙一定不要相信任何推广内容。

ROG月刃无线AP 36k鼠标评测:不止于信仰,轻量化的电竞游戏利刃

若想要在电竞游戏当中发挥更出色的操作,快速精准且稳定的游戏鼠标那是不可或缺的,从性能、手感、续航到价格都是影响选择因素之一,选对了鼠标会让游戏操作更得心应手提高战力。华硕的鼠标产品得到了玩家的认可,尤其是ROG玩家国度系列产品,比如月刃这个系列的鼠标,之前推出的是搭载原相PMW 3335光学传感器,且仅支持有线连接模式,不过挺有性价比的,现在推出了支持无线连接的版本,ROG月刃无线36k鼠标的硬件性能更强,搭载了自研AimPoint 36K光学传感器,DPI最高可达36000,轻量化的机身重量仅为75克,并支持三模连接功能,新款乍看之下可能不算便宜,究竟实际体验如何,看看下面的上手实测就知道了。

首先来开箱,外包装盒子以红黑为主色调,在正面印有ROG月刃无线AP 36k鼠标的设计图案,背面印了鼠标的功能特点,比如支持有线、蓝牙无线与2.4GHz无线三种连接模式,支持AURA SYNC神光同步等功能,另外,这款鼠标拥有两年的质保服务。

在包装盒内含有ROG月刃无线AP 36k鼠标本体,USB-A接口无线信号接收器,USB接口转换器,USB供电数据线,两颗欧姆龙机械微动开关以及说明书,供电数据线的长度约为两米,线材外层为伞绳材质较为柔软,并附带了硅胶扣带便于线材收纳。

相较于常见橡胶材质的线材来说,伞绳材质的数据线重量轻且更柔软耐用,随机附带了一个USB2.0接口转换器,分别是USB-C母口与USB-A母口,可将无线信号接收器接驳到转换器上,并将其放置于桌面上,减少阻隔以降低信号干扰。

随机附带了两颗欧姆龙机械微动开关,型号为D2F-01F,鼠标的左右两个主键均搭载了ROG自研机械微动开关,并支持热插拔功能,假如喜欢不一样的触按手感,或者经过长时间高强度使用后,用起来感觉精准度下降的时候可自行更换。

ROG月刃无线AP 36k鼠标整体采用右手人体工学设计,即为左高右低的造型设计,鼠标目前提供了两种配色版本可选,分别是月耀白与暗夜黑,考虑到本人桌面配色主题属于平淡无奇的白色系,因此选择了月耀白配色版本,鼠标的前半部为灰白色后半部为白色。

鼠标的左右两颗主键采用分离式设计,并搭配抗汗耐脏的PBT材质按键,即便长时间使用按键表面也不易打油,表面还做了磨砂处理,鼠标搭载了ROG自研机械微动开关,点击寿命可达七千万次,滚轮表面采用凹凸条纹的橡胶包裹增加摩擦力

鼠标左侧设计了前进与后退两个按键,按键的位置与尺寸设计不易误按,按键表面同样具有磨砂质感,鼠标的后部设计了ROG的大眼LOGO灯,支持多种RGB动态灯效与AURA SYNC神光同步,而DPI切换按键则设计在机身底部。

鼠标内置了容量为370mAh的锂电池,在关闭灯效蓝牙连接模式状态下,续航可达149个小时,假如按照一天使用八小时算,续航大约可达十八天,动态RGB灯效会直接影响鼠标续航表现,若想要获得较长的续航时间,建议降低RGB灯亮度以延长续航时间。

鼠标的底部设计了四片PTFE特氟龙脚垫,有着低摩擦系数等特点,低阻力有助于玩家实现各种快速甩动,ROG月刃无线AP 36k鼠标搭载了自研的AimPoint 36K光学传感器,DPI分辨率最高支持36000,650IPS追踪速度以及50G加速度,同时还拥有1000Hz的回报率,传感器在参数上属于是旗舰级水平。

ROG月刃无线AP 36k鼠标支持2.4GHz无线、蓝牙无线以及有线三种连接方式,通过鼠标底部的连接模式切换开关,快速切换至不同连接模式,三模连接设计轻松实现随意连接,不再受制于设备的连接兼容性,可连接手机平板或者笔记本电脑等移动设备。

鼠标还搭载了SpeedNova无线连接技术,优化无线传输消除信号阻塞,以实现更低的延迟稳定的无线连接,底部还设计了两颗DPI加减调节按键,鼠标预设了四个DPI档位,DPI调节范围为100~36000,可满足各类玩家不同游戏场景的需求。

接下来对这款ROG月刃无线AP 36k鼠标进行简单拆解,主要是查看内部布局以及机械微动开关更换方式,鼠标的拆解组装步骤很简单,只需取下底部的两颗保护胶套与螺丝,然后稍加用力将上盖翘起即可完成无损拆卸,鼠标的上盖并无任何电子部件。

鼠标内部部件十分规整,采用传统双层PCB复式结构,上层的主PCB板是核心所在,包括传感器、滚轮与侧键,而左右两颗主键设于副PCB板上,在主板上方是一颗370mAh的锂电池,由于没有合适的批头无法取下电池,仅能从不同角度去观察。

ROG月刃无线AP 36k鼠标的两颗主键采用的是ROG自研机械微动开关,红色半透明的外壳设计,具有七千万次点击寿命,接点采用增强镀金工艺,减少30%的压力偏差,在按压手感方面更一致稳定,鼠标滚轮采用了来自凯华的编码器。

前进后退两颗侧键采用了凯华的机械微动开关,在使用寿命与手感都有保证,微动开关直接焊接在主板无法拆卸更换,考虑到按键的使用频率不算高,无法拆卸也是可以理解的,在PCB板的后部设计了一款贴片式RGB灯珠以实现背光效果。

两颗主键的机械微动开关采用热插拔式设计,替换的操作步骤很简单,只需稍微用力取下鼠标原来的机械微动开关,然后插下随机附带欧姆龙微动开关即可,也可选择不同品牌不同型号的微动开关,不仅能支持3PIN插脚的机械微动开关,还兼容欧姆龙的5PIN插脚光学微动开关。

若要对鼠标进行参数或灯效进行设置,需要配合专属的驱动软件,分别是ARMOURY CRATE奥创智控中心软件以及AURA Creator软件,前者为参数控制设置软件,后者为RGB动态灯光效果编辑工具,需要两个软件相互配合才能展现出鼠标的全部功能。

Armoury Crate软件可对华硕的硬件产品进行管理设置或者驱动更新软件,本次仅针对ROG月刃无线AP 36k鼠标进行参数调整,在按键界面中可对按键滚轮自定义设置,可实现包括按键映射、宏命令触发或快捷控制等功能,左主键是固定无法调整的。

在性能界面中对鼠标的DPI值与轮询率(USB回报率)等项目进行调整,预设了四个DPI档位供设置,DPI可调节范围为100~36000,轮询率提供了125Hz~1000Hz四个档位可选,还有直线修正功能与定位角度调整功能可选,在游戏场景下不建议启用直线修正功能。

在软件中可选灯光模式较为丰富,包括恒亮、呼吸、彩色循环、触发与电池等灯光模式,并可单独调整灯光亮度与灯光颜色等参数,假如需要实现专属的RGB灯光同步功能,可将灯光模式切换至Aura Sync,并在AURA Creator软件中设置调整。

在软件中还有表面校准功能,可根据不同类型不同材质的鼠标垫进行校准,并可设置鼠标的拉抬高度,假如配有华硕自家的鼠标垫可使用该功能进行校准,这样会让鼠标在快速滑动操作中更加精准,假如使用普通的鼠标垫就不需要设置了。

在电量界面中查看鼠标的当前剩余电量,并可设置低电量提示比例值,以及进入睡眠模式的等待时间,RGB动态灯光会明显影响到鼠标的续航时间,若想获得较长续航时间,可适当降低灯光亮度或者关闭灯光,缩短睡眠模式的等待时间,在软件中也可进行升级鼠标固件。

在ARMOURY CRATE软件中的RGB灯效设置项目较基础,没法发挥出鼠标应有的效果,假如要实现神光同步或者深度定制灯效,需要通过AURA Creator来实现,在启动AURA Creator灯效控制软件前,在ARMOURY CRATE控制软件中将灯效模式设为AUra Sync,不然软件会无法识别鼠标。

在AURA Creator灯效控制软件当中拥有多种预设灯效,其中包括彩虹、繁星、潮汐与彗星等灯效,灯效设置方式与一般的视频编辑软件相似,新建一个图层然后再将不同灯效加载其中,在图层中可同时加载多种灯效,并可对灯效进行排序或细致化的修改。

信号同步项目中提供了音乐、智能与同步辨色三种效果,智能灯效是通过实时检测系统温度或使用率以显示不同颜色,鼠标没有相应的配置因此无法实现,仅能实现音乐灯效与同步辨色灯效两种,设置完成后可实时预览灯光效果,保存设置后鼠标上的RGB灯效会循环显示。

音乐灯效是通过检测系统当前播放的媒体音频,转换为动态灯光效果,鼠标上的RGB灯光会跟随音乐律动,灯光色彩亮度均可自由定制,可设为单色或者彩色循环,而同步辨色灯效是实时检测屏幕中所选定的区域的色彩,同步显示在鼠标的RGB灯上。

将RGB灯效设为音乐模式与彩色循环,如想更沉静一些可设为单色,RGB灯光亮度跟随系统音乐的节奏来进行变化,而灯光色彩循环变幻,通过与AU软件中电平图进行对比,几乎能实现同步跳动,展现出别样的流光溢彩美感,对桌面进行装点。

ROG月刃无线AP 36k鼠标的机身尺寸为118mm*62mm*39mm,而重量仅为75克,作为一款内置锂电池的无线鼠标来说,在重量表现上是非常出彩的,这比大部分无线鼠标都要轻盈,对比本人正使用的游戏鼠标,在握持操控时有着明显的重量差异感。

在实际握持手感方面,手掌属于中大手型,鼠标采用了左高右低且圆润饱满的造型设计,在握持时有着极强的贴合感,适合于趴握或抓握的姿势,鼠标的表面有着两种不同的触感,前部按键位置有种较为粗糙的触感,而后部掌心位置却是那种细腻的触感。

游戏鼠标对手型小的用户更加友好,而且自身重量十分轻盈,在握持快速甩动或提起移位时无需使用太多力气,操控起来更加随心稳定,长时间高强度使用没什么不适感,尤其适合激烈的竞技游戏,而且左侧面的按键位置布局合理不易误触。

鼠标的左右两颗主键下按手感轻盈干脆无空键程,触底反馈扎实回弹迅速,即便快速用力连击主键也没粘滞感,滚轮的段落感清晰干脆,转动阻尼感较轻,可很好的兼顾不同的使用场景,比如在游戏中通过滚轮切换装备的明确界限感,在浏览较长的网页或阅读文档时的轻快感。

鼠标搭载了AimPoint 36K光学传感器,接下来通过软件测试鼠标回报率的稳定性,波动范围越小意味着性能越稳定,在2.4GHz无线连接,并在1000Hz回报率设置状态下,软件测试回报率的数值基本集中在1000Hz附近,波动范围很小,鼠标能够保持很高的稳定性。

总评

华硕ROG月刃无线AP 36k鼠标在视觉上给人一种素雅简洁的感觉,在办公室图书馆等场所使用也不会显得突兀,而尾部那颗硕大的ROG眼睛尤为亮眼,可个性化定制各种酷炫RGB动态灯效以及神光同步,均彰显了独特辨识度表明了其血统。鼠标采用轻量化的设计,其整体重量仅为75克,轻盈的机身重量配合特氟龙材质脚贴,带来更轻快灵活的操控体验,长时间使用也有着十足舒适性,整体采用左高右低右手人体工学设计,在趴握时能完全贴合手掌,PBT材质主按键手指触感干爽硬朗。

在硬件配置方面,鼠标搭载自研AimPoint 36K光学传感器,DPI最高支持36000以及650IPS追踪速度,轻松实现像素级别的精准微操,搭载了ROG自研机械微动开关,有着干净利落的按压手感,并支持热插拔功能,可自由更换所喜好的微动开关,鼠标支持三种连接模式随意连接设备不再受限,没有线缆的束缚摆脱拖曳感,多种不同特性融合在一起,在玩电竞游戏时,从滑动瞄准到点按触发一气呵成,没有丝毫拖泥带水的感觉,在游戏场景中是不可或缺的利器,综合的使用体验可以说表现得十分优秀。

5款好用逆天的小众app ,相见恨晚!

作为一个手机重度爱好者,发掘宝藏好用的手机app,是我的生活兴趣。今天就给大家推荐几款app ,轻松提高生活幸福感!

1.你的日记

你的日记,一款治愈系笔记软件。在这个私密的空间,日记上有过去的点滴记录,可以帮助现阶段的你,回忆那些年的那些事儿。

这一款界面配色清新治愈,很适合文艺风的小哥哥小姐姐们。你可以把它当做朋友圈,在上面分享喜怒哀乐;也可以看见陌生人的故事~它还设置了一个很有意思的平行空间,会随机匹配和你一样喜欢写日记的人,如果你对匹配的人不感兴趣,可以选择断联,或者关闭这个功能。

2.一伴

现在很多年轻人工作忙,每天两点一线,也没有圈子可以交到新朋友。跟其他婚恋软件相比,一伴app 打破了常见的聊天有限制的套路收费模式,软件安全性更高,也更靠谱。

一伴婚恋的审核机制都是采用实名认证的,需要上传真实身份信息才能注册账号,相对较高的注册门槛决定了整体的用户质量,里面有很多有学历有涵养的单身男女。

另外,这款app 界面设计也很简洁,使用过程中不会出现各种弹窗垃圾广告,登录成功后,可以放心浏览其他用户的信息,它还有互相添加微信的功能,想要早点告别单身,真心找对象的话,可以尝试这款app。

3.Time 时光记账

为了更好的控制生活成本,改变消费大手大脚的毛病,学会记账是第一步!所以给大家分享time时光记账,超级奈斯。

它的界面简洁干净,没有过多复杂元素的干扰,整体看起来非常清爽,男女都很适用。这款app可以多账本多场景记录,并且配合了时间轴,什么时候在哪里消费了多少钱,记账的同时也在花样记录生活,当然,也能更清晰的知道钱的流向。

4.潮汐

你有多长时间不能专注做一件事情,又有多长时间没有睡过一个好觉了,这款潮汐app ,集睡眠、冥想和专注于一体,可以帮助我们减少生活中的压力。

潮汐页面元素很简单,主要包含了背景图片,主题名称以及主题音乐等,操作也就是左滑右滑,十分方便。因为主打舒缓身心压力,是一款健康类App,所以它主要包含有关身心健康的减压、睡眠、专注和呼吸四个模块。因为有很多场景可以切换,大家根据自己的实际情况去选择就好啦。

5.MOO音乐

现在很多年轻人,不管是在校的大学生还是上班的精英白领,都有一定的生活压力,听音乐是他们日常减压的一种方式。

Momo音乐和常见的音乐app 相比,页面设计更加简洁,没有过多复杂东西,背景多以黑色为主,它的曲库由qq音乐提供,曲库很丰富,不用担心因为是小众app 所以就搜不到想听的歌曲,喜欢小众风格的宝宝可以试试看!

如果你的手机还没有这几款好玩又实用的小众App,快快收藏体验一番吧~

盘点以下宝藏APP,打开你的新世界

推荐一:米糕天气

这是一款风格特别可爱的天气软件;支持苹果版。真的很神奇,上百张超级萌的插画,每次天气变化,时间变化,都有可能触发不同的天气画面。还支持可爱的桌面小部件,可以在手机桌面放置多个不同大小的天气小部件,让你不用打开软件也能萌起来。最后,以后会增加更多可爱的天气图片。该软件并非完全免费,部分功能需要付费版才能使用。也就是说,它会让您感到非常惊喜和期待,因为您下次打开软件时,您可能会一次又一次地发现新的可爱天气图片。

推荐二:软眠眠

这是一款完全免费的白噪声和睡眠监测记录软件;支持安卓版和苹果版。整个软件就像一股清流,极简,干净,自然,舒服,每个界面都那么漂亮,精美的插图,流畅的动画,很有质感,很赞。支持时间段,目前支持2个场景和时间,雨天教室晚自习和雨天深夜自习。支持助眠板块,包括改善睡眠和深度放松两大类助眠音乐。改善睡眠包括:深度睡眠提高睡眠质量,深度睡眠清除负面情绪,高效午休消除困倦,深度睡眠高效休息,放松神经舒缓减压,慢波睡眠冥想放松身心。支持午睡功能,可以设置时间,选择助眠音乐,到时间叫醒你,也可以长按屏幕结束。支持睡眠记录和睡眠报告功能,包括:入睡时间、起床时间、睡眠时间、深睡时间、浅睡时间、睡眠质量、鼾声、梦话。

好了!以上就是今天的分享。

Node.js、Deno、Bun 6大典型场景性能大PK?

大家好,很高兴又见面了,我是"web 前端分享",由我带着大家一起关注前端前沿、深入前端底层技术,大家一起进步,也欢迎大家关注、点赞、收藏、转发!

Node.js、Bun、Deno全面比较

Bun 是一个全新的、雄心勃勃的 JavaScript 工具集和运行时。 早期采用者一直在报告 Bun 的速度快到令人难以置信。 如此之快以至于它被一些人吹捧为 Node 杀手。 出于好奇,我决定亲自测试一下 Bun,并将其与竞争对手Node、Deno进行全方位的性能比较。

Bun真的像人们说的那么快吗? 它有多稳定? 它真的比 Node 好吗? 我可以将它与持续集成一起使用吗?接下来一一回答上面的问题。

1.Bun是什么?

Bun 是 JavaScript 家族的最新成员。 它在 2018 年问世时就掀起波澜,可与 Deno 相媲美。Bun 位于 Node 和 Deno 之间。 Bun 与 Deno 一样,开箱即用地支持 typescript,并提供对开发人员友好的功能,例如顶级等待(top-level awaits)和内置 Web API。

top-level awaits:允许在模块的顶层独立使用await命令

但是,与 Deno 不同的是,Bun 旨在成为 Node、Webpack、Babel、Yarn 和 PostCSS 的直接替代品,所有这些功能都在一个简洁的包中一并提供。Bun 以 MIT 和 LGPL2 许可(由于集成了JavaScriptCore)协议发布,在撰写本文时,版本为 v0.4.0。

Bun最新版本为V0.4.0

2.Bun 与 Deno 和 Node 相比如何?

虽然 Bun 受到 Node 和 Deno 的启发,但它显然也试图通过提供工具集来改善开发体验和生产力。Bun JavaScript 继承了 Deno 的特性,例如作为单个二进制文件发布并具有原生 TypeScript 支持。下表为Bun和Deno的全方位比较:包括语言支持、Web API、NPM/Node兼容、权限管理、JS引擎、License等等诸多维度。

Bun和Deno的多维度比较

与 Node 相比,Bun 提供了更多的功能,同时努力保持与Node的兼容性。下表从Node/NPM兼容、live-reload、JS引擎、语言支持等诸多维度进行了全方位比较。

Bun和Node的比较

然而,处于测试阶段的 Bun 仍然有一些方面的不足:

文档有限,但 Bun 的 社区Discord 非常活跃并且是一个很好的知识来源

没有 Windows 支持(需要集成WSL)

Bun 在安装包时可能会卡住,fetch 不可靠(虽然我从未发生过)

Bun 并非 100% 兼容 Node,也不是每个 npm 包都支持,例如Express 等

发布到 npm 注册表(npm registry)不起作用

在 API 和 CLI 稳定之前,需要更多的break changes

Bun也有一些独特的特征:

内置sqlite3模块(MySQL和PostgreSQL也在计划中)

开箱即用的 .env、.toml 和 CSS 支持(不需要额外的加载器)

React 和 Next.js 的内置框架支持和优化

内置外部函数接口 (FFI),用于对支持ABI 的语言(如 C、Rust 或 Kotlin)做底层调用

提供将错误复制为 Markdown 的格式选项(用于快速共享)

3.Bun真的这么快?

Bun 的诞生源于 Jarred Sumner 对一种语言执行速度的不懈追求:“我一直对 JavaScript 中的一切都如此缓慢感到非常沮丧。 我知道 JavaScript 可以更快”。 作为 Stripe 的前端开发人员,Jarred 知道快速迭代周期对于生产力的重要性。

开发者体验很重要。 因此,Bun 的速度不局限于比其他运行时更快处理请求,还意味着它在安装包、运行测试、打包和转译方面更快。

下面运行一些测试示例来了解 Bun相对于Deno、Node的实际性能。

3.1 Bun基准测试指标

与 Deno 和 Node 相比,Bun 的主页报告性能提高了 3 倍和 4 倍。

Bun主页性能描述

这些是我想亲自测试的令人印象深刻的数字,所以让我们在不同类别中运行一些基准测试:

作为包管理器的 Bun 与 npm

Bun 与 npm 作为脚本运行器

用于 CI/CD 工作流程的 Bun 与 npm

Bun vs. Node vs. Deno 用于复制大文件

Bun vs. Node vs. Deno 用于服务 HTTP 请求

下面是进行基准测试的软件环境版本:

Node.js v16.16.0

npm v8.11.0

Deno v1.23.4

Bun v0.1.4

下面是用于基准测试的工具:

oha:v0.5.3

hyperfine:v1.14.0

Semaphore CI/CD:在 e1-standard-2 和 Ubuntu 20.04 上运行测试。

MacBook Pro M1 2020,MacOS 12.4

您可以在文末查看用于每个案例的脚本,如果可能,我会尝试直接比较 Bun、Deno 和 Node。然而,Deno 从未打算作为 Node 的直接替代品,因此它没必要参与所有测试。

3.2 使用 Bun 管理包

在第一个测试中,我们将比较 Bun JavaScript 与 npm 在创建新项目方面的表现。如下所示,npm 需要 49 秒才能创建一个空的 React 应用程序。

time npx create-react-app myappCreating a new React app in /code/myapp. Installing packages. This might take a couple of minutes.Installing react, react-dom, and react-scripts with cra-template...added 1392 packages in 38s 16.50s user 6.33s system 46% cpu 49.016 total

Bun发布的时候集成了bun create命令,能够执行上面相同的操作:

$ time bun create react myapp[package.JSON] Detected React - added "react-refresh"bun install v0.1.4 Resolving [1/4][29.00ms] git react-refresh@0.10.0 typescript@4.7.4 react@18.2.0 react-dom@18.2.0 web-vitals@2.1.48 packages installed [2.39s]2.48s user 0.30s system 66% cpu 4.160 total

Bun 只需不到一秒钟的时间即可完成项目设置, 这是一个很大的性能提升。 但这是一个有效的比较吗? 经过进一步检查,我们发现:

npm 安装了 1,392 个包,node_modules 大小为 250 MB

Bun 只安装了 8 个包,总大小为 72 MB

我们在这里就像将苹果与橙子进行比较,因为 Bun 的实例化 React 模板更小。 令人惊讶的是,它仍然非常适合开发。 我可以运行 bun dev 立即开始,Bun 也会在每次代码更改时自动重新加载。

然而,Bun 的启动器 React 无法创建生产构建。 为此,我们需要添加react-script脚本:

$ bun add react-scripts -d

新的依赖项安装了 1,133 个以上的包,使 node_modules 的总大小达到 298 MB。现在处于NPM和Bun的对等比较位置,在使用每种工具创建新应用程序 10 次后,我们有一些数字可以拿来比较。

创建新应用程序 10 次得到的性能数据

所有测试都是使用 npm 和 bun 在缓存情况下完成的,这解释了为什么 npm 第二次表现得更好。

Bun在包管理方面至少比 npm 快 6 倍

在这个测试中,Bun JavaScript 看起来相当不错:它至少比 npm 快 6 倍。但是,Bun 有时会锁定(lock up,一个已知问题)。此外,npm 会不时显著减慢速度,但是我无法定位造成这种情况的原因。

3.3 使用 Bun 和 npm 添加和删除包

接下来测试一下npm和Bun添加和删除包需要多长时间。我将使用 npm 创建的 React App 作为测试项目。 使用每个工具删除并重新添加 webpack 10 次后,我得到以下结果:

删除并重新添加 webpack 10 次性能数据

在安装包方面 Bun 比 npm 快 20 倍

唯一的问题是 Bun 的包管理并不是 100% 兼容 npm:

Bun 使用二进制锁文件而不是 package-lock.json,但它可以使用 bun install -y 打印出与 Yarn 兼容的 JSON 锁文件。

Bun 不会像 npm 那样默认安装对等依赖(peer dependencies)。 因此,您最终可能会在 node_modules 文件夹中得到一组与预期不同的包。

3.4 Bun 作为任务执行器

不幸的是,Bun 的运行时组件没有实现足够的 Node API 来执行复杂的事情,例如构建 React 项目或运行端到端测试。 不过,Bun 现在可以在一个方面提供帮助:即,作为 npm run 的替代品。

npm 的问题在于它甚至需要大约 150 到 200 毫秒才能启动。 这听起来可能没什么大不了的,但是当您频繁运行脚本时,您会感觉到时间在一点一点地消耗工作效率。

bun 没有这个启动问题,所以 bun run test 应该至少比 npm run test 快几毫秒。 我们可以通过运行同一组脚本 50 次并对结果取平均值来确认:

运行npm run 50次性能数据

差异是由于 npm 启动时间,在这两种情况下,测试本身都是使用 Node 执行的

3.5 大文件拷贝

在这个测试中,我想比较每个运行时如何处理复制大文件的任务,这是一个花费了大量优化工作的领域。

拷贝1GB以上大小文件

我用 Bun、Deno、Node 和 cp 方法复制了相同的随机生成的 1GB 文件以进行测试。每个工具运行 20 次后,结果如下:

20次复制1GB大小文件性能数据

Bun 和 Deno 在复制大文件时处于绝对领先地位

Bun和Deno的表现接近,都赢了cp近50%。 Node 远远落在后面,因为它需要 3 倍多的时间来完成同样的任务。

3.6 HTTP 决战:Bun vs Deno vs Node

Bun 的 JavaScript runtime 包括一个工作的 HTTP 服务器,它提供了一个与 Node 和 Deno 进行比较的基准测试机会。 对于测试,将使用 Bun 的示例脚本来驱动测试。 我将使用 oha 生成和测量流量。

HTTP请求性能比较

该基准测试运行 200 万个请求,并发数为 50。对于所有情况,都启用了 HTTP keepalive。

HTTP请求性能数据

处理 HTTP 请求时,Bun 的速度是 Node 的两倍,比 Deno 快 1.7 倍

Deno 的性能比 Node 高 19%,但 Bun 以两倍的速度击败了竞争对手Deno。

3.7 用 Bun 加速 CI/CD

已经确认 Bun 可以为开发机器带来优势,但是使用它来加速 CI/CD 是否有意义? 这是一个至关重要的方面,因为持续集成管道的速度是快速开发周期的决定性因素。

我在 Semaphore 的 JavaScript 演示项目上配置了两个分支:

master 按照最初设计使用 npm 运行所有脚本。

bun 分支用 Bun 替换了 npm。 需要明确的是,我们只是将 Bun 用作任务运行器,而不是运行时。 在这两种情况下,测试和构建步骤仍在由 Node 执行。

Bun 会加速 CI/CD 管道吗? 在每 10 分钟运行两个分支并持续 5 小时,选取 33 个样本后,结果如下:

持续集成性能数据

用 Bun 替换 npm 使我的管道速度提高了 20%

尝试使用 Bun 驱动 CI/CD ,我学到了一些东西:

与缓存 node_modules 文件夹不同,保存和恢复位于 $HOME/.bun/install/cache 的 Bun 全局缓存会更快

Bun 附带了一个实验性的测试运行器,它比 Jest 快得多。 不幸的是,我无法让它发挥作用

有很大的改进潜力, 一旦 Bun runtime 可以取代 Node,CI/CD 速度可能会大幅提升

4.结论

Bun很快,你可以在一秒钟内做更多的事情。那么Bun 会取代 Node 吗? 现在说还为时过早! 当 Deno 出现时,它没有杀死 Node,当然杀死Node也不是Deno的初衷。 但 Bun JavaScript 的目标是兼容性,因此它有更好的机会。 而且,正如我们所见,即使在这个早期阶段,它也可以是一个非常强大的工具。

参考资料

https://github.com/TomFern/benchmarks-javascript (文中测试代码示例)

https://semaphoreci.com/blog/javascript-bun

https://discord.com/invite/CXdq2DP29u

免责声明:本文由用户上传,如有侵权请联系删除!