Tại sao biểu tượng giới hạn của Windows lại chồng lên 15?


27

Chúng ta có thể thấy những câu hỏi bất tận về Dropbox vs TortoiseSVN so với nhiều biểu tượng ứng dụng khác chồng chéo xung đột.

Hai ví dụ:
Tại sao Lớp phủ biểu tượng (từ Ứng dụng thứ 3) không hiển thị trong Win8 Explorer?
Tôi có thể ngăn chặn sự thay đổi của các biểu tượng lớp phủ không?

Trong trường hợp của tôi, tôi chỉ có Dropbox và TortoiseSVN. Dropbox thực sự trở nên khó chịu - sau mỗi lần cập nhật, tôi cần chạy một đoạn script tôi đã thực hiện để xóa lớp phủ của Dropbox khỏi registry và sau đó khởi động lại Windows Explorer.

Tôi hiểu rằng Windows giới hạn lớp phủ đến 15 có thể là do hiệu suất.
Tuy nhiên, việc tăng lên 25 ~ 35 có gây ra tác động lớn đến hiệu suất không?
Tại sao Microsoft chưa nhận ra rằng đây là một vấn đề rất phổ biến và đã cố gắng khắc phục vấn đề này?
Tại sao ít nhất là tại đó, một tùy chọn mà người dùng cao cấp có thể thay đổi để tăng giới hạn này?


Tôi đã hỏi Microsoft này một thời gian trước và họ nói với tôi "vấn đề hoàn hảo" là lý do. Chúng không tăng giới hạn, chúng cũng có kế hoạch giết chúng hoàn toàn.
magicandre1981

1
Đó không chỉ là hiệu suất. Trong triển khai hiện tại có 4 bit trong cấu trúc xác định chỉ số lớp phủ cung cấp tối đa 15 lớp phủ. Các bit quan trọng hơn cần thiết để tăng số lượng này được sử dụng cho mục đích khác. Cách duy nhất để có được nhiều biểu tượng lớp phủ hơn là thay đổi cách triển khai và điều đó sẽ có ý nghĩa tương thích lớn. Có một số lượng lớn các ứng dụng (các ứng dụng được viết tốt tuân theo tất cả các quy tắc) dựa trên việc triển khai hiện tại và sẽ bị hỏng nếu nó bị thay đổi.
LMiller7

Câu trả lời:


24

Trong trường hợp của tôi, tôi chỉ có Dropbox và TortoiseSVN. Dropbox thực sự trở nên khó chịu - sau mỗi lần cập nhật, tôi cần chạy một đoạn script tôi đã thực hiện để xóa lớp phủ của Dropbox khỏi registry và sau đó khởi động lại Windows Explorer.

Xóa mọi lớp phủ không sử dụng khỏi vị trí sau:

  • KEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft \ Windows \ CurrentVersion \ Explorer \ ShellIcon‌ OverlayIdentifier

  • KEY_LOCAL_MACHINE \ SOFTWARE \ Wow6432Node \ Microsoft \ Windows \ CurrentVersion \ explor‌ er \ ShellIconOverlayIdentifier

Nguồn: Tại sao Lớp phủ biểu tượng (từ Ứng dụng 3Party) không hiển thị trong Win8 Explorer?

Sẽ tăng lên 25 ~ 35 gây ra một tác động hiệu suất lớn?

Vì giới hạn hiện tại không thể thay đổi nên chúng tôi không thể dự đoán loại tác động hiệu suất sẽ có nếu giới hạn được tăng lên.

Tại sao Microsoft chưa nhận ra rằng đây là một vấn đề rất phổ biến và đã cố gắng khắc phục vấn đề này?

Tôi sẽ cho rằng nó ảnh hưởng đến ít người hơn bạn nghĩ nó làm. Chỉ có ai đó, từ nhóm Windows Shell, thực sự biết câu trả lời này. Cho đến khi Microsoft đưa ra quyết định của họ, chúng ta chỉ có thể đưa ra những phỏng đoán có giáo dục, về cơ bản là sẽ không có ai tăng giới hạn.

Tại sao ít nhất là tại đó, một tùy chọn mà người dùng cao cấp có thể thay đổi để tăng giới hạn này?

Chỉ có ai đó, từ nhóm Windows Shell, thực sự biết câu trả lời này. Cho đến khi Microsoft đưa ra quyết định của họ, chúng tôi chỉ có thể đưa ra những phỏng đoán có giáo dục, về cơ bản là không ai đã viết mã để cho phép chúng tôi tăng giới hạn.

Raymond Chen, một nhà phát triển của Microsoft cho biết như sau về lớp phủ biểu tượng

