কম্পিউটারে মোট র‌্যাম আপনি কীভাবে পাবেন?


89

সি # ব্যবহার করে, আমি আমার কম্পিউটারের মোট পরিমাণ র‌্যাম পেতে চাই। পারফরম্যান্স কাউন্টারটির সাহায্যে আমি সেটিংসের মাধ্যমে উপলব্ধ র্যামের পরিমাণ পেতে পারি:

counter.CategoryName = "Memory";
counter.Countername = "Available MBytes";

তবে মোট স্মৃতিতে মোটামুটি পাওয়ার উপায় খুঁজে পাচ্ছি না। আমি কীভাবে এটি করতে যাব?

হালনাগাদ:

ম্যাজিক্যাট: আমি দেখেছি যখন আমি অনুসন্ধান করছিলাম, কিন্তু এটি কার্যকর হয় না - "আপনি কি কোনও সমাবেশ বা রেফারেন্স মিস করছেন?" আমি এটি উল্লেখগুলিতে যুক্ত করার চেষ্টা করেছি, তবে আমি এটি সেখানে দেখছি না।

উত্তর:


63

উইন্ডোজ এপিআই ফাংশনটি GlobalMemoryStatusExপি / ইনভোক করার মাধ্যমে বলা যেতে পারে:

  [StructLayout(LayoutKind.Sequential, CharSet = CharSet.Auto)]
  private class MEMORYSTATUSEX
  {
     public uint dwLength;
     public uint dwMemoryLoad;
     public ulong ullTotalPhys;
     public ulong ullAvailPhys;
     public ulong ullTotalPageFile;
     public ulong ullAvailPageFile;
     public ulong ullTotalVirtual;
     public ulong ullAvailVirtual;
     public ulong ullAvailExtendedVirtual;
     public MEMORYSTATUSEX()
     {
        this.dwLength = (uint)Marshal.SizeOf(typeof(NativeMethods.MEMORYSTATUSEX));
     }
  }


  [return: MarshalAs(UnmanagedType.Bool)]
  [DllImport("kernel32.dll", CharSet = CharSet.Auto, SetLastError = true)]
  static extern bool GlobalMemoryStatusEx([In, Out] MEMORYSTATUSEX lpBuffer);

তারপরে ব্যবহার করুন:

ulong installedMemory;
MEMORYSTATUSEX memStatus = new MEMORYSTATUSEX();
if( GlobalMemoryStatusEx( memStatus))
{ 
   installedMemory = memStatus.ullTotalPhys;
}

অথবা আপনি কি প্রশ্নের WMI (পরিচালিত কিন্তু ধীর) ব্যবহার করতে পারেন TotalPhysicalMemoryমধ্যে Win32_ComputerSystemবর্গ।


4
এটি কাজ করছে না ... দীর্ঘ রামিউজ = (দীর্ঘ) স্ট্যাটাস.টোটালফিজিকাল; লম্বা রামভ্যালিবল (দীর্ঘ) স্ট্যাটাস Aঅভ্যালিফিজিক্যাল; লম্বা রামটোটাল = রামাবল উপলভ্য + রামুস; ইন্ট শতাংশ = (ইনট) ((ফ্লোট) রামুস / রামটোটাল * 100); শতাংশ আমাকে "70" বলছে এবং মোট ক্রমাগত পরিবর্তন হচ্ছে, 100 দিন বা দিন। 72% হওয়া উচিত
জোয়েল

4
কোডটি কাজ করে, কেবলমাত্র অবজেক্টের আকার পেতে 'নেটিভমেথডস' ব্যবহার করার দরকার নেই, আপনি কেবল this.dwLength = (uint)Marshal.SizeOf(this);এটির মতো বলতে পারেন: এবং এটি একইরকম হয় (নেটিমেটমেডস ব্যবহার করতে আমার সমস্যা হয়েছিল তাই এই ফিক্সটি এখন কাজ করে)।
সিপি

4
"নেটিভমেথডস" টাইপের নাম স্থান। আপনি যদি পছন্দ করেন তবে সাইজঅফের কলটি পরিবর্তন করা যাবে।
ফিলিপ রিয়েক

