ShellIconOverlayIdentifiers - ทำไมจึงมีน้อย?


84

ณ จุดนี้ทุกคนรู้ดีว่ามีการ จำกัด จำนวนShellIconOverlayIdentifiers(จาก MSDN):

จำนวนของตัวจัดการการซ้อนทับไอคอนต่างๆที่ระบบสามารถรองรับได้ถูก จำกัด โดยจำนวนพื้นที่ว่างสำหรับการซ้อนทับไอคอนในรายการอิมเมจระบบ ขณะนี้มีสล็อตสิบห้าช่องที่กำหนดไว้สำหรับการวางซ้อนไอคอนซึ่งบางช่องถูกสงวนไว้โดยระบบ ด้วยเหตุนี้ตัวจัดการการวางซ้อนไอคอนควรใช้งานได้เฉพาะในกรณีที่ไม่มีทางเลือกอื่นที่น่าพอใจ

ฉันเข้าใจ 15 overlay limt ใน Windows 95 แต่ในสภาพแวดล้อมที่มี Gigs of RAM, Cores และ GPU จำนวนมากมีเหตุผลทางเทคนิคบางประการสำหรับจำนวนที่ต่ำเช่นนี้ในระบบปฏิบัติการสมัยใหม่หรือไม่?

และเหตุใดจึงไม่สามารถกำหนดค่านี้ได้

ก่อนที่จะให้คำตอบ 'ประสิทธิภาพ' ให้พิจารณา: Windows อนุญาตให้กำหนดค่าเพื่อให้คุณสามารถฆ่าประสิทธิภาพได้ ... ทำไมต้องเลือกประเด็นนี้โดยเฉพาะ?


เหตุใดสิ่งนี้จึงถูกแท็ก "tortoisesvn" ฉันพลาดอะไรไปรึเปล่า?
โคดี้เกรย์

19
ฉันคิดว่าฉันฉลาดเพราะ tortoisesvn เป็นแอพที่ถูกกล่าวถึงบ่อยที่สุดเมื่อต้องรับมือกับข้อ จำกัด ที่มากเกินไปของไอคอน - ส่วนใหญ่เป็นเพราะมันต้องใช้ 9 ช่องที่มีอยู่ของคุณ นำแท็กออก
rbellamy

1
ข้อ จำกัด ยังเหมือนเดิมใน windows 10 ไม่รู้ทำไมเหมือนกัน
Gohan

คำตอบ:


86

ถ้าไม่มีใครที่นี่ทำงานในทีม Windows Shell ฉันสงสัยว่าคุณจะได้รับคำตอบที่ระบุถึงข้อ จำกัด ทางเทคนิคและผลกระทบต่อการเลือกการออกแบบ แต่ฉันจะพยายาม ...

ฉันเดาว่าไม่มีข้อ จำกัด ทางเทคนิคหรืออย่างน้อยก็ไม่มีข้อ จำกัด ในตอนนี้ เหตุผลที่แท้จริงน่าจะเป็นไปได้ว่าไม่มีใครใช้เวลาในการนั่งลงและอัปเดตโค้ดการออกแบบและข้อมูลจำเพาะเพื่อยกข้อ จำกัด นี้ คุณลักษณะต่างๆจะไม่ถูกนำไปใช้โดยค่าเริ่มต้นและเพียงเพราะสภาพแวดล้อมการประมวลผลมีการเปลี่ยนแปลงในช่วงไม่กี่ปีที่ผ่านมาไม่ได้หมายความว่ามีใครบางคนนั่งลงและเขียน Windows ใหม่เพื่อใช้ประโยชน์จากการเปลี่ยนแปลงเหล่านั้นทั้งหมด