Nói chung, lớp phủ không phải là một cách tốt để trình bày thông tin vì chỉ có thể có một lớp phủ cho mỗi biểu tượng và có giới hạn 15 lớp phủ cho mỗi ImageList. Nếu có hai hoặc nhiều lớp phủ áp dụng cho một vật phẩm, thì một lớp sẽ thắng và các lớp khác sẽ thua, tại thời điểm đó, giá trị của lớp phủ là cách xác định thuộc tính nào áp dụng cho một vật phẩm giảm đi vì cách duy nhất là chắc chắn rằng một tài sản bị thiếu là khi bạn không thấy lớp phủ nào cả. (Nếu bạn thấy một số lớp phủ khác, bạn không thể biết đó là do tài sản của bạn bị thiếu hay vì lớp phủ khác đang hiển thị thay vì lớp phủ của bạn.)

Ông Chen cũng tuyên bố:

Một ví dụ khác về các ứng dụng có cái nhìn ích kỷ về hiệu suất đến từ một công ty đang phát triển trình xử lý lớp phủ biểu tượng. Shell coi việc tính toán lớp phủ là một mục có mức độ ưu tiên thấp, vì điều quan trọng hơn là phải có các biểu tượng trên màn hình để người dùng có thể bắt đầu làm bất cứ điều gì họ muốn làm. Các trang trí có thể đến sau. Công ty này muốn biết liệu có cách nào họ có thể cải thiện hiệu suất của họ và đưa lớp phủ của họ lên màn hình ngay cả trước khi biểu tượng xuất hiện, thể hiện một cách giải thích "hiệu suất" một cách phi thường.

Nguồn: Các biểu tượng lớp phủ nhỏ đó là gì: phiên bản Windows 7


3

Có bài đăng blog mới về chủ đề từ Raymond Chen: Tại sao có giới hạn 15 lớp phủ biểu tượng vỏ? thậm chí còn đi sâu vào chi tiết hơn, nhưng phiên bản ngắn là: lý do là khả năng tương thích với các phiên bản cũ hơn và API, vấn đề về hiệu suất và thực tế là lớp phủ biểu tượng không được đề xuất trong những ngày này:

Về cơ bản, nó sôi sùng sục lên đến Đó sẽ là rất nhiều công việc và chúng tôi lười biếng.

và cũng:

Nhưng lý do chính điều này không được thực hiện chỉ đơn giản là các lớp phủ không được khuyến nghị là cách để truyền tải siêu dữ liệu về một tệp cho người dùng .

và:

Windows 10 tiến một bước khỏi lớp phủ biểu tượng bằng cách di chuyển chỉ báo trạng thái đồng bộ hóa tệp OneDrive từ lớp phủ biểu tượng sang cột Trạng thái riêng.


Vâng! Tôi nhận thấy rằng OneDrive làm điều đó khác đi và thậm chí có thể hiển thị các tệp "chỉ trực tuyến". Đó là một tính năng rất hay xuất hiện để linh hoạt hơn. Cảm ơn bạn rất nhiều cho các thông tin.
Nuno

1

Tôi cũng muốn sửa một quan niệm sai lầm. Có, có tổng cộng 15 biểu tượng được phân bổ, NHƯNG Đó thực sự là 11 biểu tượng lớp phủ vì Windows System dành riêng 4, vì vậy, có hiệu quả 11 biểu tượng có sẵn cho các chương trình khác. (15-4 = 11). Đây là theo trang web hỗ trợ chính thức của Microsoft ( URL lưu trữ )

Số lượng trình xử lý lớp phủ biểu tượng mà hệ thống có thể hỗ trợ bị giới hạn bởi số lượng không gian có sẵn cho lớp phủ biểu tượng trong danh sách hình ảnh hệ thống. Hiện tại có 15 vị trí được phân bổ cho lớp phủ biểu tượng, 4 trong số đó được hệ thống dành riêng. Khi có hơn 11 trình xử lý lớp phủ biểu tượng được đăng ký trong hệ thống, chỉ có 11 lớp phủ biểu tượng đầu tiên được cung cấp bởi trình xử lý lớp phủ biểu tượng được thêm vào danh sách hình ảnh hệ thống. Các trình xử lý lớp phủ biểu tượng còn lại không được sử dụng.

Nguồn: trang web hỗ trợ chính thức của Microsoft ( URL lưu trữ )

Thông báo PSA:

Tôi cũng đã thiết kế một trang Wikipedia chỉ dành riêng để liệt kê tất cả các lớp phủ biểu tượng vỏ, để người dùng có thể xác định trang nào hữu ích nhất cho Dropbox, OneDrive, Rùa, v.v ...

Vui lòng kiểm tra trang Wiki của tôi và vui lòng đóng góp:

https://en.wikipedia.org/wiki/List_of_Shell_Icon_Overlay_Identifier


Điều này thật tuyệt vời, bạn có thể thêm lớp phủ biểu tượng Adobe Creative Cloud không? AccExtIco1, AccExtIco2, AccExtIco3
JamesHenare
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.