windows 下 Bun 1.1 版本沉浸式实践体验

概述

4月1号(愚人节),Bun/包子 发布 1.1 版本,宣布支持 windows 平台👍。


接下来,我将用实际项目以及程序对比下。

名称版本
nodev21.4.0
bun1.1.2

测试机器配置如下:

  • 处理器 11th Gen Intel® Core™ i5-11300H @ 3.10GHz 3.11 GHz
  • 机带 RAM 16.0 GB (15.8 GB 可用)

单包(传统)项目

源码地址👉 vue3-naive-starter

安装依赖


node_modules 目录总大小为 220MB,bun 安装依赖用时 14 秒,npm 为 28 秒。

启动/SERVE

我没有用专业的工具测试,凭感觉发现没有太多的差异😄。

打包

MONOREPO

bun 自带 workspaces 功能,本次使用的多 package 项目为:👉 格子表单/GRID-FORM👈

执行 JS 代码

本节数据与灵感来自 1brc

我用 1brc 仓库提供的代码,生成一份包含五百万条数据的文件,大小为 67.3MB

/**
 * @typedef {Object} Item
 * @property {Number} min - 最低气温
 * @property {Number} max - 最高气温
 * @property {Number} total - 总气温
 */

import { createReadStream } from 'fs'

const started = Date.now()
const stream = createReadStream('01.txt', {highWaterMark:1, encoding:'utf-8'})

const EOL = Buffer.from('\n')
let line = ""

const map = new Map()

const deal = ()=>{
    let t = line.split(";")
    let city = t[0]
    let value = Number(t[1])
    
    if(!map.has(city)){
        map.set(city, {min: value, max:value, total: value })
    }
    else{
        /**@type {Item} */
        const item = map.get(city)
        if(value < item.min)        item.min = value
        else if(value > item.max)   item.max = value

        item.total += value
    }

    line = ""
}

const onEnd = ()=> {
    let time = Date.now() - started
    console.debug(`处理完成,耗时 ${time} ms (${Math.floor(time/1000)} s)`)
    console.debug(map)
}

stream.on('data', d=>{
    if(d=='\n'){
        deal()
    }
    else {
        line += d
    }
})

stream.on('end', onEnd)

总结

个人看法:

  1. bun 在 windows 平台还在初始阶段,会有一些兼容性问题,对前端项目友好,后端项目开发慎用
  2. 新项目可以考虑,在用项目不建议迁移
  • 8
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 4
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

集成显卡

码字不易,需要您的鼓励😄

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值