Mengapa ikon batas Windows tumpang tindih hingga 15?

27

Kita dapat melihat pertanyaan tanpa akhir tentang Dropbox vs TortoiseSVN vs banyak ikon aplikasi lainnya yang mengatasi konflik.

Dua contoh:
Mengapa Icon Overlay (dari 3rdParty-Apps) tidak muncul di Win8 Explorer?
Bisakah saya mencegah perubahan ikon overlay?

Dalam kasus saya, saya hanya memiliki Dropbox dan TortoiseSVN. Dropbox benar-benar menjengkelkan - setelah setiap pembaruan, saya perlu menjalankan skrip yang saya buat yang menghapus overlay Dropbox dari registri dan kemudian me-restart Windows Explorer.

Saya mengerti bahwa batas Windows overlay 15 mungkin karena kinerja.
Namun, akan meningkat menjadi 25 ~ 35 menyebabkan dampak kinerja yang sangat besar?
Mengapa Microsoft belum menyadari bahwa ini adalah masalah yang sangat populer dan mencoba untuk memperbaiki ini?
Mengapa tidak ada, setidaknya, opsi yang dapat diubah oleh pengguna tingkat lanjut untuk meningkatkan batas ini?

Nuno
sumber
Saya bertanya kepada Microsoft beberapa waktu lalu dan mereka memberi tahu saya "masalah perf" sebagai alasan. Mereka tidak meningkatkan batas, mereka juga punya rencana untuk membunuh mereka sepenuhnya.
magicandre1981
1
Bukan hanya kinerja. Dalam implementasi saat ini ada 4 bit dalam struktur yang menentukan indeks overlay yang menyediakan maksimum 15 overlay. Bit yang lebih signifikan yang diperlukan untuk meningkatkan angka ini digunakan untuk tujuan lain. Satu-satunya cara untuk mendapatkan lebih banyak ikon overlay adalah dengan mengubah implementasi dan itu akan memiliki implikasi kompatibilitas yang besar. Ada sejumlah besar aplikasi (aplikasi yang ditulis dengan baik yang mengikuti semua aturan) yang bergantung pada implementasi saat ini dan akan rusak jika diubah.
LMiller7

Jawaban:

24

Dalam kasus saya, saya hanya memiliki Dropbox dan TortoiseSVN. Dropbox benar-benar menjengkelkan - setelah setiap pembaruan, saya perlu menjalankan skrip yang saya buat yang menghapus overlay Dropbox dari registri dan kemudian me-restart Windows Explorer.

Hapus semua hamparan yang tidak digunakan dari lokasi berikut:

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

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

Sumber: Mengapa Icon Overlay (dari 3rdParty-Apps) tidak muncul di Win8 Explorer?

Apakah meningkat menjadi 25 ~ 35 menyebabkan dampak kinerja yang sangat besar?

Karena batas saat ini tidak dapat diubah, tidak mungkin bagi kami untuk memprediksi dampak kinerja seperti apa yang akan terjadi jika batas ditingkatkan.

Mengapa Microsoft belum menyadari bahwa ini adalah masalah yang sangat populer dan mencoba untuk memperbaiki ini?

Saya kira efeknya lebih sedikit pada orang daripada yang Anda kira. Hanya seseorang, dari tim Windows Shell, yang benar-benar tahu jawaban ini. Sampai Microsoft membuat keputusan keputusan mereka diketahui, kita hanya bisa membuat tebakan yang berpendidikan, yang pada dasarnya adalah bahwa tidak ada yang meningkatkan batasnya.

Mengapa tidak ada, setidaknya, opsi yang dapat diubah oleh pengguna tingkat lanjut untuk meningkatkan batas ini?

Hanya seseorang, dari tim Windows Shell, yang benar-benar tahu jawaban ini. Sampai Microsoft membuat keputusan keputusan mereka diketahui, kita hanya dapat membuat tebakan yang terpelajar, yang pada dasarnya adalah bahwa tidak ada yang telah menulis kode untuk memungkinkan kita meningkatkan batas.

Raymond Chen seorang Pengembang Microsoft mengatakan hal berikut tentang overlay ikon

