توضیح دوات: این روزها، در توسعه وب، عملکرد ادراک شده کاملا متر و معیار دارد (مانند زمان اولین پاسخ سرور و غیره). با این همه دانستن نمونههای قدیمی و اولیه از این نوع کارایی خالی از لطف نیست.
اگر از ویندوز ویستا استفاده کردهاید، احتمالاً متوجه شدهاید که عملکرد کپی فایل در ویستا بهطور محسوسی از ویندوز XP کندتر است. این یکی از اولین مواردی بود که من متوجه شدم. اما نکته جالب این است که کپی فایل ویستا بر اساس یک الگوریتم بهبودیافته ساخته شده و در بیشتر موارد نسبت به XP عملکرد بهتری دارد. پس چرا به نظر میرسد که خیلی کند است؟
بیایید با تحلیل دقیق و جامع مارک راسینوویچ (Mark Russinovich) از الگوریتم کپی فایل ویستا شروع کنیم:
شاید بزرگترین ضعف [الگوریتم جدید کپی فایل ویستا]، و موردی که باعث شده بسیاری از کاربران ویستا شکایت کنند، این است که برای کپیهایی که شامل گروه بزرگی از فایلها با اندازه بین ۲۵۶ کیلوبایت و چندین مگابایت هستند، عملکرد ادراکشده کپی میتواند بهطور قابلتوجهی از ویندوز XP بدتر باشد. دلیل آن این است که استفاده از I/O فایلهای ذخیرهشده در الگوریتم قبلی، به اکسپلورر (Explorer) اجازه میدهد که نوشتن فایلهای مقصد در حافظه را به پایان برساند و قبل از اینکه رشته نوشتن از طرف مدیر کش دادهها (Cache Manager) واقعاً دادهها را به دیسک منتقل کند، پنجره کپی را ببندد. اما در پیادهسازی بدون کش ویستا، اکسپلورر مجبور است برای هر عملیات نوشتن صبر کند تا کامل شود و در نهایت برای تمام دادههای کپیشده صبر کند تا به دیسک نوشته شوند و سپس اتمام کپی را اعلام کند. همچنین، در ویستا، اکسپلورر ۱۲ ثانیه قبل از ارائه تخمین زمان کپی صبر میکند و الگوریتم تخمین به تغییرات سرعت کپی حساس است، که هر دو باعث افزایش نارضایتی کاربران از کندی کپی میشود.
همانطور که مارک بهطور طعنهآمیز اشاره میکند، کپی فایل به آسانی که به نظر میرسد نیست. مثل بسیاری از چیزها در زندگی، ادراک واقعیت است: اگر کاربران کپی فایل را کندتر ببینند، در واقع کندتر است. با وجود تمام بهبودهای الگوریتمی و نتایج بهتر بنچمارک کپی فایل، عملکرد کپی فایل ویستا از ویندوز XP بدتر به نظر میرسد.
نمیتوانم نمونه بهتری از این راز کوچک عوامل انسانی پیدا کنم: عملکرد ادراکشده مهمتر از عملکرد واقعی است. الگوریتمهای پیچیده کپی لزوماً به شما در ساخت یک نوار پیشرفت سریع کمک نمیکنند، اما درک نحوه عملکرد مغز کاربران شما قطعاً کمک میکند، همانطور که در مقاله بازنگری نوار پیشرفت نشان داده شده است:
انسانها گذر زمان را بهطور خطی درک نمیکنند. این موضوع، به همراه رفتار نامنظم نوارهای پیشرفت، باعث میشود که ادراک انسان از مدت زمان فرآیند متغیر باشد. درک رفتارهایی که ادراک مدت زمان فرآیند را کوتاهتر یا طولانیتر میکنند، میتواند برای طراحی نوار پیشرفتی که سریعتر به نظر میرسد، استفاده شود، حتی اگر مدت زمان واقعی تغییر نکند. این مقاله یک آزمایش را توصیف میکند که به دنبال شناسایی الگوهای درک کاربران از رفتار نوار پیشرفت بود. سپس نتایج برای طبقهبندی رفتارهایی که بهطور ادراکی اجرای فرآیند را تسریع یا کند میکنند، تحلیل میشوند.
این مطالعه (pdf) از هشت تابع رفتاری پیشرفت استفاده کرده و واکنش کاربران به هر یک را پیگیری کرده است.
اگرچه تمام نوارهای پیشرفت در این آزمون دقیقاً یک مدت زمان داشتند، دو ویژگی باعث شد کاربران فکر کنند که فرآیند سریعتر است، حتی اگر واقعاً اینطور نبود:
- نوارهای پیشرفتی که بهصورت روان به سمت تکمیل حرکت میکردند.
- نوارهای پیشرفتی که در انتهای فرآیند سرعت میگرفتند.
در نگاه به گذشته واضح است که چرا طراحی کپی فایل ویستا بهشدت ناکام ماند و نیاز به اصلاح در Service Pack 1 داشت. این نمونهای کلاسیک از اصول این پژوهش است:
- اکسپلورر ۱۲ ثانیه صبر میکند تا تخمینی از مدت زمان کپی ارائه دهد، که قطعاً هیچ حس پیشرفت روانی ایجاد نمیکند.
- پنجره کپی تا زمانی که رشته نوشتن دادهها را به دیسک منتقل نکرده باشد بسته نمیشود، که به این معناست که کپی در پایان کندتر است.
این ایده که عملکرد عمدتاً توسط درک کاربر و نه زمان واقعی تعیین میشود میتواند آزادیبخش باشد. مثل یک شعبدهباز که با ترفندهای هنرمندانه جادو میکند، میتوانید بهطور ظاهری واقعیت را تغییر دهید. اما این موضوع میتواند ناامیدکننده هم باشد. حتی اگر بخشهای فنی را درست انجام دهید و دادههای بنچمارک قوی داشته باشید، عوامل ظریف ادراکی انسانی میتوانند کارتان را بیاعتبار کنند، همانطور که آن توسعهدهندگان بدشانس ویستا تجربه کردند. یک توسعهدهنده چه کار باید بکند؟
اما آیا هر دوی ما نکته واقعی مالکیت و استفاده از یک کامپیوتر شخصی را از دست ندادهایم؟ آیا هر اندازهگیری مبتنی بر کرنومتر از وظایف جداگانه که توسط اجزای سختافزاری و نرمافزاری انجام میشود، واقعاً میتواند ارزش سرمایهگذاری در فناوری را بسنجد؟ من فکر نمیکنم.
این سوال جدیدی برای من نیست. در اوایل دهه ۱۹۹۰، وقتی سردبیر مجله PC Computing بودم، تفاوت نقدهای ما با مجله خواهرمان، PC Magazine، این بود که ما بر قابلیت استفاده تمرکز داشتیم. PC Magazine با لابراتوارهای معروف خود بیشتر به “سرعت و مشخصات فنی” میپرداخت. ما بر قابلیت استفاده تمرکز کردیم و حتی یک لابراتوار پیشرفته قابلیت استفاده ساختیم و حرفهایهای این حوزه را استخدام کردیم.
اشتباه تیم توسعه ویستا را تکرار نکنید. بهجای تکیه صرف به بنچمارکها، به درک کاربر از فرآیند هم توجه کنید. من مطالعه Tog با عنوان “حداکثرسازی عملکرد انسانی” را بهعنوان یک نقطه شروع عالی توصیه میکنم.