资讯专栏INFORMATION COLUMN

非常规优化

roland_reed / 2856人阅读

摘要:所以这种优化有一定的借鉴意义和实用价值。常见的图片预加载与此优化目的类似只是操作方式不同。总结之前我写过一篇非常规的优化这是上次的续篇因为都同属一个主题。性能优化是一条很长的路边走边欣赏风景吧。

Type feedback
console.time("1")
function add(a,b) {
    return a+b;
}
for(var i=0;i<1000000;i++){
    add(i,i);
    add("hello","jsdt");
}
console.timeEnd("1")



console.time("2")
function addNum(a,b) {
    return a+b;
}
function addStr(a,b) {
    return a+b;
}
for(var i=0;i<1000000;i++){
    addNum(i,i);
    addStr("hello","jsdt");
}
console.timeEnd("2")

可以看到时间差异蛮大的,对于热点代码,v8会进行类型的动态检查,通过类型反馈进行优化,比如说都是小整数时,可以使用快速模式。快速模式还包括堆区的数值,怪异类型,字符串链接等。但是如果不小心写成第一种形式反而deoptimizer了,不断的重优化很耗性能,达到一定次数后,v8不在优化。

hidden-class
function JSDT( val ) {
    this.prop = val;
}

var a = new JSDT("prop1");
var b = new JSDT("prop1");
console.log(%HaveSameMap( a, b ) )

b.prop2 = "prop2";

console.log( %HaveSameMap( a, b ))
// true
// false

node运行,附加参数--allow-natives-syntax。内联的好处在于对于相同构造函数创建出的同类对象,可以加快属性查找,但是就像上面结果所示,如果随意的添加属性,或者属性都一样,但是添加属性顺序不一样都会破会隐藏类,注意避免此类情况。

DNS prefetch

说明 上面是我从taobao移动端页面的截图,可以看到它利用了dns预读取功能,提前解析一些域名,这样做可以减缓点击链接时的延迟。所以这种优化有一定的借鉴意义和实用价值。常见的图片预加载与此优化目的类似,只是操作方式不同。

重绘和回流

又回到老生常谈的概念了,但是这次我的侧重点不同,为了减少重绘和回流的影响,其中之一的优化方式是将dom元素多带带作为一个图层,但是我测试发现图层不是越多越好,太多了会很卡,如下图中,加剧了composite layer的时间,说明优化也是需要考虑平衡。

总结

之前我写过一篇非常规的优化,这是上次的续篇,因为都同属一个主题。这两片的内容在周会上分享过,但是不完全相同,额外做了些补充。性能优化是一条很长的路,边走边欣赏风景吧。

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/89018.html

相关文章

  • [11.11]Megalayer:常规VPS五折,香港/菲律宾/美国VPS年付159元起

    摘要:在本月也发布了针对双十一期间的促销活动,针对常规主机提供折优惠码,同时提供几款特价年付套餐,最低美国年付元起,香港菲律宾年付元起。  Megalayer在本月也发布了针对双十一期间的促销活动,针对常规VPS主机提供5折优惠码,同时提供几款特价年付套餐,最低美国VPS年付159元起,香港/菲律宾VPS年付199元起。这是一家是成立于2019年的主机商,Vofo子公司,提供VPS主机和独立...

    e10101 评论0 收藏0
  • Megalayer:双十一优惠,常规VPS五折,月付24.5元起,香港VPS/菲律宾VPS/美国VP

    摘要:官网优惠码永久折扣,续费同价,支持月付促销套餐年付特价套餐内存硬盘带宽线路价格机房购买核无限优化带宽元年美国点此直达核无限全向带宽元年美国点此直达核无限优化带宽元年香港点此直达核无限优化带宽元年菲律宾点此直达核无限国际带宽元年菲律宾点 官网:https://www.megalayer.net/en/ 优惠码: VPS50OFF 永久折扣,续费同价,支持月付 促销套餐:...

    FWHeart 评论0 收藏0
  • WordPress数据库管理优化插件:数据库备份/数据库管理/数据库优化/数据批量替换

    摘要:数据库管理和优化插件数据库备份数据库备份无疑是数据库管理中最重要的一项工作,如果服务器因为某种原因宕掉了,又或者网站被黑,内容被篡改,而又没有备份数据库,这时候就彻底悲剧了,很多很多重要数据就会丢失且无法恢复。wordpress数据库管理优化插件有哪些?我们都知道WordPress使用的数据库是MySQL这个世界上使用最广的开源数据库(当然也可以简单的 hack 换成其他数据库),WordP...

    Lowky 评论0 收藏0
  • 记录一次利用Timeline Performance工具进行 React性能优化的真实案例

    摘要:出现红帧表示页面已经超负荷,会出现卡顿,响应缓慢等现象。因此当滑动周日历时已经不会有红帧发生了。我的目的是每一次递归会调用一次与但是这样写只会在递归结束时调用一次因此修改如下这样优化之后,发现内存占用下降一些,但是红帧仍然存在。 性能优化可以说是衡量一个前端程序员react使用水平的重要标准。 在学习react之初的时候,由于对react不够了解,写的项目虽然功能都实现了,但是性能优化...

    jsyzchen 评论0 收藏0
  • 前端网页加载渲染链路优化

    摘要:所以,关于优化实战我们主要分为两部分加载渲染链路优化和编程代码优化。加载渲染链路优化从访问到页面呈现,整个链路可以做优化的思路。资源缓存这一节我们单独介绍缓存,是的,利用好缓存可以解决很多问题,包括页面加载和渲染的问题都能得到很好的优化。 优化实战 本文属于思否课堂VirtualDOM到AST玩转前端性能原理解析与代码实战课程官方博客:fed123.com 我们已经全面分析总结了评估页...

    zhaofeihao 评论0 收藏0

发表评论

0条评论

roland_reed

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<