4
@ কোরিলগোট অকেজো কারণ এটি আপ টু ডেট তথ্য দেয়? আমি বলতে চাইছি, প্রতিবার আমি আবহাওয়া চ্যানেলটি পরীক্ষা করি যা এটি বিভিন্ন তথ্য দেয়, তবে আমি একে একে একে অপ্রয়োজনীয় বলতে পারি না। আমি এমনকি নিশ্চিত নই যে আপনি যদি এই ফাংশনটি প্রতি বারের মতো সম্ভাব্য বিভিন্ন তথ্য না ফেরায় তবে আপনি কী করতে চান - এটি কি প্রথম অনুরোধের পরে ফলাফলগুলি "লক" করা উচিত এবং তারপরে বাসি ডেটা ফেরত দেওয়া উচিত? কোন উপায়ে এটি আরও কার্যকর হবে?
ফিলিপ রিয়েক

4
পার্টিতে কিছুটা দেরি হলেও আমি এই থ্রেডে এসেছি এবং এই উত্তরটি সঠিক নয়। গ্লোবাল মেমোরিস্ট্যাটাক্সেক্স অগত্যা মেশিনে ইনস্টল হওয়া র‌্যামের প্রকৃত পরিমাণ দেয় না (এবং প্রায়শই তা দেয় না), এটি ওএসের কাছে উপলব্ধ পরিমাণের পরিমাণ দেয় যা চালকদের জন্য সংরক্ষিত মেমরির কারণে ইনস্টল করা পরিমাণের চেয়ে প্রায় সবসময় আলাদা etc প্রকৃত পরিমাণের র‍্যাম ইনস্টল করার জন্য আপনি getPhysicallyInstalledSystemMemory ফাংশনটিতে কল করতে চান যা সঠিক মোট র‌্যাম দেয়। এমএসডিএন.মাইক্রোসফট.ইন- ইউএস
মাইক জনসন

183

একটি রেফারেন্স যোগ করুন Microsoft.VisualBasicএবং ক using Microsoft.VisualBasic.Devices;

ComputerInfoবর্গ সব তথ্য যে আপনি প্রয়োজন রয়েছে।


10
কেন পৃথিবীতে এটিকে ভোট দেওয়া হয়েছিল? ব্যাক আপ ভোট! এটি এটি করার সবচেয়ে সহজ উপায় এবং হ্যাঁ আপনি এটি সি # থেকে করতে পারেন।
পল বাতুম

54
+1: কিছু লোকের মাইক্রোসফ্ট.ভিউজুয়ালবাসিক নেমস্পেসকে সি # থেকে রেফারেন্স দেওয়ার জন্য বিদ্বেষ রয়েছে, যদিও এটি সত্যিই কেবল অন্য একটি সংসদ যা অন্য সব কিছুর অংশ হিসাবে ইনস্টল করা আছে installed
বেভান

4
8 জিবি র‌্যামের সাহায্যে উইন্ডোজ 7৪ বিবিটিতে নেতিবাচক জাঙ্ক মানটি ফিরিয়ে দিন। আপনি কেন ভোট পেয়ে নামলেন?
পাইটর কুলা

6
(নতুন ComputerInfo ()) ব্যবহারের জন্য যেকোন ব্যক্তির জন্য Total এটির রিটার্ন টাইপ দীর্ঘ স্বাক্ষরযুক্ত, সুতরাং একটি invalidণাত্মক সংখ্যা (অবৈধ) castালাই ছাড়া সম্ভব নয়।
মাইলস স্ট্রোম্বাচ

6
var totalGBRam = Convers.ToInt32 ((new ComputerInfo ()। TotalPhysicalMemory / (Math.Pow (1024, 3))) + 0.5);
শান

63

উপরে উল্লিখিত কেউ হিসাবে মাইক্রোসফ্ট.ভিজুয়ালবাসিক.ডিল-এ একটি রেফারেন্স যুক্ত করুন। তারপরে মোট শারীরিক স্মৃতি পাওয়া এত সহজ (হ্যাঁ, আমি এটি পরীক্ষা করেছি):

static ulong GetTotalMemoryInBytes()
{
    return new Microsoft.VisualBasic.Devices.ComputerInfo().TotalPhysicalMemory;
}

4
@ পিপমকিন,। নেট এর কোন সংস্করণে এবং ভিজ্যুয়াল স্টুডিওর কোন সংস্করণে? আমি যখন 8 জিবি র‌্যামের সাথে 64-বিট মেশিনে .NET 4.5 ব্যবহার করে ভিএস 2012-এ এটি চালিত করি তখন এটি দুর্দান্ত কাজ করে। আমি 8520327168 ফিরে আসছি
রায়ান লুন্ডি

