(۰۵-مرداد-۱۳۸۸, ۱۵:۵۸:۰۴)Scorpion نوشته است: [ -> ]ددوستانی هم که بحث thread کردن من فکر نمیکنم ربطی داشته باشه این عمل I/O هست نه CPU process که بخواد مصرف پردازنده داشته باشه
اگر میگفتیم سرعت هارد 10 برابر بود این کار زود انجام میشد درست بود اما اگر همین سرعت رو به cpu اضافه میکردیم فرق چندانی حاصل نمیشد.
نرم افزار شما برای استفاده از هارد، مستقیماً کار نمی کنه، بلکه درخواستشو به CPU می فرسته.
اگه بخواین دونه دونه فایل ها رو بشمرین، سرعت کمه ولی اگه 10 تا 10 تا بشمرین، سرعت می ره بالا و این یعنی Multi Thread، یعنی فایل ها به 10 دسته تقسیم بشن و هر Thread تعداد یه دسته رو بشمره!
(۰۵-مرداد-۱۳۸۸, ۱۸:۲۰:۱۵)Payman62 نوشته است: [ -> ]درسته. به همین دلیله که چراغ هارد روشن میشه ولی کارکرد سی پی یو پایینه.
پیمان جان، وقتی از یه فولدر که تعداد فایل هاش زیاده Properties می گیری، Task Mgr رو باز کنن ببین سی پی یو چه قدر نوسان پیدا می کنه!!!
راستی یه نکته رو در تکمیل حرف های قبلی بگم:
وقتی از یه فولدر (مثلاً C:\Windows)، که تعداد فایلهاش زیاده، Properties می گیرین، یه زمانی طول می کشه تا جواب نهایی رو اعلام کنه و تعداد فایل هایی که شمرده افزایش پیدا می کنه(یعنی اینطوری نیست که درجا به شما یه عدد بده) این موضوع نشون می ده که ویندوز داره دونه دونه فایل ها رو می شمره، ولی تعداد فایل های شمرده شده یه دونه یه دونه بالا نمی ره، 100 تا 100 تا بالا می ره و دوباره این یعنی Multi Thread
بله منم دیدم که چندتایی بالا میره
به هرحال روشش یرام مهم نیست این که من بتونم بهش برسم مهمه
1 هفته تو اینترنت دارم میگردم ولی چیزی ندیدم
من میخوام درایوی رو اسکن کنم و قبلش کل فایلهارو بدونم و مقدار ماکزیمم progressbar رو باید ست کنم تا درصد درست برحسب اسکن هر فایل نشون بده
پروژه یه انتی ویروسه
من از McAfee استفاده می کنم
وقتی می خوام یه درایو رو اسکن کنم، اولش به جای نشون دادن Progress bar، می نویسه که داره تعداد فایل ها رو می شمره و این قضیه بسته به تعداد فایل ها حتی بعضی موقع ها تا 20 دقیقه طول می کشه.
آره منم واسه همین میخوام سریع تر بشه
من نود دارم سریع میشمره البته نشون نمیده اما شروع به کارش سریعه
این API ها رو تست کردی؟
کد:
FindFirstFile
FindNextFile
FindClose
سلام.
اینا که تعداد نمیده.
نه نکردم
اگر مطمئن هستید بگید با اما و اگر که من تاحالا به جایی نرسیدم
حتی به ساپورت نود هم ایمیل دادم
اونهاهم مثل اینکه روبات جوابگو باشند جواب کلیشه ای دادند که ربطی هم نداشت
نقل قول: سلام.
اینا که تعداد نمیده.
نه تعداد نمیده،
نقل قول: نه نکردم
اگر مطمئن هستید بگید با اما و اگر که من تاحالا به جایی نرسیدم
حتی به ساپورت نود هم ایمیل دادم
اونهاهم مثل اینکه روبات جوابگو باشند جواب کلیشه ای دادند که ربطی هم نداشت
زیاد مطمعن نیستم ولی فکر نمیکنم بتونی همچین تابعی پیدا کنی که تعداد فایلها رو بده ، حالا باز میگم اینی که گفتم دقیق نیست
همین explorer.exe هم از اون API ها استفاده میکنه، من با همین API ها یه تابع تو C نوشتم به صورت بازگشتی
که تعداد فایل و فوللدر رو بدست میاره سرعتش تقریبا مثل همون properties هست
مثلا یه پوشه که حدود 67 هزار فایل و پوشه توش بود رو تو 2-3 ثانیه تعدادشو بدست آورد
وی بی خیلی وقته کار نکردم زیاد تو مود کار باهاش نیستم ولی اگه با C مشکل نداری سورسشو بزارم،
تابعی که تعداد فایلها رو بده وجود نداره propertise هم تقریبا از توابعی که جناب hoax3r عزیز فرمودن استفاده میکنه چون ساختار این توابع طوری هست که شما میتونین نوع فایل و فولدر رو جدا کنین
من یه search نوشته بودم البته از 1 ترد استفاده کرده بودم چون سرعت جستجو بالا هست برنامه حالت hang به خودش نگیره (هارد 80 رو تو 50 ثانیه کل فایلها و فولدرهاشو چه سیستمی چه غیر سیستمی لیست کردحدود 28000 فایل)ولی شما میتونی تابع جستجوی تو پوشه رو تو 1 ترد بزاری و تو یه تابع بازگشتی لیست پوشه ها رو به این تابع ترد پاس بدی(قبلا جناب veyskarami بهم گفته بود که تونسته 2048 تا ترد ایجاد کنه)خب زمان شمارش فایلهای پوشه ها تو هر سایکل CPUبین این ترد ها تقسیم میشه
سلام
ممکنه این بدردت بخوره