تبلیغات :
خرید فالوور ایرانی
خرید فالوور اینستاگرام
خرید ممبر تلگرام
خرید لپ تاپ استوک
ماهان سرور
آکوستیک ، فوم شانه تخم مرغی ، پنل صداگیر ، یونولیت
دستگاه جوجه کشی حرفه ای
فروش آنلاین لباس کودک

[ + افزودن آگهی متنی جدید ]




صفحه 1 از 2 12 آخرآخر
نمايش نتايج 1 به 10 از 17

نام تاپيک: Out Of System Resources

  1. #1
    اگه نباشه جاش خالی می مونه CPUSatan's Avatar
    تاريخ عضويت
    Oct 2007
    محل سكونت
    Tehran
    پست ها
    246

    14 Out Of System Resources

    از یه کامپوننتی تو برنامم استفاده کردم که هروقت فایلی رو باز می کنه بعد از باز کردن یه فایل جدید، حافظه ای رو که فایل قبلی اشغال کرده بود آزاد نمی کنه، بعد از چند بار فایل باز کردن با مشکل Memor Leak با خطلای Out Of System Resources مواجه می شه. حتی کامپوننت رو هم Free می کنم باز هم اون فضا آزاد نمی شه.
    برای حل این مشکل کسی می تونه کمکم کنه؟ چجوری می تونم حافظه اشغال شده رو آزاد کنم؟
    بچه ها مشکلم خیلی جدی، برنامه رو فروختم ولی با وجود این مشکل کار نمی کنه.
    اینترنت رو هم خوردم ولی چیزی که بدردم بخوره نتونستم پیدا کنم.
    مرسی

  2. #2
    اگه نباشه جاش خالی می مونه CPUSatan's Avatar
    تاريخ عضويت
    Oct 2007
    محل سكونت
    Tehran
    پست ها
    246

    پيش فرض

    کسی کمکی از دستش بر نمیاد؟

  3. #3
    پروفشنال romixery's Avatar
    تاريخ عضويت
    Mar 2007
    محل سكونت
    ميون موجودات عجيب غريب(آدما)
    پست ها
    673

    پيش فرض

    دقيقاً از چه كامپوننتي استفاده كردين؟ Exception رو جهت كنترل خطا امتحان كردين يا نه؟

  4. #4
    اگه نباشه جاش خالی می مونه CPUSatan's Avatar
    تاريخ عضويت
    Oct 2007
    محل سكونت
    Tehran
    پست ها
    246

    پيش فرض

    کامپوننت برای CAD هستش، کنترل خطا توش به کار بردم. مشکل من کنترل خطا نیست، مشکل حافظه ای هستش که می گیره و نمی داره ادامه برنامه انجام بشه. اون حافظه رو باید چجوری خالی کنم؟؟؟

  5. #5
    پروفشنال romixery's Avatar
    تاريخ عضويت
    Mar 2007
    محل سكونت
    ميون موجودات عجيب غريب(آدما)
    پست ها
    673

    پيش فرض

    عجيبه. آخرش هم نام دقيق كامپوننت رو نگفتين. چرا؟ آيا از كامپوننتهاي CADxp ساخت شركت Crystal Component‌استفاده مي‌كنيد؟
    1- اينترنت رو براي اشكالي مشابه جستجو كنيد، احتمال بسيار زياد بايد براي بقيه هم اتفاق افتاده باشه. در غير اينصورت كدي كه نوشتين مشكل داره. شك نكنيد.
    2- آيا آخرين نسخه كامپوننت رو دانلود كردين و استفاده مي كنيد؟
    3- آيا به سورس كامپوننت دسترسي دارين يا كامپوننت رو با فايلهاي DCU فقط دارين؟

  6. #6
    اگه نباشه جاش خالی می مونه CPUSatan's Avatar
    تاريخ عضويت
    Oct 2007
    محل سكونت
    Tehran
    پست ها
    246

    پيش فرض

    کامپوننت PowerCAD هستش
    آخرین ورژنش
    هست
    اینترنت هم گشتم
    از کد خودم مطمئنم و میدونم باگ این کامپوننت هستش، وقتی فایلی رو باز می کنه تا موقع بسته شدن برنامه که خود سیستم عامل حافظه رو خال کنه خودش خافظه رو خالی نمی کنه.

    ---------- Post added at 01:23 AM ---------- Previous post was at 01:22 AM ----------

    روشی هست که دستی بتونم حافظه رو خالی کنم؟؟

  7. #7
    حـــــرفـه ای F A R H A D's Avatar
    تاريخ عضويت
    Aug 2006
    پست ها
    1,383

    پيش فرض

    سلام
    روشی هست که دستی بتونم حافظه رو خالی کنم؟؟
    بله. برنامه ای که شما نوشتید بعد از اتمام leak memory به جا میزاره. شما در یک بلوک try..finally فضای اختصاص داده شده به متغیرها رو پس بگیرید. در صورتی که باز هم نتیجه نگرفتید لینک زیر رو ببینید:
    [ برای مشاهده لینک ، با نام کاربری خود وارد شوید یا ثبت نام کنید ]
    اگر اطلاعات بیشتری خواستید هم garbage collector رو برای دلفی جستجو کنید.
    شاد باشید

  8. این کاربر از F A R H A D بخاطر این مطلب مفید تشکر کرده است


  9. #8
    اگه نباشه جاش خالی می مونه CPUSatan's Avatar
    تاريخ عضويت
    Oct 2007
    محل سكونت
    Tehran
    پست ها
    246

    پيش فرض

    فرهاد جان، این مقاله رو قبلا دیده بودم. توش فقط در مورد کنترل حافظه توضیح داده شده، من دنبال دستوری برای خالی کردن حافظه هستم نه بلاک ها. من دارم از بلاک ها استفاده می کنم تو برنامم. ولی وقتی یه کامپوننت حافظه رو می گیره، خودش هم باید آزادش کنه، حالا که خودش آزاد نمی کنه من باید یه جوری حافظه رو خالی کنم، یا بفهمم چه آدرس هایی از حافظه رو گرفته و من اونها رو خالی کنم، در غیر این صورت کل حافظه رو خالی کنم که این روش دوم روش زیاد سالمی نیست، ولی خوب مجبورم!
    امیدوارم متوجه منظورم شده باشی، چون فکر می کنم تو مطلب های قبلی درست متوجه منظورم نشدی.
    مرسی از کمک هات

  10. #9
    پروفشنال romixery's Avatar
    تاريخ عضويت
    Mar 2007
    محل سكونت
    ميون موجودات عجيب غريب(آدما)
    پست ها
    673

    پيش فرض

    garbage collector رو برای دلفی جستجو کنید
    البته بايد بگم كه دلفي، چيزي به صورت garbrage collector رو به اون صورت كه شما فكر مي كنيد نداره. garbrage collector بيشتر در زبانهايي كه Visual Machine دارن پياده سازي شده مثل جاوا. چون سيستم عامل اون فضا رو به طور مستقيم نمي گيره. ولي كلاً به فرايند، آزاد سازي فضا، علامت زدن فضا به عنوان حافظه قابل دسترس سيستم عامل و بازگشت اون به سيستم عامل نيز garbrage collection مي گن.
    CPUSatan عزيز، مي تونيد به من بگين شما بر چه اساسي مي گين وقتي حتي شئ رو Destroy مي كنيد، حافظه اي خالي نميشه؟ مي خوام ببينم شما مطمئنيد كه حافظه خالي نميشه؟
    بزارين مسئله رو يه بار ديگه مرور كنيم.
    1- كامپوننت شما بعد از لود چند فايل «احتمالاً پشت سر هم» با خطاي Out of system resources رخ ميده.
    2- بعد از فراخواني متد Free و يا Destroy ، حافظه خالي نميشه
    3- به سورس كامپوننت دسترسي ندارين.
    خوب اينجا چند تا سؤال برام پيش مياد.
    1- هر فايل چقدر فضا از كامپيوتر شما مي گيره. دقيقاً ذكر كنيد كه بعد از فراخواني چند مگابايت فايل، چند مگابايت از فضاي Ram شما پر ميشه؟
    2- كل فضاي Ram شما چقدر هست؟
    يك پيشنهاد:
    براي امتحان بياين و كل فرمتون كه توي اون، كامپوننتي كه فايلها رو لود مي كنه، رو Destroy كنيد. ببينيد فضايي خالي ميشه يا نه. شايد اين كامپوننت وابسته به Parent خودش باشه.
    نمي دونم، ولي به نظر من مرور دوباره مسئله، با داشته ها و نداشته ها، مي تونه به حل مسئله بيشتر كمك كنه.

  11. #10
    حـــــرفـه ای F A R H A D's Avatar
    تاريخ عضويت
    Aug 2006
    پست ها
    1,383

    پيش فرض

    توش فقط در مورد کنترل حافظه توضیح داده شده
    بیشتر بررسی کنید. مخصوصا مورد 2 و 3. همچنین اگر تونستید ابزار MemProof رو تهیه کنید. برای مشاهده ی پردازش ها مفید هست
    وقتی یه کامپوننت حافظه رو می گیره، خودش هم باید آزادش کنه، حالا که خودش آزاد نمی کنه من باید یه جوری حافظه رو خالی کنم
    اگر سورس دارید باید متد های destructor رو ببینید و کنترل کنید که آیا به درستی عمل میکنند یا خیر.
    چيزي به صورت garbrage collector رو به اون صورت كه شما فكر مي كنيد نداره
    به چه صورتی فکر میکنیم!؟ مگه من گفتم که garbage collector داره؟ garbage collector یا GC یکی از امکانات .net frameWork هست، پس در دلفی 7 وجود نداره
    در google عبارت delphi garb.... رو که بنویسید، delphi garbage collector و delphi garbage collection رو خواهید دید و در نتیجه کد های زیادی برای پیاده سازی garbage collector در دلفی خواهید یافت.

  12. این کاربر از F A R H A D بخاطر این مطلب مفید تشکر کرده است


صفحه 1 از 2 12 آخرآخر

Thread Information

Users Browsing this Thread

هم اکنون 1 کاربر در حال مشاهده این تاپیک میباشد. (0 کاربر عضو شده و 1 مهمان)

User Tag List

قوانين ايجاد تاپيک در انجمن

  • شما نمی توانید تاپیک ایحاد کنید
  • شما نمی توانید پاسخی ارسال کنید
  • شما نمی توانید فایل پیوست کنید
  • شما نمی توانید پاسخ خود را ویرایش کنید
  •