انجمن‌های فارسی اوبونتو

لطفاً به انجمن‌ها وارد شده و یا جهت ورود ثبت‌نام نمائید

لطفاً جهت ورود نام کاربری و رمز عبورتان را وارد نمائید


ارائه ۲۴٫۱۰ اوبونتو منتشر شد 🎉

نویسنده موضوع: متمرکز کردن منابع سیستم به یک پروسه برای سریع‌تر انجام دادن اون  (دفعات بازدید: 1492 بار)

0 کاربر و 1 مهمان درحال مشاهده موضوع.

آفلاین atralheaven

  • Jr. Member
  • *
  • ارسال: 47
سلام دوستان
جایگشت یادتون هست چی بود؟ طریقه‌های مختلف چیدن n شئ کنار هم می‌شد جایگشت اون n شئ. حالا فرض کنید من قصد دارم کلیه‌ی شکل‌های مختلف چینش یه تعداد حروف کنار هم رو داشته باشم. مثلا اگه حروف باشن abcd نتیجه‌ی من می‌شه:
abcd, abdc, acbd, acdb, adbc, adcb, bacd, badc, bcad, bcda, bdac, bdca, cabd, cadb, cbad, cbda, cdab, cdba, dabc, dacb, dbac, dbca, dcab, dcba.
که این نتیجه رو این‌طوری حساب کردم:
perm() {
  local items="$1"
  local out="$2"
  local i
  [[ "$items" == "" ]] && echo "$out" && return
  for (( i=0; i<${#items}; i++ )) ; do
    perm "${items:0:i}${items:i+1}" "$out${items:i:1}"
    done
  }
while read line ; do perm $line ; done < in.text > out.text

حالا وقتی که این حروف تعدادشون بیشتر باشه پروسه‌ی حساب کردن‌شون خیلی طول می‌کشه (چون تعداد حالت‌های ممکن خیلی زیاده) حالا چه‌طور می‌تونم با اختصاص دادن درصد بیشتری از منابع سیستم به این کار یا انجام این کار به روش درست‌تر (شاید بشه به‌جای این که دونه دونه محاسبه کنه محاسبه‌ها رو به شکل موازی چند تا چند تا انجام بده یا چنین چیزی؟) سرعت کار رو افزایش بدم؟ فکر نکنم برای کامپیوترهای امروزی کار سختی باشه! مطمئنا اگه روش کار مناسب‌تر باشه یا منابع بیشتری بهش اختصاص داده بشه نباید زیاد طول بکشه. این جریان واسم بیشتر برای یادگیری هست و از روی کنجکاوی :) اگه یادبگیرم تو موارد مشابه بعدا کارم سریع راه میوفته. مرسی عزیزان!

آفلاین ali.abry

  • High Hero Member
  • *
  • ارسال: 1224
با بالا بردن اولویت یک پروسس میتونین بهش اجازه بدین که همیشه بیشترین  cpu در اختیار اون پروسس قرار قرار بگیره .
البته ابنو در نظر داشته باشین تا زمانی که پروسس دیگه ای به جز اون پروسس مد نظر شما نیاد cpu اشغال بکنه اولوبت کاری انجام نمیده درواقعاولویت  اون پروسس های دیگه رو میزاره تو صف و به شما اجازه میده که پروسستون زود تر بیاد کارشو انجام بده .
با دستور nic و renic میشه این کار رو کرد. با top هم میشه این کار رو کرد .
http://30li.ir/bash/commands/nice
http://30li.ir/bash/commands/top

این قسمت رو مطمعن نیستم چون نمیدونم سرعت تولید اطلاعات چه قدر هستش ولی اگر سرعت تولید اطلاعات از سرعت نوشتن هاردتون بیشتر بود میتونین محل ذخیره شدن رو داخل رم تعیین کنین که مشکلی نداشته باشین.

آفلاین doomhammer65ir

  • High Hero Member
  • *
  • ارسال: 1572
  • جنسیت : پسر
    • IRAN Backup

آفلاین atralheaven

  • Jr. Member
  • *
  • ارسال: 47
من این رو گوگل کردم پیدا کردم خودم ننوشتمش. احیانا نمی‌دونید چه‌طور می‌شه جایگشت‌های n حرفی یه سری حروف رو بدست آورد؟ مثلا از بین 1234567890 تمام کدهای «۴حرفی» «غیر تکراری» رو تو یه فایل خروجی بنویسه. مثلا 1234, 1235, 1236 و...
درضمن این دستور nice خیلی کمک کرد الان حدود ۳۰ دقیقه گذشته نزدیک ۹ ملیون کد پیدا کرده! تقریبا داره از کل یکی از هسته‌های سی‌پی‌یو استفاده می‌کنه، خیلی جالبه.

آفلاین ali.abry

  • High Hero Member
  • *
  • ارسال: 1224
من این رو گوگل کردم پیدا کردم خودم ننوشتمش. احیانا نمی‌دونید چه‌طور می‌شه جایگشت‌های n حرفی یه سری حروف رو بدست آورد؟ مثلا از بین 1234567890 تمام کدهای «۴حرفی» «غیر تکراری» رو تو یه فایل خروجی بنویسه. مثلا 1234, 1235, 1236 و...
درضمن این دستور nice خیلی کمک کرد الان حدود ۳۰ دقیقه گذشته نزدیک ۹ ملیون کد پیدا کرده! تقریبا داره از کل یکی از هسته‌های سی‌پی‌یو استفاده می‌کنه، خیلی جالبه.

این دستور هم هست خودم تاحالا باهاش کار نکردم
http://unix.stackexchange.com/questions/23106/limit-process-to-one-cpu-core

آفلاین atralheaven

  • Jr. Member
  • *
  • ارسال: 47
من این رو گوگل کردم پیدا کردم خودم ننوشتمش. احیانا نمی‌دونید چه‌طور می‌شه جایگشت‌های n حرفی یه سری حروف رو بدست آورد؟ مثلا از بین 1234567890 تمام کدهای «۴حرفی» «غیر تکراری» رو تو یه فایل خروجی بنویسه. مثلا 1234, 1235, 1236 و...
درضمن این دستور nice خیلی کمک کرد الان حدود ۳۰ دقیقه گذشته نزدیک ۹ ملیون کد پیدا کرده! تقریبا داره از کل یکی از هسته‌های سی‌پی‌یو استفاده می‌کنه، خیلی جالبه.

این دستور هم هست خودم تاحالا باهاش کار نکردم
http://unix.stackexchange.com/questions/23106/limit-process-to-one-cpu-core
از این نظر مشکلی نیست، سیستم کند نشده، الان هم داره از یکی از هسته‌ها استفاده می‌کنه. فعلا دنبال جایگشت‌های ۴ حرفی هستم... راستش تو حل کردن این روی کاغذ هم تا اون‌جایی که یادم میاد مشکل داشتم!