PDA

View Full Version : سوال: راهنمایی در مورد ایجاد یک لیست پیوندی به طول کل حافظه Ram با کامپایلر 32 بیتی



BORHAN TEC
جمعه 29 بهمن 1389, 10:40 صبح
سلام :قلب:

من می خواهم که یک برنامه بنویسیم که با استفاده از آن بتوانم یک لیست پیوندی بزرگ را به طول کل حافظه Ram ایجاد کنم (به عبارتی یک برنامه Memory Optimizer).:لبخندساده: من با نحوه نوشتن این برنامه مشکلی ندارم. مشکل من دقیقاً این است:
همانطور که می دانید برنامه هایی که با یک کامپایلر 32 بیتی ایجاد می شوند نهایتاً می توانند از 4 گیگابایت حافظه استفاده کنند. یعنی اگر حافظه اصلی یک سیستم 8 گیگابایت باشد، بر طبق این مطلب گفته شده نمی توانیم یک لیست پیوندی با طول 8 گیگابایت ایجاد کنیم.

- آیا این مطلب صحت دارد؟
- اگر جواب آری است، شما چه راه حلی را پیشنهاد می کنید؟

با تشکر... :لبخند:

vcldeveloper
جمعه 29 بهمن 1389, 12:07 عصر
همانطور که می دانید برنامه هایی که با یک کامپایلر 32 بیتی ایجاد می شوند نهایتاً می توانند از 4 گیگابایت حافظه استفاده کنند. یعنی اگر حافظه اصلی یک سیستم 8 گیگابایت باشد، بر طبق این مطلب گفته شده نمی توانیم یک لیست پیوندی با طول 8 گیگابایت ایجاد کنیم.
فرقی نمی کنه که برنامه نوشته شده 32 بیتی یا 64 بیتی باشه، در شرایط معمولی، فضای حافظه یک پروسه در ویندوز 4 گیگ هست. در ضمن، این 4 گیگ لزوما فضای RAM نیست، و به طور کلی شما در یک برنامه دلفی کنترلی روی RAM ندارید. لیست پیوندی هم که درست می کنید ارتباطی به محتوای RAM نداره، بلکه در فضای مجازی پروسه شما ساخته میشه.


به عبارتی یک برنامه Memory Optimizer
برنامه های Memory Optimizer تقریبا همه شان چرت و پرت هستند، و کمک خاصی به افزایش کارایی سیستم تان نمی کنند، بلکه در بسیاری از مواقع حتی باعث کاهش کارایی سیستم میشند. نحوه کارشان هم معمولا به این شکل هست که با فراخوانی برخی توابع API ویندوز، یک پروسه را مجبور به آزاد سازی بلوک های حافظه رزرو شده اش می کنند.