นอกจากนี้คุณควรพิจารณาด้วยว่าเป็นทางเลือกในการออกแบบที่ใส่ใจมากกว่าข้อ จำกัด ที่กำหนดไว้ เรย์มอนด์เฉิน (ที่จริงไม่ทำงานในทีมเปลือก) การเผยแพร่รายการบล็อกการตอบสนองต่อความโกลาหลเกี่ยวกับ Windows 7 ลบ "ร่วมกันมือ" ซ้อนทับ เขาให้ข้อโต้แย้งที่น่าสนใจว่าการซ้อนทับไอคอนไม่ใช่วิธีแสดงข้อมูลที่พึงปรารถนาจริงๆ (เหนือกว่าข้อเท็จจริงที่ว่าระบบ จำกัด ไว้ที่ 15) [เน้นย้ำ]:

โดยทั่วไปแล้วการวางซ้อนไม่ใช่วิธีที่ดีในการนำเสนอข้อมูล เนื่องจากสามารถมีภาพซ้อนทับได้เพียงหนึ่งภาพต่อหนึ่งไอคอนและ จำกัด การวางซ้อนได้ 15 ภาพต่อ ImageList หากมีการวางซ้อนสองรายการขึ้นไปที่ใช้กับไอเท็มหนึ่งชิ้นจะชนะและอีกชิ้นหนึ่งจะแพ้เมื่อถึงจุดนั้นมูลค่าของโอเวอร์เลย์เป็นวิธีการพิจารณาว่าคุณสมบัติใดที่ใช้กับไอเท็มจะลดน้อยลงเนื่องจากวิธีเดียวที่จะทำให้แน่ใจได้ คุณสมบัติที่หายไปคือเมื่อคุณไม่เห็นภาพซ้อนทับเลย (หากคุณเห็นภาพซ้อนทับอื่น ๆ คุณไม่สามารถบอกได้ว่าเป็นเพราะทรัพย์สินของคุณหายไปหรือเป็นเพราะภาพซ้อนทับอื่น ๆ แสดงแทนของคุณ)

ดูเหมือนจะสมเหตุสมผลสำหรับฉันที่ความยุ่งเหยิงพิเศษที่เพิ่มเข้ามาในเปลือกนั้นไม่คุ้มค่าในกรณีส่วนใหญ่ในโลกแห่งความเป็นจริง เห็นได้ชัดว่าทีม Windows Shell บรรลุข้อสรุปเดียวกันและตัดการวางซ้อน "มือแบ่งปัน" คำอธิบายโดยตรงของ Raymond:

จากการเปลี่ยนแปลงในการใช้คอมพิวเตอร์ของผู้คนการแบ่งปันข้อมูลจึงกลายเป็นสถานะเริ่มต้นมากขึ้นเรื่อย ๆ เมื่อคุณตั้งค่าโฮมกรุ๊ปทุกอย่างจะถูกแบ่งปัน เมื่อต้องการลบความยุ่งเหยิงของภาพข้อมูลจะถูกย้ายไปที่บานหน้าต่างรายละเอียด

และฉันรู้ว่าคุณขอโดยเฉพาะไม่ให้พูดถึงประสิทธิภาพ แต่ Windows พยายามป้องกันไม่ให้คุณยิงตัวเอง ผู้ใช้ต้องการการตอบสนองในเชลล์และไอคอนซ้อนทับอาจรบกวนสิ่งนี้ ในฐานะที่เป็นหลักฐานเพิ่มเติมว่าพวกเขาจะไม่ได้มีความสำคัญ , โพสต์บล็อกอื่นโดยเดียวกัน chastises เรย์มอนด์เฉิน:

อีกตัวอย่างหนึ่งของแอปพลิเคชันที่มีมุมมองด้านประสิทธิภาพที่เห็นแก่ตัวมาจาก บริษัท ที่พัฒนาตัวจัดการไอคอนซ้อนทับ เชลล์ถือว่าการคำนวณแบบโอเวอร์เลย์เป็นรายการที่มีลำดับความสำคัญต่ำเนื่องจากการได้รับไอคอนบนหน้าจอมีความสำคัญมากกว่าเพื่อให้ผู้ใช้สามารถเริ่มทำอะไรก็ได้ตามที่ต้องการ ตกแต่งได้ในภายหลัง บริษัท นี้ต้องการทราบว่ามีวิธีใดบ้างที่พวกเขาสามารถปรับปรุงประสิทธิภาพและวางภาพซ้อนทับลงบนหน้าจอได้ก่อนที่ไอคอนจะปรากฏขึ้นซึ่งแสดงให้เห็นถึงการตีความ "ประสิทธิภาพ" อย่างเห็นแก่ตัว


15
ตอบสนองดีเยี่ยม ดังนั้นคำถามที่ดีกว่าคือ "อะไรคือทางเลือกอื่นสำหรับการซ้อนทับไอคอนที่แสดงคิวภาพแบบทันทีเดียวกันกับสถานะของไฟล์ / โฟลเดอร์" สำหรับฉันแล้วดูเหมือนว่าการใช้ไอคอนเพื่อทำมากกว่าการระบุประเภทเนื้อหานั้นมีความสำคัญมากขึ้นเรื่อย ๆ ด้วยเหตุผลที่แน่นอนที่ Raymond Chen กล่าวถึง - ด้วยความเบลอของขอบเขตตำแหน่งไฟล์สถานะจึงมีความสำคัญ
rbellamy

3
ฉันสงสัยเป็นอย่างมากว่านี่ไม่ใช่ตัวเลือกการออกแบบที่ใส่ใจหรือข้อ จำกัด ที่กำหนด แต่การตัดสินใจออกแบบที่ยุ่งยากเกิดขึ้นเมื่อนานมาแล้ว (ประมาณ Win 95) และไม่เคยแก้ไขเนื่องจากฐานผู้ใช้ที่ติดตั้งไว้ การตัดสินใจที่โง่ที่สุดก็คือส่วนขยายการวางซ้อนแต่ละรายการสามารถรองรับการซ้อนทับไอคอนได้เพียงรายการเดียวและสำหรับแต่ละไฟล์เชลล์จะถามว่า "ใช้? มันควรจะได้รับว่าแต่ละซ้อนทับสนับสนุนอาร์เรย์ของไอคอนและสำหรับแต่ละไฟล์เปลือกถาม "ซึ่งไอคอนซ้อนทับ?" ซึ่งขยายอาจตอบว่า "ผมไม่ได้ใช้" เป็นตัวเลือกหนึ่ง
Keith Robertson

9
น่าสนใจที่ MS ยอมรับสิ่งนี้โดยการทำให้ShellIconOverlayIdentifiersรายการรีจิสทรีของฉันยุ่งเหยิงด้วย OneDrive crud ในขณะที่ Win10 เพื่อให้นักพัฒนาใช้สิ่งที่ต้องการ TortoiseSVN / GIT ซ้อนทับเหล่านี้มีความสำคัญและความจริงที่ว่ามีเพียงหนึ่งสามารถแสดงเหตุผลว่าทำไม
Alex McMillan

2
จากทุกสิ่งที่ Windows 10 พัง @Alex อันนั้นค่อนข้างไกลจากรายการของฉัน การตัดสินใจที่จะป้องกัน OneDrive กับผู้ใช้เป็นการตัดสินใจของฝ่ายการตลาดไม่ใช่ทีมเชลล์ ไม่มีใครจัดงบประมาณเวลาและเงินเพื่อกลับไปปรับปรุงรายการภาพเปลือกหอยเพื่อให้ใช้งานง่าย
โคดี้เกรย์

