2014-02-18 W.Y.
原文发表在 Performance Calendar 上,作为其 2010 年系列文章的一部分。在上一篇翻译的文章中,作者推荐了这篇文章,译者阅读之后觉得有一定的价值,而且网络上没有这篇文章的中文翻译,权当学习就在此翻译成了中文,水平有限,如果有表达不恰当或者表达有误的地方,请直接在评论中指出。 原文链接:Bulletproof JavaScript benchmarks,下面开始翻译正文。 编写 JavaScript 基准测试并不是想象的那么容易,撇开潜在的跨浏览器兼容问题不说,还将面临很多陷阱(甚至诡雷)。 这也是我创建 jsPerf 的一部分原因,jsPerf 提供了一个非常简单的 Web 接口,您可以非常轻松地创建和分 继续阅读 »
2014-03-29 W.Y.
介绍 一群恶魔的猪从无辜的小鸟那里偷走了所有的前端架构,现在它们要夺回来。一对特工英雄(愤怒的小鸟)将攻击那些卑鄙的猪,直到夺回属于他们的前端架构。(译者注:本系列是关乎前端架构的讨论,作者借用当前最风靡的游戏 - 愤怒的小鸟,为我们揭开了前端架构的真实面目。) 小鸟们最终能取得胜利吗?它们会战胜那些满身培根味的敌人吗?让我们一起来揭示 JavaScript 之愤怒的小鸟系列的另一个扣人心弦的章节! 阅读本系列的介绍文章,查看所有小鸟以及它们的进攻力量。 战况 红色大鸟 - 立即调用的函数表达式 蓝色小鸟 - 事件 黄色小鸟的攻击力 在这片文章中,我们将看看黄色小鸟,它使用 RequireJS 作为助推器,利用动态脚 继续阅读 »
2015-11-19 W.Y.
当提到前端性能优化时,我们首先会联想到文件的合并、压缩,文件缓存和开启服务器端的 gzip 压缩等,这使得页面加载更快,用户可以尽快使用我们的 Web 应用来达到他们的目标。 资源预加载是另一个性能优化技术,我们可以使用该技术来预先告知浏览器某些资源可能在将来会被使用到。 引用 Patrick Hamann 的解释: 预加载是浏览器对将来可能被使用资源的一种暗示,一些资源可以在当前页面使用到,一些可能在将来的某些页面中被使用。作为开发人员,我们比浏览器更加了解我们的应用,所以我们可以对我们的核心资源使用该技术。 这种做法曾经被称为 prebrowsing,但这并不是一项单一的技术,可以细分为几个不同的技术:DNS-prefe 继续阅读 »
2014-02-13 W.Y.
原文连接:Writing Fast, Memory-Efficient JavaScript 许多 JavaScript 引擎都是为了快速执行的大型 JavaScript 应用程序设计而特别设计,如 Google V8 引擎(正被 Chrome 和 NodeJS 使用)。在开发过程中,如果你关心内存使用情况和页面性能,你应该了解户浏览器的 JavaScript 引擎的内部运作原理。 无论是V8、SpiderMonkey(Firefox)、Carakan(Opera)、Chakra(IE)或其他 JavaScript 引擎,了解引擎背后的一些运行机制可以帮助你更好地优化你的应用程序。但,这并不是说应该专门为某一浏览器或引擎进行 继续阅读 »
2014-02-19 W.Y.
原文链接:JavaScript Profiling With The Chrome Developer Tools 现在,让我们来让你的网站跑得更快,网站性能通常包括两个方面:页面加载速度和脚本执行速度,有很多方法可以让网站加载更快,例如,压缩文件和 CND 等,但是要让脚本执行更快就得靠开发人员自己了。 代码很小的改动就可能对性能产生巨大影响,不同位置的几行代码可能就意味着一个快的网站和产生可怕的“无响应脚本”对话框的网站之间的区别。本文展示了使用 Chrome 开发工具来找到这些性能关键点代码的一些方法。 建立基准线 ## 我们来看一个简单的颜色排序应用,这个应用展示了一个由各种颜色构成的网格,您可以拖放任意一个颜色点来 继续阅读 »
2016-03-31 W.Y.
CSS 动画已经存在很多年了,使用恰当可以很好地提高网站的用户体验,也正是由于其容易使用,就很可能出现性能低下的动画,从而降低了整个页面的运行效率。回想一下:你曾经是否使用过 CSS 来改变元素的宽度、高度或绝对位置?如果回答是肯定的,就意味着你触发了性能低下的重排或重绘计算,在某些情况下甚至可能导致页面闪烁。 什么样的情况会导致页面闪烁呢?现代浏览器根据设备的刷新率来刷新页面中的内容,对大多数设备而言,屏幕以 60 次每秒的频率刷新,即 60HZ。如果在屏幕上出现了某些运动,如滚动、过渡或动画,浏览器应该每秒刷新 60 帧,如果某些帧花费的时间太长,进而导致浏览器的刷新频率跟不上设备的刷新频率(跳帧现象),就会出现页面闪烁。所以 继续阅读 »
2014-03-01 W.Y.
高性能的 Web 应用是获得伟大用户体验的关键。随着 Web 应用越来越复杂,要想建立吸引人的用户体验,了解性能的影响是至关重要的。在过去的几年中,浏览器中也新增了许多 API 来帮助我们分析网络性能、页面加载时间等。但这些并没有给出详尽的足够灵活的方式,来帮助我们分析具体是什么降低了我们网站的性能。User Timing API 提供了一套机制来帮助我们测量我们的应用,从而找到应用中耗时的部分。在本文中,我将介绍这个 API 并提供一些如何使用它的例子。 你不能优化那些不能被测量的东西 给运行缓慢的应用提速的第一步是,找到应用中耗时的部位。要想找到这些烫手山药,最理想的方式就是对 JavaScript 代码进行区域性的运行时间 继续阅读 »
2017-02-06 Borg
Performance 本周的内容基本与上周Mongodb for DBAs: week3重复,重点和之前没有的再记一次好了。 继续阅读 »
2016-12-03 ruki
tbox provides a lightweight implementation of stackless coroutines and it's interfaces are very simple too, for example: c tb_lo_coroutine_enter(coroutine) { while (1) { tb_lo_coroutine_yield(); } } The switch performance of this stackless coroutines is faster than the implementation of tbox's 继续阅读 »
2013-06-02 Klaus Ma
For the performance tuning, the simplest way is to record how many time is elapsed in a function. The only difficulty we’re facing is that: there maybe many exit for a function. Thanks to C++’s constructor/deconstructor feature, it’s easy for developer to record the elsaped time. 继续阅读 »