哪一个更快:十六进制颜色代码或颜色名称?

Ham*_*eni 13 css hex colors

我只是想知道当我想在CSS中使用它时,使用十六进制颜色代码或颜色名称是否更快?

Ali*_*guy 15

我的猜测是代码会更快,因为名称可能被分配到查找表和参考十六进制代码.

话虽如此,我的猜测是速度差异将完全可以忽略不计.

这是我刚刚创建的性能测试.它们是颈部和颈部,尽管到目前为止,在4/5运行中,十六进制代码似乎只是快得多:http: //jsperf.com/css-color-names-vs-hex-codes

  • 这是[该测试的修订版](http://jsperf.com/css-color-names-vs-hex-codes/17),比较短十六进制代码(`#FFF`),长十六进制代码(`#FFFFFF `),`rgb`,`rgba`和颜色代码. (4认同)

aro*_*oth 7

如果查找表将颜色值作为整数返回,我将违背流行的共识,并建议颜色名称可能更快.这意味着当使用命名颜色时,浏览器不必手动从包含十六进制字符的字符串解析为相应的整数,它需要做的只是O(1)散列查找.这可能比从字符串解析为整数稍快一些.

虽然正如其他人正确指出的那样,但从实际角度来看,两者之间的差异将是无限小的.不是你在实践中会注意到的东西.

  • 嗯,有趣的一点.你的答案表明,即使在最不重要和最小的问题上,也可能存在很多不同意见. (2认同)

Fli*_*mzy 5

渲染速度更快?

实际上,没有任何可能的方式可以产生任何不同.

在技​​术方面,这取决于在每个浏览器中如何实现CSS呈现.如果我不得不猜测,我想在大多数浏览器中使用hex大约3个CPU周期(夸张),因为名称必须首先转换为十六进制.

但是,你问这个问题所花费的时间比自从互联网发明以来世界上所有浏览器都浪费了更多的时间.

  • 原则上我同意你的意见,但是"3 cpu cycle"声明看起来很糟糕......要将名称转换为数字等价物,你需要在n个条目的查找表中找到它的条目,平均而言, (log n)/ 2次尝试; 每次尝试都需要超过3个CPU周期来查找实际条目,然后执行字符串比较.话虽这么说,即使转换需要30000个cpu周期,用户也不会看到任何差异. (2认同)