.NET 4, উইন্ডোজ প্রো 7 64 বাইটে ভিএস2010 32 বিট
কুলা

4
X64- এ সূক্ষ্মভাবে কাজ করে You আপনি একটি 32 বিট ভিএস ব্যবহার করছেন যা সম্ভবত 32 বিট বাইনারিগুলি সংকলন করছে যা পুরো স্মৃতি আকার দেখতে পাবে না।
লুকাস টেস্কে

4
সি #। নেট 4.6.1 নেট দিয়ে ভিজ্যুয়াল স্টুডিও 2017 এ এটি ব্যবহার করার সময়, মাইক্রোসফ্টের জন্য আমাকে একটি রেফারেন্স যুক্ত করতে হয়েছিল is ভিজুয়ালবাসিক এটি কাজ করার জন্য। প্রকল্প> রেফারেন্স যুক্ত করুন >> সমাবেশগুলি> মাইক্রোসফ্ট পরীক্ষা করুন
is ভিজুয়ালবাসিক

আমি গেটফিজিক্যালইনস্টল্ল্ড সিস্টেমমেমোরি এবং মাইক্রোসফ্টের মধ্যে একটি পার্থক্য লক্ষ্য করেছি is ভিজুয়ালবাসিক.ডাইভাইসস.কম্পিউটারআইএনফো () .টোটফিজিকাল মেমরি নতুন ফাইলসাইস্ট্রাক্ট (34173231104) {31.8 জিবি} বাইটকাউন্ট: 34173231104 বাইটসাইজ: 3435335353533535353353535683533535356835353353535686835353533535353353535335353533533535 জিবি আকার: 32
fanuc_bob

36

সকল উত্তর এখানে গৃহীত সহ, আপনি RAM এর মোট পরিমাণ দেব প্রাপ্তিসাধ্য ব্যবহারের জন্য। এবং ওপি যা চেয়েছিল তা হতে পারে।

তবে আপনি যদি ইনস্টলড র‌্যামের পরিমাণ পেতে আগ্রহী হন , তবে আপনি গেটফিজিক্যালি ইনস্টলড সিস্টেমেমোরি ফাংশনে কল করতে চান ।

লিঙ্কটি থেকে, মন্তব্য বিভাগে:

GetPhysicallyInstalledSystemMemory ফাংশন কম্পিউটারের SMBIOS ফার্মওয়্যার টেবিল থেকে শারীরিকভাবে ইনস্টল RAM- র পরিমাণ প্রাপ্ত করে। এই পরিমাণ দ্বারা রিপোর্ট থেকে পৃথক হতে পারে GlobalMemoryStatusEx ফাংশন, যা শারীরিক মেমরির পরিমাণ ব্যবহার করতে অপারেটিং সিস্টেমের জন্য উপলব্ধ করার MEMORYSTATUSEX কাঠামো ullTotalPhys সদস্য সেট করে। অপারেটিং সিস্টেমে উপলব্ধ মেমরির পরিমাণ কম্পিউটারে শারীরিকভাবে ইনস্টল হওয়া মেমরির পরিমাণের চেয়ে কম হতে পারে কারণ BIOS এবং কিছু ড্রাইভার মেমরি-ম্যাপযুক্ত ডিভাইসগুলির জন্য I / O অঞ্চল হিসাবে মেমরি সংরক্ষণ করতে পারে, মেমরি অপারেটিং সিস্টেমের জন্য অনুপলব্ধ করে তোলে making এবং অ্যাপ্লিকেশন।

কোডের উদাহরণ:

[DllImport("kernel32.dll")]
[return: MarshalAs(UnmanagedType.Bool)]
static extern bool GetPhysicallyInstalledSystemMemory(out long TotalMemoryInKilobytes);

static void Main()
{
    long memKb;
    GetPhysicallyInstalledSystemMemory(out memKb);
    Console.WriteLine((memKb / 1024 / 1024) + " GB of RAM installed.");
}

