2011-07-10 45 views
12

Tôi chỉ muốn biết nếu nó nhanh hơn để sử dụng mã màu hex hoặc tên màu khi tôi muốn sử dụng nó trong CSS?cái nào nhanh hơn: mã màu hex hoặc tên màu?

+9

chọn quả treo thấp nhất. nghiêm túc, bạn nên tối ưu hóa khá nhiều thứ khác trước khi điều này trở thành một vấn đề. –

+1

vâng tôi biết tôi nên tối ưu mọi thứ khác. đó chỉ là một điều đáng nhớ ở phía sau đầu tôi. –

+0

Đây là một câu hỏi thú vị hơn từ quan điểm thiết kế trình duyệt, hơn là từ quan điểm tối ưu hóa web. – Flimzy

Trả lời

14

Tôi đoán là các mã sẽ nhanh hơn vì các tên này có thể được gán cho bảng tra cứu và mã hex tham chiếu.

Điều đó đang được nói, tôi đoán là chênh lệch tốc độ sẽ hoàn toàn không đáng kể.

Đây là bài kiểm tra hiệu suất tôi vừa tạo. Chúng cổ và cổ, mặc dù mã hex dường như chỉ nhanh hơn 4/5 cho đến nay: http://jsperf.com/css-color-names-vs-hex-codes

+0

vâng đó là dự đoán của tôi, và vâng tôi biết nó không tạo ra nhiều khác biệt nhưng tôi chỉ muốn chắc chắn. –

+4

Đây là [sửa đổi kiểm tra đó] (http://jsperf.com/css-color-names-vs-hex-codes/17), so sánh các mã hex ngắn ('# FFF'), mã hex dài (' # FFFFFF'), 'rgb',' rgba' và mã màu. – nhinkle

5

Nhanh hơn về kết xuất?

Về mặt thực tế, không có cách nào có thể tạo ra bất kỳ sự khác biệt nào.

Về mặt kỹ thuật, điều đó phụ thuộc vào cách hiển thị CSS được triển khai trong mỗi trình duyệt. Nếu tôi phải đoán, tôi tưởng tượng rằng việc sử dụng hex là khoảng 3 chu kỳ CPU (một cường điệu) nhanh hơn trong hầu hết các trình duyệt, vì tên phải được chuyển đổi thành hex trước.

Nhưng thời gian bạn đưa ra để đặt câu hỏi đại diện cho nhiều thời gian hơn là đã bị lãng phí bởi tất cả các trình duyệt trên thế giới thực hiện chuyển đổi này kể từ khi Internet được phát minh.

+2

Hiệu trưởng, tôi đồng ý với bạn nhưng yêu cầu "3 cpu cycle" có vẻ khá yếu ... để chuyển đổi tên thành số tương đương, bạn cần tìm mục nhập của nó trong bảng tra cứu của các mục nhập sẽ mất trung bình , (log n)/2 lần thử; mỗi lần thử sẽ mất nhiều hơn 3 chu kỳ CPU để tìm mục nhập thực tế và sau đó thực hiện so sánh chuỗi. Điều đó đang được nói, ngay cả khi chuyển đổi mất 30000 chu kỳ CPU còn người dùng sẽ không thấy bất kỳ sự khác biệt nào. – mah

+0

Xin lỗi, tôi có nghĩa là thêm một lưu ý phụ vào "chu kỳ CPU 3" của tôi, nhưng tôi đã quên. Tôi nhận ra đó là một cường điệu. Tôi đã cập nhật câu trả lời :) – Flimzy

+0

Tôi không biết gì về nội dung trình duyệt nhưng một hàm băm rất đơn giản với O (1) có vẻ tốt hơn cho tác vụ này. –

7

Tôi sẽ đi ngược lại sự đồng thuận phổ biến và gợi ý rằng có thể tên màu nhanh hơn, nếu bảng tra cứu trả về giá trị màu làm số nguyên. Điều đó có nghĩa là khi sử dụng một màu tên, trình duyệt không phải phân tích cú pháp thủ công từ một chuỗi có chứa các ký tự hex thành số nguyên tương ứng, tất cả những gì cần làm là tìm kiếm băm O (1). Và điều đó cũng có thể nhanh hơn một chút so với phân tích cú pháp từ chuỗi thành số nguyên.

Mặc dù như những người khác đã lưu ý đúng, trong tất cả các điều kiện thực tế sự khác biệt giữa hai sẽ vô cùng nhỏ. Không phải thứ mà bạn từng thấy trong thực tế.

+2

hmmm, điểm thú vị. câu trả lời của bạn cho thấy rằng ngay cả trong hầu hết các quan trọng nhất và nhỏ nhất của các vấn đề có thể có rất nhiều để không đồng ý. –

+0

Tôi đã không nghĩ về điều đó. Tôi sẽ đặt cược một số trình duyệt làm chính xác những gì bạn nói - và những người khác thì không.Và điều này sẽ trả lời câu hỏi khác: Việc tra cứu tên nhanh hơn so với chuyển đổi hex 3 chữ số, hay chỉ nhanh hơn màu hex 6 chữ số ?! Hmmmm! – Flimzy

Các vấn đề liên quan