标签 任务管理器 下的文章

原文链接:https://www.nocobase.com/cn/blog/weekly-updates-20260123

汇总一周产品更新日志,最新发布可以前往我们的博客查看

NocoBase 目前更新包括的版本更新包括三个分支:mainnextdevelop

version.png

main :截止目前最稳定的版本,推荐安装此版本。

next:包含即将发布的新功能,经过初步测试的版本,可能存在部分已知或未知问题。主要面向测试用户,用于收集反馈和进一步优化功能。适合愿意提前体验新功能并提供反馈的测试用户。

develop:开发中的版本,包含最新的功能代码,可能尚未完成或存在较多不稳定因素,主要用于内部开发和快速迭代。适合对产品功能前沿发展感兴趣的技术用户,但可能存在较多问题或不完整功能,不建议在生产环境中使用。

main

main.png

v1.9.39

发布时间:2026-01-21

🐛 修复

  • [server] 修复通用依赖中 mathjs 包的版本 (#8475) by @mytharcher
  • [client] 修复在 Chrome 144 版本中不显示配置菜单的问题 (#8470) by @zhangzhonghe
  • [异步任务管理器] 修复异步导入触发的工作流事件延迟执行的问题 (#8478) by @mytharcher
  • [操作:导入记录 Pro] 修复异步导入触发的工作流事件延迟执行的问题 by @mytharcher

v1.9.38

发布时间:2026-01-20

🚀 优化

  • [server] 支持配置跨域 Origin 白名单 (#8454) by @2013xile
  • [错误处理器] 避免 SQL 引用错误直接暴露 (#8464) by @2013xile

🐛 修复

  • [client]

    • 修复数据表字段分组排序设置不生效问题 (#8453) by @katherinehhh
    • 修复数据表图形界面编辑数据表报错问题 (#8451) by @katherinehhh
    • 修复表格“列设置”按钮无效的问题 (#8441) by @zhangzhonghe
    • 修复表格行按钮的联动规则会影响弹窗表单按钮状态的问题 (#8434) by @zhangzhonghe
  • [移动端(已废弃)] 弃用移动端插件(2.0 后将使用 ui-layout 插件代替) (#8456) by @chenos

v1.9.37

发布时间:2026-01-15

🚀 优化

  • [evaluators] 升级 math.js 包的版本以支持更多函数 (#8411) by @mytharcher
  • [通知:站内信] 修复当发送站内信至大量用户时的性能问题 (#8402) by @mytharcher

🐛 修复

  • [client]

    • 修复新建表单中级联组件成功提交数据后,级联组件数据未清空 (#8403) by @katherinehhh
    • 为操作按钮的 schema 增加容错,避免点击后页面崩溃 (#8420) by @mytharcher
    • 修复提交按钮同时设置二次确认和跳过必填校验时跳过必填校验不生效的问题 (#8400) by @katherinehhh
  • [数据表字段:多对多 (数组)] 修复关联查询时 append 的二级关联表是多对多(数组)时报错的问题 (#8406) by @cgyrock
  • [工作流] 修复复制工作流之后节点配置中的界面配置 ID 未被更新的问题 (#8396) by @mytharcher

next

next.png

v2.0.0-beta.13

发布时间:2026-01-19

🚀 优化

  • [server] 支持配置跨域 Origin 白名单 (#8454) by @2013xile
  • [操作:导出记录] 改进导出按钮数据范围:优先按选中记录,其次按前端筛选范围 (#8442) by @katherinehhh
  • [操作:导出记录 Pro] 改进导出按钮数据范围:优先按选中记录,其次按前端筛选范围 by @katherinehhh

🐛 修复

  • [client]

    • 修复自定义变量弹窗被遮挡的问题 (#8463) by @zhangzhonghe
    • 修复数据表图形界面编辑数据表报错问题 (#8451) by @katherinehhh
    • 修复数据表字段分组排序设置不生效问题 (#8453) by @katherinehhh
    • 修复快捷便捷弹窗高度超出页面高度的问题 (#8437) by @zhangzhonghe
    • 修复表格行按钮的联动规则会影响弹窗表单按钮状态的问题 (#8434) by @zhangzhonghe
    • 修复切换分页时表格区块操作列状态污染的问题。 (#8438) by @gchust
    • 修复表格“列设置”按钮无效的问题 (#8441) by @zhangzhonghe
    • 修复关系文件快速编辑,选择文件的弹窗层级错误,无法保存弹窗配置的问题。 (#8446) by @gchust
  • [flow-engine]

    • 修复 runjs 相关代码在运行前变量就被解析的问题。 (#8445) by @gchust
    • 修复数据选择器快速新增弹窗中无法选择弹窗变量的问题。 (#8450) by @gchust
    • 修复能够重复点击配置菜单打开多个配置弹窗的问题。 (#8448) by @gchust
  • [移动端(已废弃)] 弃用移动端插件(2.0 后将使用 ui-layout 插件代替) (#8456) by @chenos
  • [前端流引擎] 修复无法正确解析包含中划线字符的变量的问题。 (#8432) by @gchust
  • [邮件管理] 修复邮箱配置弹窗被遮挡的问题 by @zhangzhonghe

v2.0.0-beta.12

发布时间:2026-01-16

🚀 优化

  • [前端流引擎] 支持解析当前表单变量中未添加到编辑表单中的字段的值。 (#8436) by @gchust

🐛 修复

  • [flow-engine] 修复点击按钮打开弹窗时动态事件流里的步骤会执行两次的问题。 (#8435) by @gchust
  • [模板打印] 2.0版本里显示空间字段 by @jiannx

v2.0.0-beta.11

发布时间:2026-01-15

🚀 优化

  • [evaluators] 升级 math.js 包的版本以支持更多函数 (#8411) by @mytharcher
  • [client] 富文本编辑器支持字体大小调整,图片大小调整,软换行 (#8401) by @jiannx
  • [AI 员工] 将工作流调用的结果改为从 execution.output 中获得,明确使用流程输出节点以获得稳定的结果 (#8423) by @mytharcher

🐛 修复

  • [client]

    • 为操作按钮的 schema 增加容错,避免点击后页面崩溃 (#8420) by @mytharcher
    • 修复表单关系字段标题设置附件 URL 后,再设置为其他字段时,标题设置项消失问题 (#8418) by @katherinehhh
    • 修复新增表单中关系字段设置阅读模式,切换标题字段不生效问题 (#8413) by @katherinehhh
  • [前端流引擎] 修复 filterByTk 为数组时变量解析不正确的问题。 (#8412) by @gchust
  • [模板打印] 支持空间字段 by @jiannx

develop

develop.png

v2.0.0-alpha.66

发布时间:2026-01-16

🐛 修复

  • [前端流引擎] 修复无法正确解析包含中划线字符的变量的问题。 (#8432) by @gchust

v2.0.0-alpha.65

发布时间:2026-01-16

🎉 新特性

  • [test] 为默认任务管理器添加进程级并发控制 (#8343) by @cgyrock

🚀 优化

  • [client]

    • 富文本编辑器支持字体大小调整,图片大小调整,软换行 (#8401) by @jiannx
    • 支持事件流指定执行时机。 (#8340) by @gchust
    • 通过改为使用 webkit 原生 CSS 展示文本省略号,优化插件管理器列表渲染性能 (#8391) by @mytharcher
  • [evaluators] 升级 math.js 包的版本以支持更多函数 (#8411) by @mytharcher
  • [cli] 支持通过环境变量配置 CDN 基础地址 (#8384) by @chenos
  • [flow-engine] GridModel 新增 rowOrder 字段以确保行顺序的一致性 (#8371) by @zhangzhonghe
  • [前端流引擎] 支持解析当前表单变量中未添加到编辑表单中的字段的值。 (#8436) by @gchust
  • [AI 员工]

    • 优化 AI 员工主入口按钮 (#8414) by @heziqiang
    • 将工作流调用的结果改为从 execution.output 中获得,明确使用流程输出节点以获得稳定的结果 (#8423) by @mytharcher
    • 隐藏入口列表中的构建类 AI 员工;<br/> 优化 LLM 接入流程;<br/> 更新 Gemini-3 模型相关文档。 (#8409) by @heziqiang
    • 支持 Anthropic 和 Claude-4.5 (#8389) by @heziqiang
  • [通知:站内信] 修复当发送站内信至大量用户时的性能问题 (#8402) by @mytharcher

🐛 修复

  • [client]

    • 修复快捷便捷弹窗高度超出页面高度的问题 (#8437) by @zhangzhonghe
    • 修复表格行按钮的联动规则会影响弹窗表单按钮状态的问题 (#8434) by @zhangzhonghe
    • 修复切换分页时表格区块操作列状态污染的问题。 (#8438) by @gchust
    • 为操作按钮的 schema 增加容错,避免点击后页面崩溃 (#8420) by @mytharcher
    • 修复新增表单中关系字段设置阅读模式,切换标题字段不生效问题 (#8413) by @katherinehhh
    • input number component does not display value (#8410) by @chenos
    • 修复表单关系字段标题设置附件 URL 后,再设置为其他字段时,标题设置项消失问题 (#8418) by @katherinehhh
    • 修复提交按钮同时设置二次确认和跳过必填校验时跳过必填校验不生效的问题 (#8400) by @katherinehhh
    • 修复网格卡片区块设置 layout 无冒号不生效问题 (#8399) by @katherinehhh
    • 修复新建表单中级联组件成功提交数据后,级联组件数据未清空 (#8403) by @katherinehhh
    • 修复表单中数字输入汉字时没有阻止赋值问题 (#8397) by @katherinehhh
    • 修复关系关联文件表中对一关系字段选择文件弹窗右下角出现提交按钮问题 (#8398) by @katherinehhh
    • 修复 targetKey 可选字段的处理逻辑 (#8333) by @katherinehhh
  • [flow-engine] 修复点击按钮打开弹窗时动态事件流里的步骤会执行两次的问题。 (#8435) by @gchust
  • [前端流引擎] 修复 filterByTk 为数组时变量解析不正确的问题。 (#8412) by @gchust
  • [文件管理器] 修复上传至 S3 存储引擎的文件 URL 生成错误的问题 (#8392) by @mytharcher
  • [数据表字段:多对多 (数组)] 修复关联查询时 append 的二级关联表是多对多(数组)时报错的问题 (#8406) by @cgyrock
  • [工作流]

    • 修复复制工作流之后节点配置中的界面配置 ID 未被更新的问题 (#8396) by @mytharcher
    • 为节点执行记录的 Snowflake ID 加入实例 ID 配置,以避免集群下 ID 冲突问题 (#8382) by @mytharcher
  • [区块:模板(已废弃)] 修复无法进入继承模板(v1)的编辑页面的问题。 (#8376) by @gchust
  • [数据源:REST API] 为请求上下文增加容错,避免方法不存在时的报错 by @mytharcher
  • [多空间]

    • 关联数据添加时关联空间 by @jiannx
    • 空间选择器颜色跟着主题 by @jiannx
  • [模板打印]

    • 修复配置模板弹窗被遮挡的问题 by @zhangzhonghe
    • 支持空间字段 by @jiannx
    • 2.0 版本里显示空间字段 by @jiannx
  • [文件存储:S3 (Pro)] 修复文件重命名模式不起作用的问题 by @mytharcher
  • [工作流:审批]

    • 修复错误的参数导致的加载数据错误问题 by @mytharcher
    • 修复由于缺失 ValueBlock.Result 组件注入导致的值区块内容不展示的问题 by @mytharcher
  • [邮件管理]

    • 修复会话链 by @jiannx
    • add filters to the management by @jiannx

最近总感觉电脑不对劲,卡卡的,今天开机打开任务管理器就发现吃了 22G,我的内存 32G,网上搜了一下,有说超级预读取导致的,有说自动分配虚拟内存导致的,我还没试,只试了一个mdsched.exe(太慢了,没跑完我就关了,实际还是有点用,再开机只有 19%-22%,之前是 72%左右)

image
之前(打开 Chrome,3 个选项卡,部分小软件)

image
运行重启后(打开 Chrome,5 个选项卡,登录 QQNT,部分小软件)

后面再出现问题我再看看,目前先这样吧,内存检测太慢了。

自己做了一个 macOS 上的完整版任务管理器

为什么

macOS 上的官方任务管理器,也就是 “活动监视器 (Activity Monitor)”,是

只能监视,不能管理

也就是:只能查看进程,不能结束进程,更不能看进程文件位置

基本上没用

但我又是一个对这方面有大量需求的开发者,刚好我会 iOS 开发,于是我不能自己造一个呢?

怎么做

架构选型

最开始,我的目标很明确:做一个 macOS 版的 Windows 任务管理器 。

为了保证 “原生” 和 “极速”,我果断放弃了 Electron 这种网页套壳方案,选了 SwiftUI 。

但是,监控软件有个特点:数据更新非常快。如果让每个界面自己去拉数据,CPU 肯定受不了,界面也会卡。

所以,我确立了 MVVM + 单向数据流 的架构:

  1. 心脏 (SystemMonitorService.swift) :这是一个单例(Singleton)。它像心脏一样,每隔 2 秒跳动一次(Timer),负责把所有数据采集回来。
  2. 大脑 (AppViewModel.swift) :这是为了解决 “刷新页面数据重置” Bug 引入的。它把数据存住,不管界面怎么切,数据都在那儿。
  3. 脸面 (Views) :界面只负责展示,不负责逻辑。

数据获得

这是项目最难的部分。macOS 的上层 API(像 ProcessInfo )给的数据太浅了,根本不够用。我不得不 “下潜” 到内核层。

  1. CPU 计算
    我们不能直接问系统 “CPU 占用多少”,系统只会告诉你 “这一瞬间” 的状态。
    我们用的是 C 语言的 host_statistics 接口。
  • 逻辑 :现在看一眼 CPU,记录下 User/System/Idle 的时间滴答数(Ticks);过 2 秒再看一眼。
  • 计算 : (第二次的总数 - 第一次的总数) 就是这段时间的总工作量。然后算出百分比。这部分逻辑都在 SystemMonitorService.swift 的 getSystemCpuUsage 方法里。 内存压力
    普通的 “已用内存” 其实没意义。macOS 有个 “内存压缩” 技术。
    我们用了 host_statistics64 ,专门去读 VM_WIRE_COUNT (内核占的)、 VM_ACTIVE_COUNT (App 正在用的)和 VM_COMPRESSOR_PAGES (被压缩的)。
  • 磁盘读写(最硬核的部分)
    这个是很多同类软件做不到的。我没有监控文件系统(那样太慢了),而是直接找 驱动 。
    我们用了 IOKit 框架,去遍历硬件注册表,找到所有类型为 IOBlockStorageDriver 的硬件,直接问它们:“你们一共读写了多少字节?”。这招非常底层,但效率极高。
  • 网络测速
    这个相对标准,我们用了 BSD Socket 的 getifaddrs 。
    难点在于 去重 。电脑里有很多虚拟网卡(比如 lo0 本地回环),如果不剔除,速度会翻倍。我们写了个过滤器,只把真实网卡(WiFi、以太网)的流量加起来。

进程列表

做完监控,接下来就是那个密密麻麻的进程列表了 (ProcessListView.swift)。

这里有个大坑: 权限 。

  • 如果你是普通用户运行,macOS 的 SIP(系统完整性保护)不让你看别人的进程内存。
  • 所以我做了一套 Fallback(回退)机制 :
    • 先试着用高级 API (task_for_pid),如果系统报错说 “没权限”;
    • 我们立马切换到 libproc 库的 proc_pidinfo 。虽然拿不到极度精确的内存细节,但至少能把 CPU、内存占用显示出来,保证不白屏。

还有一个痛点优化: “打开文件位置” 。
以前点击这个,会跳转到 App 里面的二进制文件(比如 Safari.app/Contents/MacOS/Safari )。用户会一脸懵。
我们写了个正则逻辑:如果路径里包含 .app ,就自动截断路径,直接选中那个 App 图标。这就很符合直觉了。

画图

数据有了,得画出来。
在 PerformanceView.swift 里,我们用 SwiftUI 的 Path 画贝塞尔曲线。
为了让波形图平滑,我维护了一个长度为 60 的数组(代表最近 60 次采样),每次新数据进来,就把最老的数据挤出去(FIFO 队列),然后重绘线条。

能做什么

系统级性能监测

CPU

提供基于内核 Ticks 差值计算的实时负载分析,可以显示 CPU 利用率,实时绘制波形图

内存

实现内存压力 (Memory Pressure) 实时评估,精确展示、内存分页状态,内存使用率

磁盘 I/O

基于 IOKit 驱动层的数据采集,提供全系统块设备 的实时读写吞吐量监控。

网络流量

支持多网卡流量聚合 (Interface Aggregation) 及回环过滤,提供精确的上下行速率统计。

高级进程管理

进程结束

进程查看文件位置

总之,Windows 上的主要功能都有(不想写了)

硬件信息

可以查看当前设备的基本硬件信息

彩蛋

连续点击几下设备名称,就会可以进入一个

(自己去看)

的功能

「合法使用」!

如何安装?

只支持 macOS14 + 系统,M2 + 芯片(M1CPUData 算不出来,也不知道为什么)

App 文件:

XH Task Manager.zip

关于开源

这个项目目前还很不成熟,并且设计暴露系统 API,所以目前暂时不开放原代码。


📌 转载信息
转载时间:
2026/1/18 08:42:25