Secara umum, overlay bukan cara yang baik untuk menyajikan informasi karena hanya ada satu overlay per ikon, dan ada batas 15 overlay per ImageList. Jika ada dua atau lebih overlay yang berlaku untuk suatu item, maka satu akan menang dan yang lainnya akan kalah, pada titik mana nilai overlay sebagai cara menentukan properti apa yang berlaku untuk item berkurang karena satu-satunya cara untuk memastikan bahwa sebuah properti hilang adalah ketika Anda tidak melihat hamparan sama sekali. (Jika Anda melihat beberapa overlay lainnya, Anda tidak dapat memastikan apakah itu karena properti Anda hilang atau karena overlay lainnya ditampilkan sebagai ganti milik Anda.)

Tuan Chen juga menyatakan:

Contoh lain dari aplikasi yang memiliki pandangan egois tentang kinerja datang dari perusahaan yang mengembangkan penangan overlay ikon. Shell memperlakukan perhitungan overlay sebagai item prioritas rendah, karena lebih penting untuk mendapatkan ikon di layar sehingga pengguna dapat mulai melakukan apa pun yang mereka ingin lakukan. Dekorasi bisa datang nanti. Perusahaan ini ingin tahu apakah ada cara mereka dapat meningkatkan kinerja mereka dan meletakkan overlay mereka ke layar bahkan sebelum ikon muncul, menunjukkan interpretasi egois yang fenomenal dari "kinerja".

Sumber: Apa itu ikon overlay kecil: Edisi Windows 7

Ramhound
sumber
3

Ada posting blog baru tentang topik dari Raymond Chen: Mengapa ada batas overlay 15 ikon shell? yang masuk ke dalam perincian yang lebih detail, tetapi versi singkatnya adalah: alasannya adalah kompatibilitas dengan versi dan API yang lebih lama, masalah kinerja, dan fakta bahwa overlay ikon tidak direkomendasikan hari ini:

Pada dasarnya bermuara pada "Ini akan menjadi banyak pekerjaan dan kami malas."

dan juga:

Tetapi alasan utama ini tidak dilakukan adalah karena overlay tidak direkomendasikan sebagai cara untuk menyampaikan metadata tentang file kepada pengguna .

dan:

Windows 10 mengambil langkah menjauh dari overlay ikon dengan memindahkan indikator status sinkronisasi file OneDrive dari overlay ikon ke kolom Status terpisah.

Borislav Ivanov
sumber
Ya! Saya perhatikan bahwa OneDrive melakukannya secara berbeda, dan bahkan dapat menampilkan file yang "hanya online". Itu fitur yang sangat keren yang tampaknya memberi lebih banyak fleksibilitas. Terima kasih banyak atas informasinya.
Nuno
1

Saya juga ingin memperbaiki kesalahpahaman. Ya, ada total 15 ikon yang dialokasikan, TETAPI sebenarnya 11 ikon overlay yang tersedia karena Sistem Windows cadangan 4 untuk dirinya sendiri, jadi secara efektif ada 11 ikon yang tersedia untuk program lain. (15-4 = 11). Ini menurut situs web dukungan Microsoft resmi ( URL yang diarsipkan )

Jumlah penangan overlay ikon yang dapat didukung sistem dibatasi oleh jumlah ruang yang tersedia untuk overlay ikon dalam daftar gambar sistem. Saat ini ada 15 slot yang dialokasikan untuk overlay ikon, 4 di antaranya dicadangkan oleh sistem. Ketika ada lebih dari 11 penangan overlay ikon yang terdaftar dalam sistem, hanya 11 overlay ikon pertama yang disediakan oleh penangan overlay ikon ditambahkan ke daftar gambar sistem. Penangan overlay ikon yang tersisa tidak digunakan.

Sumber: situs web dukungan Microsoft resmi ( URL yang diarsipkan )

Pemberitahuan PSA:

Saya juga merancang halaman Wikipedia yang didedikasikan semata-mata untuk mencantumkan semua overlay ikon shell, sehingga pengguna dapat mengidentifikasi mana yang paling berguna untuk Dropbox, OneDrive, Tortoise, dll ...

Silakan periksa halaman Wiki saya dan silakan berkontribusi:

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

rwat128
sumber
Ini fantastis, dapatkah Anda menambahkan overlay ikon Creative Cloud Adobe? AccExtIco1, AccExtIco2, AccExtIco3
JamesHenare