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

网站建设费计入无形资产重庆网站建设安全

网站建设费计入无形资产,重庆网站建设安全,网店设计美工,做暧昧网站写这种系列blog#xff0c;是为了监督自己#xff0c;不然我估计我不会有动力写完。这一节#xff0c;我将介绍下Buffer这个module。js本身对文本友好#xff0c;但是处理二进制数据就不是特别方便#xff0c;因此node.js提供了Buffer模块来帮助你处理二进制数据#xff… 写这种系列blog是为了监督自己不然我估计我不会有动力写完。这一节我将介绍下Buffer这个module。js本身对文本友好但是处理二进制数据就不是特别方便因此node.js提供了Buffer模块来帮助你处理二进制数据毕竟node.js的定位在网络服务端不能只对文本协议友好。Buffer模块本身其实没有多少未公开的方法重要的方法都在文档里提到了有两个方法稍微值的提下。Buffer.get(idx)跟buffer[idx]是一样的返回的是第idx个字节返回的结果是数字如果要转成字符用String.fromCharCode(code)即可。Buffer.inspect()返回Buffer的字符串表示每个字节用十六进制表示当你调用console.dir的时候打印的就是这个方法返回的结果。Buffer真正值的一提的是它的内部实现。Buffer在node.js内部的cpp代码对应的是SlowBuffer类src/node_buffer.cc)但是两者之间并不是一一对应。对于创建小于8K的Buffer其实是从一个pool里slice出来只有大于8K的Buffer才是每次都new一个SlowBuffer。查看源码lib/buffer.js)Buffer.poolSize 8 * 1024; if (this.length Buffer.poolSize) { // Big buffer, just alloc one. this.parent new SlowBuffer(this.length); this.offset 0; } else { // Small buffer. if (!pool || pool.length - pool.used this.length) allocPool(); this.parent pool; this.offset pool.used; pool.used this.length; }因此我们可以修改Buffer.poolSize这个“静态”变量来改变池的大小Buffer.poolSizeBuffer类创建的池大小大于此值则每次new一个SlowBuffer否则从池中slice返回一个Buffer如果池剩余空间不够则新创建一个SlowBuffer做为池。下面的例子打印这个值并修改成16K:console.log(Buffer.poolSize);Buffer.poolSize16*1024;SlowBuffer类SlowBuffer类我们可以直接使用的如果你不想使用Buffer类的话SlowBuffer类有Buffer模块的所有方法实现例子如下var SlowBufferrequire(‘buffer’).SlowBuffer var bufnew SlowBuffer(1024) buf.write(“hello”,’utf-8′); console.log(buf.toString(‘utf-8′,0,5)); console.log(buf[0]); var subbuf.slice(1,3); console.log(sub.length);注意SlowBuffer默认不是Global的需要requirebuffer模块。使用建议和性能测试Buffer的这个实现告诉我们要使用好Buffer类还是有讲究的每次创建小于8K的Buffer最好大小刚好能被8k整除这样能充分利用空间或者每次创建大于8K的Buffer并充分重用。我们来看一个性能测试分别循环1000万次创建16K,4096和4097大小的Buffer看看耗时多少function benchmark(size,repeats){ var total0; console.log(“create %d size buffer for %d times”,size,repeats); console.time(“times”); for(var i0;irepeats;i){ totalnew Buffer(size).length; } console.timeEnd(“times”); } var repeats10000000; console.log(“warm up”) benchmark(1024,repeats); console.log(“start benchmark”) benchmark(16*1024,repeats); benchmark(4096,repeats); benchmark(4097,repeats);创建1024的Buffer是为了做warmup。在我机器上的输出start benchmark create 16384 size buffer for 10000000 times times: 81973ms create 4096 size buffer for 10000000 times times: 80452ms create 4097 size buffer for 10000000 times times: 138364ms创建4096和创建4097大小的Buffer只差了一个字节耗时却相差非常大为什么会这样读者可以自己根据上面的介绍分析下有兴趣的可以留言。另外可以看到创建16K和创建4K大小的Buffer差距非常小平均每秒钟都能创建10万个以上的Buffer这个效率已经足以满足绝大多数网络应用的需求。 转载于:https://blog.51cto.com/aliapp/1327670
http://www.sadfv.cn/news/20322/

相关文章:

  • 新开传奇网站999c 创建一个网站怎么做
  • 怎么在自己电脑做网站手机免费建立网站
  • 临沂做网站建设的公司哪家好网络营销模式下品牌推广研究论文
  • 做金属小飞机的网站如何给网站挂黑链
  • 宁夏区建设厅网站天元建设集团有限公司朱华
  • 网站没排名要怎么做现在做外贸还能挣钱吗
  • 惠州市网站开发那个装修公司的网站做的好
  • 网站制作培训班做网站哪个软件好用
  • 怎么对一个网站做优化怎样自己做免费网站
  • 建设一个会员积分网站上海专业做网站的
  • 信息科技有限公司网站建设网站英文版是怎么做的
  • 北京教育学会网站建设ppt免费下载
  • 单位还能建设网站吗阿里云做网站怎么挣钱
  • 郑州营销网站建设公司网站建设的重点是什么
  • 网站备案级别济南国画网站济南网站建设公司
  • led灯散热片技术支持 东莞网站建设微信小程序ui模板
  • 万维网站域名php网站后台教程
  • 江苏SEO网站建设红塔网站制作
  • 万网做网站多少钱合肥高端网站建设工作室
  • 高质量的赣州网站建设wordpress字体怎么改
  • 网站建设分金手指排名五淄博做网站的哪家最好
  • 广告东莞网站建设技术支持内蒙古呼和浩特市邮编
  • 车辆保险网站vi设计一套多少钱
  • 做网站卖广告什么网站可以找人做设计师
  • 做网站三年3万块钱网站推广新手入门教程
  • 做旅游网站的意义seo推广效果怎么样
  • 网站底部模板wordpress怎么换log
  • 农产品网站建设投标书个人工作室网站源码带后台
  • 萍乡做网站的公司有哪些门户类网站有哪些
  • 企业营销型网站建设如何在网上推广项目