4
ধন্যবাদ! আমি ঠিক এটি খুঁজছিলাম কিন্তু সর্বত্র আমি কেবল ইনস্টলডটির চেয়ে মোট উপলব্ধ মেমরিটি কীভাবে সন্ধান করতে পারি তা দেখতে পাচ্ছি।
এসএম

মূল ভার্সনে নিখুঁতভাবে কাজ করা সত্ত্বেও এটি আমার ভার্চুয়াল মেশিনে ভাল কাজ করে না।
এসএম

31

আপনি যদি মনো ব্যবহার করছেন বলে মনে হয় তবে আপনি জানতে আগ্রহী হতে পারেন যে মনো 2.8 (এই বছরের শেষের দিকে প্রকাশিত হবে) এর একটি পারফরম্যান্স কাউন্টার রয়েছে যা সমস্ত প্ল্যাটফর্মগুলিতে মনো চলমান (উইন্ডোজ সহ) এর শারীরিক স্মৃতি আকারের প্রতিবেদন করে। আপনি এই কোড স্নিপেট ব্যবহার করে কাউন্টারটির মান পুনরুদ্ধার করতে পারবেন:

using System;
using System.Diagnostics;

class app
{
   static void Main ()
   {
       var pc = new PerformanceCounter ("Mono Memory", "Total Physical Memory");
       Console.WriteLine ("Physical RAM (bytes): {0}", pc.RawValue);
   }
}

আপনি যদি সি কোডটিতে আগ্রহী হন যা পারফরম্যান্স কাউন্টার সরবরাহ করে, এটি এখানে পাওয়া যাবে


যে কোনও লিনাক্স সিস্টেমে, এমনকি এআরএম সিস্টেমেও সূক্ষ্মভাবে কাজ করে।
harry4516

আমার উবুন্টু সিস্টেমে @ হ্যারি 4516, পারফরম্যান্স কাউন্টার সমর্থিত নয়
কার্লোস লিউ

14

এটি করার আরেকটি উপায় হ'ল। নেট সিস্টেম.ব্যবস্থাপনা অনুসন্ধান সুবিধা ব্যবহার করে:

string Query = "SELECT Capacity FROM Win32_PhysicalMemory";
ManagementObjectSearcher searcher = new ManagementObjectSearcher(Query);

UInt64 Capacity = 0;
foreach (ManagementObject WniPART in searcher.Get())
{
    Capacity += Convert.ToUInt64(WniPART.Properties["Capacity"].Value);
}

return Capacity;

এটি আমার মেশিনে একটি সিস্টেম.ব্যবস্থাপনা.ম্যানেজমেন্টএক্সেপশন আউট অফ মেমরি ফেলে দিচ্ছে। কোন ধারনা?
আমার

4
আমার এটা ভাল লেগেছে. রেফারেন্স করার দরকার নেই Microsoft.VisualBasic.Devices। এবং ওয়ান-লাইনার হিসাবেvar Capacity = new ManagementObjectSearcher("SELECT Capacity FROM Win32_PhysicalMemory").Get().Cast<ManagementObject>().Sum(x => Convert.ToInt64(x.Properties["Capacity"].Value));
ভিডিডাব্লুডাব্লুডি

10

