darwin-mem-stat
v1.0.0
Published
Darwin memory usage utility (MAS-safe)
Downloads
3
Readme
darwinMemStat
一个用于获取 macOS Darwin 系统内存使用情况的 Node.js 模块,支持 MAS (Mac App Store) 安全。
特性
- 🍎 原生 macOS Darwin API 支持
- 🔄 跨平台兼容(fallback 到 Node.js os 模块)
- 📦 MAS 安全(Mac App Store 兼容)
- ⚡ 高性能原生实现
- 📊 详细的内存统计信息
安装
npm install darwinMemStat使用方法
基本使用
import { getSystemMemoryUsage } from 'darwinMemStat';
const memoryInfo = getSystemMemoryUsage();
console.log(memoryInfo);
// 输出示例:
// {
// total: 17179869184, // 总内存 (字节)
// free: 92815360, // 可用内存 (字节)
// used: 17087053824, // 已使用内存 (字节)
// usedPercent: 0.994597 // 内存使用率 (0-1)
// }格式化显示
import { getSystemMemoryUsage } from 'darwinMemStat';
function formatBytes(bytes: number): string {
const sizes = ['B', 'KB', 'MB', 'GB', 'TB'];
if (bytes === 0) return '0 B';
const i = Math.floor(Math.log(bytes) / Math.log(1024));
return Math.round(bytes / Math.pow(1024, i) * 100) / 100 + ' ' + sizes[i];
}
const memoryInfo = getSystemMemoryUsage();
console.log(`总内存: ${formatBytes(memoryInfo.total)}`);
console.log(`可用内存: ${formatBytes(memoryInfo.free)}`);
console.log(`已使用内存: ${formatBytes(memoryInfo.used)}`);
console.log(`内存使用率: ${(memoryInfo.usedPercent * 100).toFixed(2)}%`);实时监控
import { getSystemMemoryUsage } from 'darwinMemStat';
// 监控内存变化
const interval = setInterval(() => {
const memoryInfo = getSystemMemoryUsage();
const timestamp = new Date().toLocaleTimeString();
console.log(`[${timestamp}] 使用率: ${(memoryInfo.usedPercent * 100).toFixed(2)}%`);
}, 1000);
// 停止监控
setTimeout(() => {
clearInterval(interval);
console.log('监控结束');
}, 10000);API
getSystemMemoryUsage()
返回系统内存使用情况的对象。
返回值:
total: number- 总内存大小(字节)free: number- 可用内存大小(字节)used: number- 已使用内存大小(字节)usedPercent: number- 内存使用率(0-1之间的浮点数)
实现细节
- macOS: 使用原生 Darwin API (
mach/mach.h) 获取精确的内存统计 - 其他平台: 回退到 Node.js 内置的
os模块 - 自动检测: 优先使用原生实现,失败时自动回退到 JS 实现
开发
# 安装依赖
npm install
# 构建项目
npm run build
# 运行测试
npm test许可证
MIT
