View Full Version : بدست آوردن مقدار حافظه آزاد
Sepidar
یک شنبه 10 دی 1385, 11:32 صبح
سلام
تابع استاندارد بدست آوردن مقدار حافظه آزاد چیه؟ :خجالت:
Inprise
یک شنبه 10 دی 1385, 11:53 صبح
به منظورت از "حافظه" بستگی داره .
Sepidar
یک شنبه 10 دی 1385, 12:19 عصر
heap
میخوام ببینم چند عنصر از یه موجودیت خاص رو میتونم روی حافظه پویا allocate کنم
یا اینکه حافظه پویای آزاد الان چه مقدار است و من تا کنون چهع مقدار از اون رو مصرف کرده ام
Asad.Safari
یک شنبه 10 دی 1385, 12:22 عصر
منم یه مدت روش کار کردم ولی خیلی مشکل بود !
چون سیستم عامل قسمتی از ram رو protect میکنه چون خودش از اون قسمت استفاده میکنه !
فکر کنم شما اگر خونه هایی که مقدارشون صفر است رو در بیارید حافظه های آزادتون بیاین بیرون !
موفق باشید
american_iran2006
یک شنبه 10 دی 1385, 15:34 عصر
تو خونه های ازاده حافظه چه کاراکتری ایت یا بهتر بگهم ایا مقداری توش هست یا نه
اگه هست اون مقدار چیه
:::::::::::::::::::::::::::::::::::::::::::::::::: ::::::::::::::::::::::::::::::::::::
Asad.Safari
یک شنبه 10 دی 1385, 16:34 عصر
تو خونه های ازاده حافظه چه کاراکتری ایت یا بهتر بگهم ایا مقداری توش هست یا نه
اگه هست اون مقدار چیه
:::::::::::::::::::::::::::::::::::::::::::::::::: ::::::::::::::::::::::::::::::::::::
فکر کنم مقدارش صفر است !
Asad.Safari
یک شنبه 10 دی 1385, 16:40 عصر
فکر کنم این کتاب رو هم یه مطالعه بفرمایید بد نباشه :
http://www.takgam.com/article_read.asp?id=41
موفق باشید
american_iran2006
یک شنبه 10 دی 1385, 18:50 عصر
مگه نه اینکه کامپیوتر با صفر و یک کار میکنه
پس از کناره هم قرار گرفتن صفر و یک ها اطلاعات روی حافظه قرار می گیره
پس اگه تعداد صفر ها رو بشماریم نمیشه که از حافظه خالی اطلاع پیدا کنیم :::
چون چند تا از همین صفر ها میشود جزیی از اطلاعات یک فایل دیگه :::
در این مورد نظرتون چی هست
:::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::
american_iran2006
یک شنبه 10 دی 1385, 18:57 عصر
با بت مقاله هم ممنون الان دارم می گیرمش:لبخند:
Sepidar
یک شنبه 10 دی 1385, 19:29 عصر
هنوز مقاله رو چک نکردم. امیدوارم ویرز نباشه تا مجبور شم لینک رو پاک کنم
من یه چیز خیلی ساده میخوام بابا که تعداد بایتها (یا مدولهای) آزاد هیپ رو برگردونه
تو سرچهام چیزی پیدا نمیکنم. یا اطلاعات درستی کسب نمیکنم.
گر چه به این عناوین تا حالا برخوردم:
memMgr
get_pool_size
گرچه حتی نمیدونم یزی که دنبالش میگردم همینها هستن یا نه؟
یه تازه کار تو cpp
:D
Asad.Safari
یک شنبه 10 دی 1385, 20:06 عصر
مگه نه اینکه کامپیوتر با صفر و یک کار میکنه
پس از کناره هم قرار گرفتن صفر و یک ها اطلاعات روی حافظه قرار می گیره
پس اگه تعداد صفر ها رو بشماریم نمیشه که از حافظه خالی اطلاع پیدا کنیم :::
چون چند تا از همین صفر ها میشود جزیی از اطلاعات یک فایل دیگه :::
در این مورد نظرتون چی هست
:::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::
اینطوری ممکن نیست !
حافطه ram به بخش هایی به نام سگمنت تقسیم شده است !
که باید حافظه رو سگمنت به سگمنت خوند !
که دقیق نمیدونم انداره هر سگمنت چقدره ولی باید از افست 0000 تا ؟؟؟ باید خوند !
این چیزی که هم شما میگی که صفر و یک ها رو بخونیم اینم فکر نکنم ممکن باشه , چون که ما حداقل در هر بار باید یه بایت بخونیم و نمی تونیم حداقلش یه بیت بگیریم !
موفق باشید
mzjahromi
دوشنبه 11 دی 1385, 07:03 صبح
مگه نه اینکه کامپیوتر با صفر و یک کار میکنه
پس از کناره هم قرار گرفتن صفر و یک ها اطلاعات روی حافظه قرار می گیره
:::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::
این درسته
پس اگه تعداد صفر ها رو بشماریم نمیشه که از حافظه خالی اطلاع پیدا کنیم :::
چون چند تا از همین صفر ها میشود جزیی از اطلاعات یک فایل دیگه :::
در این مورد نظرتون چی هست
ولی این نه
صفر هم جزئی از محتویات حافظه است اگر کل اطلاعات حافظه 1 باشه که اطلاعات معنی نمیده 1 ها در کنار صفر ها اطلاعات رو تشکیل میدن
ضمن این که
هیچ لزومی نداره قسمتی از حافظه که محتویاتی ندارن مقدار صفر رو داشته باشن اینا کلا مربوط میشه به سیستم عامل که کجای حافظه در حال حاضر بلا استفاده است در نتیجه برای این کار فقط سیستم عامل میتونه به شما کمک کنه(اگه کمک بکنه)
american_iran2006
دوشنبه 11 دی 1385, 17:31 عصر
اقای mzjahromi بابت جوابتون ممنون
من هم دقیقا همینو میگم ...... حالا سوال من اینه
تو اخره رشته ها کاراکتر null وجود داره خوب::حالا تو خونه های خالی حافظه ایا کاراکتر خاصی هستش ::که اگه هست اون کاراکتر چیه
اما نه نیست ::یعنی هیچی نیست پس چی جوری میشه از حافظه خالی سر دراورد
::::::::::::::::::::::::::::::::::::::::::ممنو ن از جوابتون:::::::::::::::::::::::::::::
mzjahromi
سه شنبه 12 دی 1385, 06:53 صبح
ببینید
حافظه خالی یعنی چی؟
شما به خانه(های) n از حافظه دسترسی داری و داری ازش استفاده میکنی. این معمولا یعنی این خانه خالی نیست. مقدارهائی رو درون این خانه (ها) میریزی. و باهاشون کار میکنی. کارت که تموم شد به سیستم عامل اعلام میکنی(یا خودش میفهمه) که من دیگه با این خانه(ها) کاری ندارم. سیستم عامل کاری با مقدار انها نداره یعنی هر چی توش بوده هنوز هست ولی توی جداول خودش اون خانه ها رو به عنوان خالی علامت گذاری میکنه (اینه که تعیین کننده یه خونه خالی از حافظه است نه محتویاتش)
Sepidar
سه شنبه 12 دی 1385, 07:37 صبح
برادر جهرمی
جواب سوال من چی شد؟
من یه سری دیتا دارم که دارن تو ram گشترش پیدا میکنن و من نمیخوام کارم swap (در لینوکس) و virtual mem. (در window$) کشیده بشه.
mzjahromi
سه شنبه 12 دی 1385, 08:09 صبح
:اشتباه:
این مربوط میشه به ساختار سیستم عامل و امکاناتی که سیستم عامل در اختیارتون می ذاره که متاسفانه من اطلاعات کافی ندارم
اگه .... بتونه در این راستا بهتون کمکی بکنه
anubis_ir
سه شنبه 12 دی 1385, 09:38 صبح
در ویندوز از تابع API زیر استفاده کنید:
GlobalMemoryStatus
vBulletin® v4.2.5, Copyright ©2000-1404, Jelsoft Enterprises Ltd.