6
นี่ไม่ใช่คำตอบที่ยอมรับได้ ฉันรู้ว่าส่วนหนึ่งมาจาก Microsoft เองดังนั้นการยอมรับไม่ได้มีไว้สำหรับแนวทางของ Microsoft ดูตัวอย่างของฉัน: ฉันได้ซิงค์โฟลเดอร์ของ DropBox, Google Drive, Mega, OneDrive และ Tortoise SVN แล้วและฉันอยากเห็นภาพซ้อนทับทั้งหมดอย่างถูกต้องในทุกโฟลเดอร์ แต่ฉันทำไม่ได้เพราะข้อ จำกัด ที่โง่เขลานี้
Carlos B.Feitoza Filho

13

การตอบสนองที่ดีเยี่ยมในประเด็นการปฏิบัติโดย Cody สาเหตุที่ 15 ไม่ใช่จำนวนอื่นขีด จำกัด จะถูกรวมไว้ในตัวควบคุมImageList


4

ทั้งหมดนี้เป็นสิ่งที่ดีและดีตามที่ Cody Grey อธิบายไว้ แต่ตรงไปตรงมามันเป็นเรื่องที่ไม่น่าแปลกใจเลยและตามรายงานเบื้องหลังทำให้ฟังดูหงุดหงิดเล็กน้อย

ในปี 2015 และด้วย Windows 10 แน่นอนว่ามีความสามารถที่ดีกว่าและต้องมีความสามารถที่ดีกว่านี้อย่างที่ฉันสังเกตเห็นว่ามีการวางซ้อนประมาณสามสิบแบบและต้องจัดลำดับความสำคัญของสิ่งที่ฉันอยากเห็นมากที่สุดซึ่งไม่ใช่สิ่งที่คุณต้องการให้คนส่วนใหญ่กังวลเลย นอกจากนี้ฉันยังเห็นผู้ขายที่ก้าวร้าวเช่น Box แข่งขันกันมากเกินไปเพื่อพยายามจัดลำดับความสำคัญของตัวเองและนั่นจะไม่ไปที่ใดก็ได้

นี่คือความเป็นไปได้: จะเกิดอะไรขึ้นถ้าไอคอนที่ซ้อนกันแบบคูณมีตัวบ่งชี้การซ้อนทับทั่วไป เมทริกซ์สี่เหลี่ยมผืนผ้าขนาดเล็กที่มีหลายสีเช่นปุ่ม Google Chrome Apps? การซ้อนทับแบบเดี่ยวจะแสดงภาพซ้อนทับจากรายการยาว ๆ

จากนั้นเมื่อตัวชี้เมาส์ตรงกับไอคอนหน้าต่างลอยขนาดเล็กจะรวบรวมรูปแบบไอคอนทั้งหมดเพื่อดู (ที่ไอคอนขนาดเล็กหรือใหญ่กว่าเล็กน้อย) ไอคอนที่วางซ้อนกันแต่ละไอคอนจะประกาศโดยคำแนะนำเครื่องมือว่ามันคืออะไรเมื่อคุณวางเมาส์เหนือ

ตอนนี้คุณสามารถมีไอคอนซ้อนทับทั้งหมดที่คุณต้องการสำหรับสถานะในคลาวด์ต่างๆสำหรับการบ่งชี้ที่เก็บสำหรับเครื่องมือ Tortoise และอื่น ๆ


2
แนวคิดเบื้องหลังการวางซ้อนคือคุณควรจะสามารถระบุสถานะของวัตถุภายใต้การสังเกตได้ "โดยสรุป" แผนของคุณในขณะที่สร้างสรรค์จะต้องใช้ "มือบนแป้นพิมพ์หรือเมาส์" เพื่อแสดงข้อมูล ไม่ใช่ว่าฉันมีทางออกที่ดีกว่า ...
rbellamy

หากต้องอยู่ในหน้าต่างแบบลอยตัวทำไมไม่ใส่ข้อมูลในแถบข้อมูลหรือบานหน้าต่างแสดงตัวอย่างหรือที่อื่น ๆ ใน UI จุดรวมของไอคอนซ้อนทับคือไอคอนเหล่านี้ถูกซ้อนทับและมองเห็นได้ในพริบตา
โคดี้เกรย์
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.