精华内容
下载资源
问答
  • # 下面代码统计 postgres进程所占内存之和 # 可将postgers参数化: # p_name=$1 # ps aux | grep $p_name | sort -r -k4 | awk '!a[$6]++{print}' | awk '{print $5}' # 使用方法: echo htop_...
    #!/bin/bash
    #说明: 文件名称 htop_postgres.sh 
    # 下面代码统计 postgres进程所占内存之和
    # 使用方法: echo htop_postgres.sh >> /root/mem.log
    # ----------------------------- 
    # 也可将postgers参数化: 
    #   p_name=$1
    #   ps aux | grep $p_name | sort -r -k2 | awk '!a[$2]++{print}' | awk '{print $6}'
    #	or
    #   简化:
    #   ps aux | grep $p_name | awk '{print $6}'
    # ----------------------------- 
    # 也可查询所有进程使用内存之和:  
    #   ps aux | grep -v "TIME COMMAND" | sort -r -k2 | awk '!a[$2]++{print}' | awk '{print $6}'
    #	or 
    #   简化:
    #   ps aux | grep -v "TIME COMMAND" | awk '{print $6}'
    
    sum=0
    
    # sort -r -k2 按第2列逆序排序
    # awk '!a[$2]++{print}' 以第2列为基准进行去重
    mem_data_arr=$(ps aux | grep ^postgres | sort -r -k2 | awk '!a[$2]++{print}' | awk '{print $6}')
    #  简化:
    #   mem_data_arr=$(ps aux | grep ^postgres | awk '{print $6}')
    
    #echo $mem_data_arr
    #echo "---------------------------------------------------"
    for n in $mem_data_arr
    do
      sum=$[sum+$n]
    done
    echo `date "+%Y-%m-%d %H:%M:%S"`"       "$[$sum/1024]"M"
    

     

    展开全文
  • windows 获取当前进程所占内存

    千次阅读 2017-09-11 09:06:49
    程序里碰到使用opencv1的...可以获取当前进程运行所占内存 转自 使用SDK的PSAPI (Process Status Helper)中的GetProcessMemoryInfo函数,其定义如下:BOOL WINAPI GetProcessMemoryInfo( HANDLE Process, PPR

    程序里碰到使用opencv1的内存泄漏问题,虽然最终也没有查出来,但是找到了这个好工具。
    可以获取当前进程运行所占内存
    转自
    使用SDK的PSAPI (Process Status Helper)中的GetProcessMemoryInfo函数,其定义如下:

    BOOL  
    WINAPI  
    GetProcessMemoryInfo(  
        HANDLE Process,  
        PPROCESS_MEMORY_COUNTERS ppsmemCounters,  
        DWORD cb  
        ); 

    PROCESS_MEMORY_COUNTERS结构体定义如下:

    typedef struct _PROCESS_MEMORY_COUNTERS {  
        DWORD cb;  
        DWORD PageFaultCount;  
        SIZE_T PeakWorkingSetSize;//峰值内存使用  
        SIZE_T WorkingSetSize;//内存使用  
        SIZE_T QuotaPeakPagedPoolUsage;  
        SIZE_T QuotaPagedPoolUsage;  
        SIZE_T QuotaPeakNonPagedPoolUsage;  
        SIZE_T QuotaNonPagedPoolUsage;  
        SIZE_T PagefileUsage;//虚拟内存使用  
        SIZE_T PeakPagefileUsage;//峰值虚拟内存使用  
    } PROCESS_MEMORY_COUNTERS; 

    测试代码:

    #include <iostream>    
    #include <windows.h>    
    #include <psapi.h>    
    #pragma comment(lib,"psapi.lib")    
    using namespace std;  
    
    
    void showMemoryInfo(void)    
    {    
        HANDLE handle = GetCurrentProcess();    
        PROCESS_MEMORY_COUNTERS pmc;    
        GetProcessMemoryInfo(handle,&pmc,sizeof(pmc));    
        //  
        cout<<"内存使用:"<<pmc.WorkingSetSize/1000 <<"K/"<<pmc.PeakWorkingSetSize/1000<<"K + "<<pmc.PagefileUsage/1000 <<"K/"<<pmc.PeakPagefileUsage/1000 <<"K"<<endl;    
    }  
    
    int main(int argc, char* argv)    
    {  
        showMemoryInfo();  
        cout<<"回收所有可回收的内存"<<endl;  
        EmptyWorkingSet(GetCurrentProcess());  
        showMemoryInfo();  
    
        cout<<"\r\n"<<endl;  
        cout<<"开始动态分配内存"<<endl;  
        char* buf[5];  
        for(int i=0;i<sizeof(buf)/sizeof(char*);i++)  
        {  
            buf[i]=new char[102400];  
            showMemoryInfo();  
        }  
    
        cout<<"\r\n"<<endl;  
        cout<<"开始释放内存"<<endl;  
        for(int i=0;i<sizeof(buf)/sizeof(char*);i++)  
        {  
            delete buf[i];  
            buf[i]=NULL;  
            showMemoryInfo();  
        }  
    
        cout<<"\r\n"<<endl;  
        cout<<"回收所有可回收的内存"<<endl;  
        EmptyWorkingSet(GetCurrentProcess());  
        showMemoryInfo();  
    
        return 0;  
    }  

    ————————————-输出结果————————————
    内存使用:2854K/2854K + 884K/884K
    回收所有可回收的内存
    内存使用:217K/3002K + 888K/888K

    开始动态分配内存
    内存使用:897K/3002K + 995K/995K
    内存使用:1003K/3002K + 1101K/1101K
    内存使用:1110K/3002K + 1208K/1208K
    内存使用:1212K/3002K + 1314K/1314K
    内存使用:1323K/3002K + 1421K/1421K

    开始释放内存
    内存使用:1363K/3002K + 1421K/1421K
    内存使用:1363K/3002K + 1421K/1421K
    内存使用:1363K/3002K + 1421K/1421K
    内存使用:1363K/3002K + 1421K/1421K
    内存使用:847K/3002K + 888K/1421K

    回收所有可回收的内存
    内存使用:212K/3002K + 888K/1421K

    psapi.lib动态库静态库头文件, 下载地址:
    就是这里

    展开全文
  • 文章目录1. 按2. 代码 1. 按 需要安装psutil库,安装请参考:Python3 安装... # 根据进程号来获取进程内存大小 process = psutil.Process(pid) memInfo = process.memory_info() return memInfo.rss / 1024 / 1024

    文章目录

    1. 按

    需要安装psutil库,安装请参考:Python3 安装psutil
    psutil · PyPI
    psutil · GitHub

    2. 代码

    import psutil
    
    
    def getMemSize(pid):
        # 根据进程号来获取进程的内存大小
        process = psutil.Process(pid)
        memInfo = process.memory_info()
        return memInfo.rss / 1024 / 1024
    
    
    def getTotalM(processName):
        # 一个进程名对应的可能有多个进程
        # 进程号才是进程的唯一标识符,进程名不是
        totalM = 0
        for i in psutil.process_iter():
            if i.name() == processName:
                totalM += getMemSize(i.pid)
        print('%.2f MB' % totalM)
        return totalM
    
    
    if __name__ == '__main__':
        getTotalM('ding.exe')
    
    
    展开全文
  • 在Win10上获取的是程序集内存,不是内存(专用程序集),如果程序既要在xp上使用,又要在Win10上使用,需要判断一下Windows的版本。新的开发工具,可以直接GetProcessMemoryInfo,对于老的开发工具,如VC6,BCB6等才需要...

     GetProcessMemoryInfo函数xp使用正常,在Win10上使用不正常.函数的功能已被kernel32.dll中的K32GetProcessMemoryInfo替代.因此在Win10采用动态调用的方法,如下:

    #include <windows.h>
    #include <psapi.h>
    typedef BOOL (WINAPI *PGET_PROCESS_MEMORY_INFO)(HANDLE handle,
                PROCESS_MEMORY_COUNTERS* memCounters, DWORD cb);
    static PGET_PROCESS_MEMORY_INFO GCGetProcessMemoryInfo = 0;
    
    HINSTANCE hKernel32DLL=LoadLibrary("kernel32.dll");//加载dll库
    if(hKernel32DLL)
    {
           GCGetProcessMemoryInfo = (PGET_PROCESS_MEMORY_INFO)GetProcAddress(hKernel32DLL,"K32GetProcessMemoryInfo");
    
           if(!GCGetProcessMemoryInfo) return "内存占用:%0.0MB峰值:%0.0MB";
    
           DWORD dwProcessID = GetCurrentProcessId();
    
           HANDLE hProcess = OpenProcess(PROCESS_QUERY_INFORMATION |PROCESS_VM_READ, NULL, dwProcessID);
    
           PROCESS_MEMORY_COUNTERS process_mem_counters = {0};
    
           process_mem_counters.cb = sizeof(PROCESS_MEMORY_COUNTERS);
    
           DWORD bRet = GCGetProcessMemoryInfo(hProcess, &process_mem_counters,sizeof(PROCESS_MEMORY_COUNTERS));
    
           AnsiString strTemp = AnsiString().sprintf("内存占用:%0.2fMB峰值:%0.2fMB",
              process_mem_counters.WorkingSetSize/1024.0/1024.0,
              process_mem_counters.PeakWorkingSetSize/1024.0/1024.0);
    
           CloseHandle(hProcess);
    
           return strTemp;
    }
    
    if(hKernel32DLL)//卸载dll
    {
          FreeLibrary(hKernel32DLL);
          hKernel32DLL = NULL;
    }

    在Win10上获取的是程序集内存,不是内存(专用程序集),如果程序既要在xp上使用,又要在Win10上使用,需要判断一下Windows的版本。新的开发工具,可以直接GetProcessMemoryInfo,对于老的开发工具,如VC6,BCB6等才需要如上代码。

    展开全文
  • ps -e -o 'pid,comm,args,pcpu,rsz,vsz,stime,user,uid' | grep topcom | sort -nrk5
  • netstat -lnp | grep 端口 top -p 进程pid
  • 参考http://madcloudsong.com/articles/138中的方法//此处只处理了32位的进程#include#pragmacomment(lib,"psapi.lib")//提升权限voidVengConfig::AdjustTokenPrivilegesForNT(){HANDLEhToken;...
  • 需求:杀掉内存占用较高的进程。解决方法:读取进程的/proc/[pid]/statm,取第二个值作为进程使用的内存
  • #!/bin/sh #crontabusage:*/2****/home/http_restart.sh>>/backup/restart_apache.log MIN_RAM=3200 FREE_RAM=`free-m|grepMem|awk'{print$4}'` echo$(date+"%y-%m-%d")`uptime...
  • #!/bin/bash # The calculation memory usage script. # Writen by Wangxiaoqiang 2014-11-21. COUNT=($(ps aux | awk '{print $6}' | grep -v '^[RSS|0]')) length=${#COUNT[@]} ...i<$leng
  • mysqld代表的是mysql的进程,以下是实时查询mysql进程所占内存信息 #!/bin/bash mysql_pid=$(ps -ef|grep mysqld|grep -v grep|awk '{print $2}') awk 'BEGIN{ printf "%-15s%-15s%-15s\n","servername","pid",...
  • 方法1:top,然后按M,系统进程将按照内存使用量的大小进行排序。 方法2:ps aux
  • 程序主要功能是:输入进程pid,对该pid进程进行所占物理内存、句柄数、线程数、GDI数等增长情况进行监控,并将数据保存txt文件,便于事后分析,主要应用与开发过程中监控内存泄漏等
  • 1> Fun= fun()-> receive after infinity -> ok end end. #Fun 2> {_,Bytes}=process_info(spawn(Fun),memory). {memory,2560} 3> Bytes div erlang:system_info(wordsize). 320 4>
  • linux ps命令,查看进程cpu和内存占用率排序 使用以下命令查看: ps -aux | sort -k4,4n ps auxw --sort=rss ...VSZ 进程所使用的虚存的大小 RSS 进程使用的驻留集大小或者是实际内存的大小 TTY 与进程关联
  • print "Apache进程内存占用率为:%.2f%%" % (memsize/float(memtotal)*100) 运行结果: # python a.py Apache进程占用内存大小:20472k Apache进程内存占用率为:0.25% 转载于:...
  • linux 中查看某个单进程程序运行所占内存(linux proc status statm详解) 本文来自:http://www.lifecrunch.biz/archives/216 转载自品味生活 linux 中查看 某个单进程程序运行所占内存所占的内存空间,设p
  • LR mmdrv.exe进程、线程与Vuser数量、所占内存的关系 Load Generator 对系统的要求 如果使用进程方式并发,并发10个虚拟用户,则会在任务管理器中出现10个mmdrv.exe进程; 如果使用线程方式并发,并发10个...
  • 运行期间new了100MB的内存空间,此时其他进程强制结束了a.exe(比如通过任务管理器强制结束) 那么对于windows来说,在a.exe结束后,它占用的相关资源是否都被释放(内存空间,线程,句柄等等。。)? 如果a...
  • 1 首先抓取system_server进程的hprof信息,并通过mat工具分析system_server的heap情况,那么这里hprof文件主要指java heap,那么只能用来分析java代码占用的堆内存情况 a. adb shell am dumpheap <processname...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 628
精华内容 251
关键字:

进程所占内存