যারা ব্যবহার করছেন .net Core 3.0তাদের জন্য PInvokeউপলব্ধ শারীরিক স্মৃতিশক্তি পেতে প্ল্যাটফর্ম ব্যবহার করার দরকার নেই । GCবর্গ নতুন পদ্ধতি যোগ করেনি GC.GetGCMemoryInfoযে একটি ফেরৎ GCMemoryInfo Structদিয়ে TotalAvailableMemoryBytesএকটি সম্পত্তি হিসেবে। এই সম্পত্তিটি আবর্জনা সংগ্রহকারীর জন্য মোট উপলব্ধ স্মৃতি প্রদান করে ((MEMORYSTATUSEX এর সমান মান)

var gcMemoryInfo = GC.GetGCMemoryInfo();
installedMemory = gcMemoryInfo.TotalAvailableMemoryBytes;
// it will give the size of memory in MB
var physicalMemory = (double) installedMemory / 1048576.0;

আমার প্রিয় উত্তর। ধন্যবাদ
মাতাস ভাইটকেভিচিয়াস

7

এই তথ্যগুলি পেতে আপনি কেবল এই কোডটি ব্যবহার করতে পারেন, কেবল উল্লেখটি যুক্ত করুন

using Microsoft.VisualBasic.Devices;

এবং সহজভাবে নিম্নলিখিত কোড ব্যবহার করুন

    private void button1_Click(object sender, EventArgs e)
    {
        getAvailableRAM();
    }

    public void getAvailableRAM()
    {
        ComputerInfo CI = new ComputerInfo();
        ulong mem = ulong.Parse(CI.TotalPhysicalMemory.ToString());
        richTextBox1.Text = (mem / (1024*1024) + " MB").ToString();
    }

.NET 4.6 সংস্করণে পাওয়া যায় নি। আমি বোঝাতে চাইছি এটি ComputerInfo এর নেমস্পেস দেয়। আরও বেশি ... নেমস্পেস 'ডিভাইসস' এর অস্তিত্ব নেই।
gumuruh

5
// use `/ 1048576` to get ram in MB
// and `/ (1048576 * 1024)` or `/ 1048576 / 1024` to get ram in GB
private static String getRAMsize()
{
    ManagementClass mc = new ManagementClass("Win32_ComputerSystem");
    ManagementObjectCollection moc = mc.GetInstances();
    foreach (ManagementObject item in moc)
    {
       return Convert.ToString(Math.Round(Convert.ToDouble(item.Properties["TotalPhysicalMemory"].Value) / 1048576, 0)) + " MB";
    }

    return "RAMsize";
}

5

আপনি ডাব্লুএমআই ব্যবহার করতে পারেন। একটি স্নিপিট পাওয়া গেছে।

Set objWMIService = GetObject("winmgmts:" _
& "{impersonationLevel=impersonate}!\\" _ 
& strComputer & "\root\cimv2") 
Set colComputer = objWMIService.ExecQuery _
("Select * from Win32_ComputerSystem")

For Each objComputer in colComputer 
  strMemory = objComputer.TotalPhysicalMemory
Next

নোট করুন যে SetVB.NET এর জন্য আর দরকার নেই, এই ভিবি 6 কোডটি কি?
জুন 20

2

এই ফাংশনটি ManagementQuery) উইন্ডোজ এক্সপি এবং তারপরে কাজ করে:

private static string ManagementQuery(string query, string parameter, string scope = null) {
    string result = string.Empty;
    var searcher = string.IsNullOrEmpty(scope) ? new ManagementObjectSearcher(query) : new ManagementObjectSearcher(scope, query);
    foreach (var os in searcher.Get()) {
        try {
            result = os[parameter].ToString();
        }
        catch {
            //ignore
        }

        if (!string.IsNullOrEmpty(result)) {
            break;
        }
    }

    return result;
}

ব্যবহার:

Console.WriteLine(BytesToMb(Convert.ToInt64(ManagementQuery("SELECT TotalPhysicalMemory FROM Win32_ComputerSystem", "TotalPhysicalMemory", "root\\CIMV2"))));

4
সেই BytesToMbফাংশনটি কোথা থেকে এসেছে?
সিই ম্যাকশারফেস 21

@ ড্লিটিকায় এটি অভ্যন্তরীণ ফাক্স: প্রাইভেট স্ট্যাটিক ডাবল বাইটসটোএমবি (লম্বা বাইট) - ম্যাথ রিটার্ন (রাউন্ড (1024 ডি / 1024 ডি, বাইট)) }
ল্যান্স

1

নেট এবং মনো এর সাথে সামঞ্জস্যপূর্ণ (উইন 10 / ফ্রিবিএসডি / সেন্টোজ সহ পরীক্ষিত)

ব্যবহার ComputerInfoসোর্স কোড এবং PerformanceCounterমনো এবং নেট জন্য ব্যাকআপ হিসেবে S:

using System;
using System.Diagnostics;
using System.Runtime.InteropServices;
using System.Security;

public class SystemMemoryInfo
{
    private readonly PerformanceCounter _monoAvailableMemoryCounter;
    private readonly PerformanceCounter _monoTotalMemoryCounter;
    private readonly PerformanceCounter _netAvailableMemoryCounter;

    private ulong _availablePhysicalMemory;
    private ulong _totalPhysicalMemory;

