文本压缩算法的对比和选择

本文主要粗略介绍数据压缩主要算法类别,以及最新针对Web文本资源的zStd和Brotli算法的设计要点。为Web业务应用如何使用它们替换传统gzip提供些参考。最后是一个文本有损压缩的尝试。...
阅读(1203) 评论(1)

关于PWA落地问题的思考

PWA是最近一个热门话题,很多开发同学都在尝试落地,其中也有些还在犹豫。这篇文章主要阐述对几个问题的看法,包括iOS支持的问题等,供大家参考。 注: 这不是一篇介绍PWA的文章。...
阅读(3000) 评论(7)

Web业务性能优化技术总结

Web业务的性能优化是一个系统工程,既有深度,又有广度。以下所简称性能均特指Web业务性能。 技术的广度上,主要从大背景下考虑到其各个相关方,基于共同的数据指标发掘和评估方案。 技术的深度上是一个渐进和迭代的过程。可以从性能的本质展到目前各端的主要优化方向。...
阅读(898) 评论(2)

Chromimum Android渲染介绍

Chromimum Android渲染介绍从概念上一个使用硬件加速(AC)时,页面显示的结构是Viewport -> Layer(s) -> Tile(s),所谓的纹理就是Tile上显示的内容。分块最大的好处就是重绘的单元变小,更利于降低系统开销。...
阅读(1554) 评论(0)

2017 前端性能自查表

Smashing Magazine在年底做了一个有意义的事,把最新的Web性能优化实践做了盘点,这里提供其中大部分内容的翻译,供大家参考。有很多我自己也没有深入学习的点,翻译也不能保证准确,所以有时间还是看原文。...
阅读(2077) 评论(0)

我们真的需要那么多专项吗?

在一个软件开发组织里,若干职能单位负责各个业务模块,然后就是大小各种专项。专项可以横向拉通各个单位,但专项一多,或者有点泛滥,各个业务单位的职责就会有所淡化,目标也有模糊的地方。专项就像是东厂、西厂,可以四处横行,而业务单位却不断要进行各种配合。利也? 弊也?
所谓专项一般为攻关,拉通多个沟通不畅的团队而设。如果团队之间配合无间,规划和执行也都到位,又何来专项!...
阅读(1362) 评论(0)

iOS Safari阅读模式分析过程

本文为Safari阅读模式分析过程记录,没有做很好的整理。详细看另外一篇....
阅读(3414) 评论(0)

iOS Safari阅读模式研究

Safari阅读模式的三个要点: (1) 阅读模式的检测 (2) 阅读模式的执行 (3) 阅读模式页面的控制 这是一篇在2013年准备的资料,现在分享出来,供有需要的同学参考。...
阅读(3589) 评论(2)

网络性能评价方法

目前度量网络的品质的方法如果仅以网络连接类型来区分,比如2G, 3G, Wifi等,无法有效感知到当时的网络状态。在同一网络连接类型下,网络的品质仍有大幅波动,可能会因为阻塞以及线路上问题导致延迟上抖动(jitter)、丢失数据包、数据包损坏等情况。 本文基于对一段时间的网络数据的记录,进行算法处理,可以测出一个衡量当时网络状态的指标。...
阅读(9844) 评论(2)

页面性能的基础因素 - 《Designing for Performance》

考虑页面性能可以从两种场景,第一个场景也是因素最多的场景,即首次访问。第二个场景则是重复访问,缓存将起决定性作用。浏览器厂商为页面开发者提供了很多工具和插件,比如Chrome DevTools, YSlow和PageSpeed Insights。...
阅读(2545) 评论(1)

高效操作字串的String Reference类

只要不修改字串内容,并不需要另外复制一份。特别是对一些比较大的字串,避免拷贝对内存和性能都有极大的好处。于是Jeffrey Yasskin提出一个String reference : a non-owning reference to a string. 很多大型的项目都提供了各自的实现,包括Boost::StringRef, LLVM的StringRef, Chromium的base::StringPiece。...
阅读(2621) 评论(0)

何时使用static类(工具类)

一个static类,指全部成员都是static方法构成的,而没有任何成员变量, 也称为Utility class 或者Utility Pattern [参考: Utility Pattern].它可以在程序中直接使用该类的方法,而不用实例化.static class相对单例有更好的性能,原因是它的方法不需要实例方法的动态绑定 (static方法本身不能被复写)。 static类可以看作某一组方法的...
阅读(2788) 评论(0)

如何实践设计原则

大家都知道遵循设计原则是开发高质量软件的重要基础,但实际运用时并不容易。Booch在面向对象分析与设计>>中提出了四个基础原则:抽象   核心思想是不变性的概念。去除不关心的属性,而强化重要的属性,帮助人们思考要做什么。封装  核心是分离关注和信息隐藏,让程序借助最少的工作进行可靠的修改。模块化  核心思想是分而治之,各个模块应当高内聚、低耦合。层次结构  核心是对抽象的分级和排序,可以简化对系统...
阅读(1965) 评论(0)

[Chromium]如何安全的使用PostTask

一般场景决策树如何传递绑定的对象官方的解释总是最权威,有疑问看这里或者直接看代码中的说明: bind_helpers.h. 传值方式描述示例this 或 对象指针如果对象本身是一个RefCountedThreadSafe, 没有问题.如果是个裸指针,应当尽量避免,除非你可以保证它的线程安全....
阅读(2633) 评论(0)

Chormium线程模型及应用指南

核心概念设计上遵循以下原则:1 不要在UI线程做任何阻塞式的I/O操作,以及其它耗时的操作,通过消息传递把各种操作传给相应用途的线程去做。2 不鼓励线程加锁机制和线程安全对象。对象只存在一个线程,通过消息来实现线程之间的通信,线程之间不互相阻塞。通过callback对象实现跨线程请求。一般情况下,我们应该利用一个现有的线程,尽量不要创建新的线程。UI线程实际上会被设置为不允许I/O操作,并且不允许...
阅读(1754) 评论(0)
298条 共20页1 2 3 4 5 ... 下一页 尾页
    个人资料
    • 访问:1471262次
    • 积分:16338
    • 等级:
    • 排名:第606名
    • 原创:217篇
    • 转载:29篇
    • 译文:46篇
    • 评论:361条
    微博/MSN/EMail

    新浪微博:Horky
    QQ:324014340
    Mail:horky.chen@gmail.com
    微信公众号 (聚焦软件开发):
    博客专栏
    最新评论