当前位置: 首页 > news >正文

做暧暧小视频网站十大职业资格培训机构

做暧暧小视频网站,十大职业资格培训机构,营销网站建设规划方案,发外链平台一、 是什么 Node作为一门服务端语言#xff0c;性能方面尤为重要#xff0c;其衡量指标一般有如下#xff1a; CPU内存I/O网络 CPU 主要分成了两部分#xff1a; CPU负载#xff1a;在某个时间段内#xff0c;占用以及等待CPU的进程总数CPU使用率#xff1a;CPU时… 一、 是什么 Node作为一门服务端语言性能方面尤为重要其衡量指标一般有如下 CPU内存I/O网络 CPU 主要分成了两部分 CPU负载在某个时间段内占用以及等待CPU的进程总数CPU使用率CPU时间占用状况等于 1 - 空闲CPU时间(idle time) / CPU总时间 这两个指标都是用来评估系统当前CPU的繁忙程度的量化指标 Node应用一般不会消耗很多的CPU如果CPU占用率高则表明应用存在很多同步操作导致异步任务回调被阻塞 内存指标 内存是一个非常容易量化的指标。 内存占用率是评判一个系统的内存瓶颈的常见指标。 对于Node来说内部内存堆栈的使用状态也是一个可以量化的指标 // /app/lib/memory.js const os require(os); // 获取当前Node内存堆栈情况 const { rss, heapUsed, heapTotal } process.memoryUsage(); // 获取系统空闲内存 const sysFree os.freemem(); // 获取系统总内存 const sysTotal os.totalmem();module.exports {memory: () {return {sys: 1 - sysFree / sysTotal, // 系统内存占用率heap: heapUsed / headTotal, // Node堆内存占用率node: rss / sysTotal, // Node占用系统内存的比例}} }rss表示node进程占用的内存总量。heapTotal表示堆内存的总量。heapUsed实际堆内存的使用量。external 外部程序的内存使用量包含Node核心的C程序的内存使用量 在Node中一个进程的最大内存容量为1.5GB。因此我们需要减少内存泄露 磁盘 I/O 硬盘的IO 开销是非常昂贵的硬盘 IO 花费的 CPU 时钟周期是内存的 164000 倍 内存 IO比磁盘IO 快非常多所以使用内存缓存数据是有效的优化方法。常用的工具如 redis、memcached等 并不是所有数据都需要缓存访问频率高生成代价比较高的才考虑是否缓存也就是说影响你性能瓶颈的考虑去缓存并且而且缓存还有缓存雪崩、缓存穿透等问题要解决 二、如何监控 关于性能方面的监控一般情况都需要借助工具来实现 这里采用Easy-Monitor 2.0其是轻量级的 Node.js 项目内核性能监控 分析工具在默认模式下只需要在项目入口文件 require 一次无需改动任何业务代码即可开启内核级别的性能监控分析 使用方法如下 在你的项目入口文件中按照如下方式引入当然请传入你的项目名称 const easyMonitor require(easy-monitor); easyMonitor(你的项目名称);打开你的浏览器访问 http://localhost:12333 即可看到进程界面 关于定制化开发、通用配置项以及如何动态更新配置项详见官方文档 三、如何优化 关于Node的性能优化的方式有 使用最新版本Node.js正确使用流 Stream代码层面优化内存管理优化 使用最新版本Node.js 每个版本的性能提升主要来自于两个方面 V8 的版本更新Node.js 内部代码的更新优化 正确使用流 Stream 在Node中很多对象都实现了流对于一个大文件可以通过流的形式发送不需要将其完全读入内存 const http require(http); const fs require(fs);// bad http.createServer(function (req, res) {fs.readFile(__dirname /data.txt, function (err, data) {res.end(data);}); });// good http.createServer(function (req, res) {const stream fs.createReadStream(__dirname /data.txt);stream.pipe(res); });代码层面优化 合并查询将多次查询合并一次减少数据库的查询次数 // bad for user_id in userIds let account user_account.findOne(user_id)// good const user_account_map {} // 注意这个对象将会消耗大量内存。 user_account.find(user_id in user_ids).forEach(account){user_account_map[account.user_id] account } for user_id in userIds var account user_account_map[user_id]内存管理优化 在 V8 中主要将内存分为新生代和老生代两代 新生代对象的存活时间较短。新生对象或只经过一次垃圾回收的对象老生代对象存活时间较长。经历过一次或多次垃圾回收的对象 若新生代内存空间不够直接分配到老生代 通过减少内存占用可以提高服务器的性能。如果有内存泄露也会导致大量的对象存储到老生代中服务器性能会大大降低 如下面情况 const buffer fs.readFileSync(__dirname /source/index.htm);app.use(mount(/, async (ctx) {ctx.status 200;ctx.type html;ctx.body buffer;leak.push(fs.readFileSync(__dirname /source/index.htm));}) );const leak [];leak的内存非常大造成内存泄露应当避免这样的操作通过减少内存使用是提高服务性能的手段之一 而节省内存最好的方式是使用池其将频用、可复用对象存储起来减少创建和销毁操作 例如有个图片请求接口每次请求都需要用到类。若每次都需要重新new这些类并不是很合适在大量请求时频繁创建和销毁这些类造成内存抖动 使用对象池的机制对这种频繁需要创建和销毁的对象保存在一个对象池中。每次用到该对象时就取对象池空闲的对象并对它进行初始化操作从而提高框架的性能 参考文献 https://segmentfault.com/a/1190000039327565https://zhuanlan.zhihu.com/p/50055740https://segmentfault.com/a/1190000010231628 如果对您有所帮助欢迎您点个关注我会定时更新技术文档大家一起讨论学习一起进步。
http://www.zqtcl.cn/news/773105/

相关文章:

  • 泰安网站建设优化营销策划是做什么
  • 做网站百度排前位网页设计实训报告2000字
  • 网站建设的活动方案房地产销售渠道拓客方案
  • 哈尔滨网站提升排名版式设计图片
  • 我的专业网站建设策划书网站logo教程
  • 百度 网站 移动端win10系统之家官网
  • h5商城网站建站成都网站建设全平台
  • xuzhou公司网站制作有什么手机网站
  • 网站建设 培训深圳网站建设制作品牌公司
  • 网站到期怎么续费网站运营优化推广
  • 一站式装修的利弊上海建设厅焊工证查询网站
  • 济宁做网站公司找融合深圳招聘一般在哪个网站
  • 重庆建网站推广公司个人网站需要建站群吗
  • 深圳网站建设吗个人博客网站制作代码
  • 化妆品网站模板网络营销的网站分类有哪些
  • 广州网站建设程序员培训wordpress 微信 抓取
  • 毕设给学校做网站个人店铺logo
  • 中国做w7的网站宿迁网站建设价位
  • 网站建设售后服务合同百度关键词排名点击器
  • 编辑网站用什么软件推广是什么
  • 北京模板开发建站做网站赚钱的点在哪里
  • 网站建设价格兴田德润i网址多少wordpress主题汉化是什么意思
  • 用最少的钱做网站根据域名查询网站名称
  • 网站开发答辩难点网站返回按钮设计
  • 鹤壁做网站优化建设银行理财产品网站
  • 电子商务类网站模板自学网站建设基本流程
  • 无锡网站制作的公司上海企业服务公司
  • 做h5小程序的网站搜索引擎营销案例
  • 订餐网站开发方案查询网站是否正规
  • 建站论坛图片生成器免费