    public SystemMemoryInfo()
    {
        try
        {
            if (PerformanceCounterCategory.Exists("Mono Memory"))
            {
                _monoAvailableMemoryCounter = new PerformanceCounter("Mono Memory", "Available Physical Memory");
                _monoTotalMemoryCounter = new PerformanceCounter("Mono Memory", "Total Physical Memory");
            }
            else if (PerformanceCounterCategory.Exists("Memory"))
            {
                _netAvailableMemoryCounter = new PerformanceCounter("Memory", "Available Bytes");
            }
        }
        catch
        {
            // ignored
        }
    }

    public ulong AvailablePhysicalMemory
    {
        [SecurityCritical]
        get
        {
            Refresh();

            return _availablePhysicalMemory;
        }
    }

    public ulong TotalPhysicalMemory
    {
        [SecurityCritical]
        get
        {
            Refresh();

            return _totalPhysicalMemory;
        }
    }

    [SecurityCritical]
    [DllImport("Kernel32", CharSet = CharSet.Auto, SetLastError = true)]
    private static extern void GlobalMemoryStatus(ref MEMORYSTATUS lpBuffer);

    [SecurityCritical]
    [DllImport("Kernel32", CharSet = CharSet.Auto, SetLastError = true)]
    [return: MarshalAs(UnmanagedType.Bool)]
    private static extern bool GlobalMemoryStatusEx(ref MEMORYSTATUSEX lpBuffer);

    [SecurityCritical]
    private void Refresh()
    {
        try
        {
            if (_monoTotalMemoryCounter != null && _monoAvailableMemoryCounter != null)
            {
                _totalPhysicalMemory = (ulong) _monoTotalMemoryCounter.NextValue();
                _availablePhysicalMemory = (ulong) _monoAvailableMemoryCounter.NextValue();
            }
            else if (Environment.OSVersion.Version.Major < 5)
            {
                var memoryStatus = MEMORYSTATUS.Init();
                GlobalMemoryStatus(ref memoryStatus);

                if (memoryStatus.dwTotalPhys > 0)
                {
                    _availablePhysicalMemory = memoryStatus.dwAvailPhys;
                    _totalPhysicalMemory = memoryStatus.dwTotalPhys;
                }
                else if (_netAvailableMemoryCounter != null)
                {
                    _availablePhysicalMemory = (ulong) _netAvailableMemoryCounter.NextValue();
                }
            }
            else
            {
                var memoryStatusEx = MEMORYSTATUSEX.Init();

                if (GlobalMemoryStatusEx(ref memoryStatusEx))
                {
                    _availablePhysicalMemory = memoryStatusEx.ullAvailPhys;
                    _totalPhysicalMemory = memoryStatusEx.ullTotalPhys;
                }
                else if (_netAvailableMemoryCounter != null)
                {
                    _availablePhysicalMemory = (ulong) _netAvailableMemoryCounter.NextValue();
                }
            }
        }
        catch
        {
            // ignored
        }
    }

    private struct MEMORYSTATUS
    {
        private uint dwLength;
        internal uint dwMemoryLoad;
        internal uint dwTotalPhys;
        internal uint dwAvailPhys;
        internal uint dwTotalPageFile;
        internal uint dwAvailPageFile;
        internal uint dwTotalVirtual;
        internal uint dwAvailVirtual;

        public static MEMORYSTATUS Init()
        {
            return new MEMORYSTATUS
            {
                dwLength = checked((uint) Marshal.SizeOf(typeof(MEMORYSTATUS)))
            };
        }
    }

    private struct MEMORYSTATUSEX
    {
        private uint dwLength;
        internal uint dwMemoryLoad;
        internal ulong ullTotalPhys;
        internal ulong ullAvailPhys;
        internal ulong ullTotalPageFile;
        internal ulong ullAvailPageFile;
        internal ulong ullTotalVirtual;
        internal ulong ullAvailVirtual;
        internal ulong ullAvailExtendedVirtual;

        public static MEMORYSTATUSEX Init()
        {
            return new MEMORYSTATUSEX
            {
                dwLength = checked((uint) Marshal.SizeOf(typeof(MEMORYSTATUSEX)))
            };
        }
    }
}

0

কেউ এখনও getPerformanceInfo উল্লেখ করেনি। স্বাক্ষরগুলি পিনভোক করুন উপলব্ধ।

