PDA

View Full Version : سوال: چطور زمان اجرای برنامه رو کاهش بدم؟



root88
پنج شنبه 16 تیر 1390, 22:18 عصر
سلام،
من یه برنامه با ترد نوشتم اما زمان اجراش اصلا مطلوب نیست و کارایی که من می خوام رو نداره. در حالی که برنامه تک ترده کارایی خیلی بهتری دشته. نمی دونم چیکار کنم که کارایی برنامه بالا بره لطفا راهنمایم کنید.

FastCode
جمعه 17 تیر 1390, 00:08 صبح
من میدونم.فقط باید قول بدی به کسی نگی.
باید کد برنامت رو بزاری اینجا. و دقیقتر توضیخ بدی که چکار داری میکنی.
در شرایط فعلی پیشنهاد من اینه که CPU کامپیوترتون رو عوض کنید چون ۱۰۰٪ تاثیر میزاره.

glassysmart
جمعه 17 تیر 1390, 11:33 صبح
سلام
میشه نمونه گرافت را هم بگذاری

root88
جمعه 17 تیر 1390, 13:58 عصر
این یه گراف نمونه است.

FastCode
جمعه 17 تیر 1390, 22:36 عصر
تا اونحایی که من حدث زدم.وقتی گراف رو تشکیل میدید دیگه تغییر نمیدید.ولی با این حال از mutex استفاده کردید.
اگر اشتباه میکنم تصحیح کنید.
یک مقدار هم راجع به کد بیشتر توضیح بدید کمک میکنه.

root88
جمعه 17 تیر 1390, 23:05 عصر
برنامه از گراف ورودی داده ها رو می خونه و برای هر نود لیست نودهای همسایه شو که در واقع یک سطر از فایل ورودی هست قرار میده و به رکدوم از این نودها یه احتمال انتخاب میده. مثلا اگه نود صفر 5 تا گره همسایه داره احتمال همه رو بیست درصد یا یک پنجم میذاره. گره 0 ، k تا از نودهای همسایه شو رو به تصادف انتخاب میکنه و برای هر کدوم یه ترد جداگانه میسازه تا هر کدم مسیرهای رو به اون نودهایی که در لیست R داره پیدا کنه. هر کدوم از اون k تا گره که انتخاب شدن هم لیست همسایه های خودشونو چک میکنه تا ببینه که آیا عنصری از لیست R در همسایگی شون هست تا حذفش کنن یا نه و اگه لیست R خالی نشده باشه یکی از نودهای همسایه شون رو به تصادف انتخاب میکنن.
در پایان اگر تعداد نودهایی که انتاخب شدن از مقدار اولیه کمتر باشه اونوقت احتمال مربوط به اونا رو بالا میبرین و در غیر این صورت کم میکنن.

glassysmart
شنبه 18 تیر 1390, 11:20 صبح
سلام
حرف من را جدی نگیر من تجربه و علم زیادی در کار با ترد ها ندارم مشکل اصلی برنامه شما در تابع زیرهست به طوری که 85 درصد وقت صرف شده در این تابع رخ می دهد . به نظر من شما یا ترد هاتون را باید از نتیجه ترد های دیگر جدا کنید یا بیخیال مولتی ترد شوید

root88
یک شنبه 19 تیر 1390, 13:57 عصر
منم خیلی با ترد کار نکردم . منظور شما رو که نتیجه رو از بقیه تردها جدا کنم چیه؟ من یه شی دارم که همه باید بتونن ازش استفاده کنن یا تغیرش بدن.