2011-07-10 32 views
12

Sadece CSS'de kullanmak istediğimde altıgen renk kodlarını veya renk adlarını kullanmanın daha hızlı olup olmadığını bilmek istedim.: altıgen renk kodları veya renk adları?

+9

. Cidden, bu bir sorun haline gelmeden önce hemen hemen her şeyi optimize etmelisiniz. –

+1

Evet, herşeyi optimize etmem gerektiğini biliyorum. Kafamın arkasında sadece bilmek istediğim bir şeydi. –

+0

Bu, web tasarımını optimize eden bir bakış açısından değil, tarayıcı tasarım açısından daha ilginç bir sorudur. – Flimzy

cevap

14

Tahminimce kodlar daha hızlı olacaktır çünkü isimler muhtemelen bir arama tablosuna ve referans hex kodlarına atanmış olabilir.

Yani, benim tahminim hız farkı tamamen ihmal edilebilir.

Yeni oluşturduğum bir performans testi. Boyun ve boyunludur, ancak altıgen kodlar şu ana kadar 4/4 çalışmalarda çok daha hızlı görünür: http://jsperf.com/css-color-names-vs-hex-codes

+0

evet, benim tahminim buydu, ve evet biliyorum, fark yaratmıyor, ama emin olmak istedim. –

+4

Kısa hex kodlarını ('# FFF'), uzun hex kodlarını (' #] karşılaştırarak [bu testin bir revizyonu] (http://jsperf.com/css-color-names-vs-hex-codes/17) FFFFFF'), rgb', rgba' ve renk kodları. – nhinkle

5

Oluşturma açısından daha mı hızlı? Pratik açıdan, herhangi bir fark yaratabilecek hiçbir olası yol yoktur. Teknik terimlerle, bu, CSS oluşturmanın her tarayıcıda nasıl uygulandığına bağlı olarak geçerlidir. Bir tahmin yapmak zorunda kalsaydım, hex'i kullanmanın, çoğu tarayıcıda daha hızlı bir şekilde 3 CPU döngüsü (bir abartı) olduğunu düşünürdüm, çünkü ad ilk önce hex'e dönüştürülmelidir.

Ancak, soruyu sormak için gereken süre, internetin icat edilmesinden bu yana bu dönüştürme işlemini yapan dünyadaki tüm tarayıcıların harcadığı süreden daha fazla zamanı temsil ediyor.

+2

Asıl olarak sizinle aynı fikirdeyim ama "3 cpu döngüleri" iddiası ... bir ismi nümerik bir eşdeğere dönüştürmek için düşünülmüş görünüyor. , (log n)/2 girişimi; Her girişimi, gerçek girişi bulmak ve daha sonra dizi karşılaştırmasını gerçekleştirmek için 3 CPU döngüsünden çok daha fazla zaman alacaktır. Yani, dönüşüm 30000 işlemci döngüsünü daha uzun sürse bile, kullanıcı herhangi bir fark görmeyecektir. – mah

+0

Maalesef, "3 CPU döngüsü" rakamıma bir yan not eklemek istedim, ama unuttum. Bunun abartılı olduğunun farkındayım. Cevabı güncelledim :) – Flimzy

+0

Tarayıcı internals hakkında bir şey bilmiyorum ama O (1) ile çok basit bir karma, bu görev için daha iyi görünüyor. –

7

Popüler fikir birliğine karşı çıkacağım ve bakma tablosunun renk değerini tamsayı olarak döndürmesi durumunda renk adlarının daha hızlı olması olasılığını öneririm. Bu, adlandırılmış bir renk kullanıldığında tarayıcının, onaltılık karakterler içeren bir dizeden karşılık gelen tamsayıya elle ayrıştırılması gerekmediği anlamına gelir, tek yapmanız gereken bir O (1) karma aramadır. Ve bu, dizeden tamsayıya ayrıştırmaktan biraz daha hızlı olabilir. Diğerleri doğru olarak belirttiyse de, tüm pratik terimlerle, ikisi arasındaki fark çok küçük olacaktır. Pratikte fark edeceğiniz bir şey değil. En düşük asılı meyveleri

+2

hmmm, ilginç nokta. Cevabınız, en önemsiz ve en küçük konularda bile, katılmayacak kadar çok şeyin olabileceğini göstermektedir. –

+0

Bunu düşünmemiştim. Bazı tarayıcıların söylediklerini tam olarak söylediğine inanıyorum - ve diğerleri yok.Ve bu diğer soruyu da beraberinde getiriyor: İsim arama, 3 haneli bir hex dönüşümden daha mı hızlı mı, yoksa 6 haneli hex renklerinden daha mı hızlı ?! Hmmmm! – Flimzy

İlgili konular