এই ফাংশনটি নিম্নলিখিত সিস্টেম-ব্যাপী তথ্য উপলভ্য করে:

  • কমিটোটাল
  • কমিটলিমিট
  • কমিটপিক
  • ফিজিক্যালটোটাল
  • শারীরিকভাবে উপলব্ধ
  • সিস্টেম ক্যাস
  • কার্নেল টোটাল
  • কার্নেলপেজড
  • কার্নেলনপেজেড
  • পাতার আকার
  • হ্যান্ডলকাউন্ট
  • প্রসেসকাউন্ট
  • থ্রেডকাউন্ট

PhysicalTotalওপি কী সন্ধান করছে, যদিও মান পৃষ্ঠাগুলির সংখ্যা, তাই বাইটে রূপান্তর করতে, প্রত্যাশিত PageSizeমানের দ্বারা গুণিত করুন ly


0

.NIT এর মোট পরিমাণ অ্যাক্সেস করতে পারে তার পরিমাণের একটি সীমা রয়েছে has শতাংশ শতকরা, এবং এরপরে 2 গিগাবাইটে এক্সপি শক্ত সিলিং ছিল।

এতে আপনার 4 জিবি থাকতে পারে এবং অ্যাপটি 2 জিবি হিট করলে এটি মারা যাবে।

এছাড়াও bit৪ বিট মোডে, সিস্টেমের বাইরে আপনি যে পরিমাণ স্মৃতি ব্যবহার করতে পারেন তা রয়েছে, সুতরাং আপনি পুরো বিষয়টি জিজ্ঞাসা করতে পারেন কিনা বা এটির বিরুদ্ধে বিশেষভাবে সুরক্ষিত থাকলে আমি নিশ্চিত নই।


/ না /। মোট শারীরিক স্মৃতি মানে প্রকৃত স্মৃতি শারীরিকভাবে ইনস্টল করা memory
ম্যাথু ফ্ল্যাশেন

আসলে, ডেভেলপিংক্রিস সঠিক। আপনি যদি 4 গিগ অফ রাম সহ কোনও এক্সপি মেশিনে গ্লোবাল মেমরি স্ট্যাটাসেক্সকে কল করেন তবে এটি জানায় যে সেখানে কেবল 3 গিগ ইনস্টল রয়েছে।
এপোটটার

এছাড়াও, উইন 32_ কম্পিউটার কম্পিউটার বা উইন 32_ লজিক্যাল মেমোরি কনফিগারেশনে টোটাল ফিজিক্যাল মেমরির অনুসন্ধান করতে ডাব্লুএমআই ব্যবহার করাও ভুল ফলাফল তৈরি করে।
এপোটটার

আপনাকে ধন্যবাদ, এটি নয় যে আমি প্রশ্নটি বুঝতে পারি না এটি। নেট লাইব্রেরি ছাড়া অন্য তথ্যের জন্য আপনাকে আলাদা উত্স ব্যবহার করতে হবে।
উন্নয়নশীলক্রিস

এই উত্তরটি বোধগম্য only আমি এখন ভিজুয়ালবাসিক রেফারেন্স ব্যবহার করে উইন 64 8 জিবি র‌্যামে ক্লান্ত হয়ে পড়েছি। আমি জাঙ্ক নেতিবাচক মান পেতে।
পাইটর কুলা

-3
/*The simplest way to get/display total physical memory in VB.net (Tested)

public sub get_total_physical_mem()

    dim total_physical_memory as integer

    total_physical_memory=CInt((My.Computer.Info.TotalPhysicalMemory) / (1024 * 1024))
    MsgBox("Total Physical Memory" + CInt((My.Computer.Info.TotalPhysicalMemory) / (1024 * 1024)).ToString + "Mb" )
end sub
*/


//The simplest way to get/display total physical memory in C# (converted Form http://www.developerfusion.com/tools/convert/vb-to-csharp)

public void get_total_physical_mem()
{
    int total_physical_memory = 0;

    total_physical_memory = Convert.ToInt32((My.Computer.Info.TotalPhysicalMemory) /  (1024 * 1024));
    Interaction.MsgBox("Total Physical Memory" + Convert.ToInt32((My.Computer.Info.TotalPhysicalMemory) / (1024 * 1024)).ToString() + "Mb");
}

6
এটি সিএসএপ রূপান্তরকারীদের অনলাইন ভিজ্যুয়াল বেসিকের জন্য ধন্যবাদ হতে পারে।
নিক বিনেট
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.