精华内容
下载资源
问答
  • 电脑运行内存变

    2020-10-12 10:01:25
    电脑运行内存是8G的,开始可以使用有7G多,属于正常现象。但后面使用过程中发现内存可使用的只有6GB多了(都是在没开软件的情况下),这是什么情况,怎么恢复?
  • C#--winform应用程序运行内存变大

    千次阅读 2020-12-02 18:59:37
    以XP 系统为例子,程序启动后,打开任务管理器,会看到占用的内存量比较,你把程序最小化,会发现该程序占用的内存迅速减小到一个很小的值,再恢复你的程序,你会发现内存占用又上升了,但是比你刚启动时的内存

    前言:

    .NET 一直所为人诟病的就是“胃口太大”,狂吃内存,虽然微软声称 GC 的功能和智能化都很高,但是内存的回收问题,一直存在困扰,尤其是 winform 程序,其主要原因是因为.NET程序在启动时,是需要由JIT动态编译并加载的,这个加载会把所有需要的资源都加载进来,很多资源是只有启动时才用的。

    以XP 系统为例子,程序启动后,打开任务管理器,会看到占用的内存量比较大,你把程序最小化,会发现该程序占用的内存迅速减小到一个很小的值,再恢复你的程序,你会发现内存占用又上升了,但是比你刚启动时的内存占用值还是小的,这就是一个资源优化的过程,这个过程是操作系统主动完成的。

    Winform降低系统内存占用的优化方案:

    
     

    1、使用性能测试工具dotTrace 3.0,它能够计算出你程序中哪些代码占用内存较多

    2、强制垃圾回收

    3、用timer,每几秒钟调用:SetProcessWorkingSetSize(Process.GetCurrentProcess().Handle, -1, -1);

    4、发布的时候选择Release

    5、注意代码编写时少产生垃圾,比如String + String就会产生大量的垃圾,可以用StringBuffer.Append

    6、this.Dispose(); this.Dispose(True); this.Close(); GC.Collect();

    7、注意变量的作用域,具体说某个变量如果只是临时使用就不要定义成成员变量。GC是根据关系网去回收资源的。

    8、检测是否存在内存泄漏的情况,详情可参见:内存泄漏百度百科

    定期清理执行垃圾回收的代码:

    使用方法:在窗口程序中用一个timer计时器,每隔几秒钟调用一次该释放内存的ClearMemory()函数即可!

            #region 内存回收
            [DllImport("kernel32.dll", EntryPoint = "SetProcessWorkingSetSize")]
            public static extern int SetProcessWorkingSetSize(IntPtr process, int minSize, int maxSize);
            /// <summary>
            /// 释放内存
            /// </summary>
            public static void ClearMemory()
            {
                GC.Collect();
                GC.WaitForPendingFinalizers();
                if (Environment.OSVersion.Platform == PlatformID.Win32NT)
                {
                    //FrmMian为我窗体的类名
                    FrmMian.SetProcessWorkingSetSize(System.Diagnostics.Process.GetCurrentProcess().Handle, -1, -1);
                }
            }
            #endregion

    下图是使用ClearMemory()前后的内存消耗对比图:

    转载于:https://blog.csdn.net/qq15577969/article/details/89880538

    展开全文
  • malloc申请最大运行内存

    千次阅读 2018-11-17 20:06:27
    贴一个在Windows平台下,关于malloc申请最大运行内存的代码,运行很费时间,可能是一个byte去读,效率比较低吧。 #include&lt;stdio.h&gt; #include&lt;stdlib.h&gt; unsigned maximum = 0; int...

    贴一个在Windows平台下,关于malloc申请最大运行内存的代码,运行很费时间,可能是一个byte去读,效率比较低吧。

    #include<stdio.h>
    #include<stdlib.h>
    
    unsigned maximum = 0;
    
    int main()
    {
    	unsigned blocksize[] = { 1024 * 1024, 1024, 1 };
    	int i, count;
    	for (i = 0; i < 3; i++)
    	{
    		for (count = 1;; count++)
    		{
    			void *block = malloc(maximum + blocksize[i] * count);
    			if (block)
    			{
    				maximum = maximum + blocksize[i] * count;
    				free(block);
    			}
    			else
    			{
    				break;
    			}
    		}
    	}
    	printf("maximum mallco size = %u G \n", maximum/1024/1024/1024);
    }
    

    关于这个内存管理问题,似乎还比较复杂,也很重要,为了在以后的工作较少雷区,还是很有必要深入学习一番。贴一个链接,http://dev.yesky.com/108/2380608.shtml

    虚拟内存是内存管理技术的极其实用的创新。它是一段程序(由操作系统调度),持续监控着所有的物理内存中的代码段,数据段,并保证他们在运行中的效率以及可靠性,对于每个用户层的进程分配一段虚拟内存空间。当进程建立时,不需要在物理内存件之间搬移数据,数据存储于磁盘内的虚拟内存空间,也不需要为改进程去配置主内存空间,只有当该进程被调用的时候才会被加载到主内存。

    虚拟内存是由什么产生的呢?内存可以通过许多媒介实现,例如磁带或是磁盘,或是小阵列容量的微芯片。从1950年代开始,计算机的更复杂,它的内部由许多种类的内存组成。内存管理的任务也变得更加复杂,甚至必须在一台机器同时执行多个进程。

    对于Win32平台,操作系统中的虚拟内存最大只有4G。但是给程序用的内存大概在1.5G左右,Linux系统会多些。

    常见的内存错误及其对策

    * 内存分配未成功,却使用了它。常用解决办法是,在使用内存之前检查指针是否为NULL。如果指针p是函数的参数,那么在函数的入口处用assert(p!=NULL)进行检查。如果是用malloc或new来申请内存,应该用if(p==NULL) 或if(p!=NULL)进行防错处理。

    * 内存分配虽然成功,但是尚未初始化就引用它。 内存的缺省初值究竟是什么并没有统一的标准,尽管有些时候为零值,我们宁可信其无不可信其有。所以无论用何种方式创建数组,都别忘了赋初值,即便是赋零值也不可省略,不要嫌麻烦。

    * 内存分配成功并且已经初始化,但操作越过了内存的边界。

    * 忘记了释放内存,造成内存泄露。动态内存的申请与释放必须配对,程序中malloc与free的使用次数一定要相同,否则肯定有错误(new/delete同理);
     

     有三种情况:
      (1)程序中的对象调用关系过于复杂,实在难以搞清楚某个对象究竟是否已经释放了内存,此时应该重新设计数据结构,从根本上解决对象管理的混乱局面。
      (2)函数的return语句写错了,注意不要返回指向“栈内存”的“指针”或者“引用”,因为该内存在函数体结束时被自动销毁。
      (3)使用free或delete释放了内存后,没有将指针设置为NULL。导致产生“野指针”。


      【规则1】用malloc或new申请内存之后,应该立即检查指针值是否为NULL。防止使用指针值为NULL的内存。
      【规则2】不要忘记为数组和动态内存赋初值。防止将未被初始化的内存作为右值使用。
      【规则3】避免数组或指针的下标越界,特别要当心发生“多1”或者“少1”操作。
      【规则4】动态内存的申请与释放必须配对,防止内存泄漏。
      【规则5】用free或delete释放了内存之后,立即将指针设置为NULL,防止产生“野指针”

    内存有三种分配方式

    静态存储区:内存在程序编译的时候就已经分配好,这块内存在程序的整个运行期间都存在。它主要存放静态数据、全局数据和常量。(数据段:存放程序中已初始化的全局变量的一块内存;代码段(正文段):存放程序执行代码的一块内存区域;BSS段:存放程序中未初始化的全部变量和静态变量的一块内存区域,程序结束后,静态变量资源由系统自动释放)。

    栈区:在执行函数时,函数(包括main函数)内局部变量的存储单元都可以在栈上创建,函数执行结束时这些存储单元自动被释放。

    堆区:亦称动态内存分配。程序在运行的时候用malloc或new申请任意大小的内存,程序员自己负责在适当的时候用free或delete释放内存。

    展开全文
  • 程序运行内存占用不断增大

    万次阅读 2017-03-30 10:03:58
    1.考虑有没有日志类,如果程序在运行时不断向控件中写日志,而又没有采用控制日志条目,则内存会一直增大。
    1.考虑有没有日志类,如果程序在运行时不断向控件中写日志,而又没有采用控制日志条目,则内存会一直增大。
    
    展开全文
  • 最近在Ubuntu中使用docker安装了Oracle数据库容器,启动后发现自己电脑卡了,排查后发现是Oracle数据库运行时默认占用内存过,决定修改Oracle默认的运行内存 需要注意的是修改运行内存的大小会对Oracle数据库的...

    最近在Ubuntu中使用docker安装了Oracle数据库容器,启动后发现自己电脑变卡了,排查后发现是Oracle数据库运行时默认占用内存过大,决定修改Oracle默认的运行内存
    需要注意的是修改运行内存的大小会对Oracle数据库的性能产生影响

    首先使用sys用户登录

    sqlplus sys/ as sysdba
    

    查看当前内存分配大小

    show parameter sga;
    

    在这里插入图片描述
    修改内存大小
    我们需要修改的是: sga_target 和 sga_max_size
    首先修改target大小 ,这个值必须小于等于sga_max_size ,否则会导致数据库无法启动;

    alter system set sga_target=1024m scope=spfile;
    

    修改max_size:

    alter system set sga_max_size=1024m scope=spfile;
    

    设置的大小可以根据自己的需要进行设置

    展开全文
  • JAVA运行内存的设置

    千次阅读 2018-11-05 09:41:01
    JAVA运行内存的设置  一些java应用程序可以被高度的CPU密集型以及他们需要很多内存。这样的应用程序通常运行速度慢,因为内存高的要求。所以,我们可以在相关的配置文件中进行修改调整内存大小。  Xms = 设置...
  • 最近接了一个一点的项目,同时要运行几个工程,idea得非常卡,我想自己的电脑是8g的内存怎么打开工程都这么卡呢? 原来是默认idea占用的内存参数初始化的时候是指定了的,如果不设置,8g的内存就没有得到利用...
  • 现在更新的手机要么是6G运行内存(RAM),要么8G,仅仅差2个G的运行内存就要多出几百块钱,有人可能会说运行内存速度越快,这是肯定的,运行内存顾名思义就是在APP运行时的内存,我们手机的APP在运行的时候...
  • Unity导出ios工程如何减小运行内存、安装包(ipa)、以及安装后大小(概说) ...1、 运行内存;在低配版的iphone4s,ipad2等512m老机型机器上面,当加载资源过多时,容易引起内存溢出,导致应用闪退。 2
  • IDEA运行时占用内存的一种状况

    千次阅读 2020-06-08 22:23:42
    在代码开发过程中,本地运行,发现内存占用过。 二、解决问题的步骤 现象: 本地运行项目,IDEA运行的过程中,CPU瞬间直到100% 内存伴随CPU一起提升。 IDEA 提示文件过超过6M。 后续再次提示文件过超过10M。...
  • 插入内存后总数变大,但可用没

    千次阅读 2015-04-17 16:25:49
    进“资源管理器”可发现,新加的内存给配给了硬件预留。        此时,我们找到C盘下msconfig.exe(一般是在C:\Windows\System32下面),然后双击运行,如下图所示:   点击->高级选项 勾上最大...
  • 其实这都是内存搞的鬼,下面就由小编雨林木风为大家介绍几个小妙招,让内存运行更加高速效率。 1.监视内存。 系统的内存不管有多,总是会用完的,虽然有虚拟内存,但由于硬盘的读写速度无法与内存的速度相比,...
  • jmeter-修改jmeter运行内存

    千次阅读 2020-09-18 11:10:16
    注意:一般而言,堆的最大值不要超过物理内存的一半,否则容易导致jmeter运行变慢、卡顿甚至内存溢出(因为java本身的垃圾回收机制是动态分配内存, 调整时候其本身会占用很多内存),NEW分配的内存,不宜太! 3...
  • IntelliJ IDEA 修改内存大小,使得idea运行更流畅
  • import psutil import os def show_info(start): ... #根据pid找到进程,进而找到占用的内存值 info = p.memory_full_info() memory = info.uss/1024/1024 return memory start=show_info('开始') a=[i
  • 1.问题描述: 使用VisionPro作为底层开发视觉处理软件,开发二维码解码程序,在部署产线较少情况下未发现为题,但大量部署后发现,使用Visionpro开发的软件会出现一些问题,常见问题如下:软件正常运行内存使用1G...
  • -Xms 和 -Xmx是java 命令的一个选项,用来设置你的应用程序启动时的可用内存大小和运行时的可用的内存大小。  修改  -Xms为 256m  -Xmx为 2048m  修改后设置为:   -Xms256m -Xmx2048m...
  • Java 运行内存区域

    千次阅读 2018-02-28 18:09:50
    java运行内存区域如图所示: 1.程序计数器 用于指示下一条执行哪个命令 由于java虚拟机的多线程是通过线程轮流切换并分配处理器执行时间的方式实现的,在任意一个确定的时刻,处理器只会执行一条线程中的指令,...
  • 如何优化app的运行内存占用 来自: http://zhidao.baidu.com/link?url=yJcZTThat8DGe_JYrMs57zsEkvIG3Yh2_4Ui5r3_7764FpFB3ACCJ3Xs_gacS7K1D2j-9CVwkgepV3kWZu2ucRUjzru7SsrqaoP4kbK0pFy 一、尽量减少Service...
  • IDEA解决运行项目虚拟内存溢出问题

    万次阅读 2018-07-03 16:23:22
    在我们运行一个比较的项目的时候总是...我的电脑是8G运行内存,256的固态,你告诉这样都能内存溢出?大哥不要激动,不是说你的电脑内存溢出,请听我慢慢的解释: PermGen space的全称是Permanent Generation spac...
  • idea有个配置文件,可以设置内存大小的,就跟咱的jvm的内存里面的堆大小,栈大小等等,可以设置的,而且设置了之后,你这个的性能就会得到提升。具体看下面怎么修改。 先说所要修改的文件 idea.vmoptions 的位置,...
  • Java 内存区域-运行时数据区域

    千次阅读 2018-08-19 20:46:08
    一开始看的比较快,对JVM 运行时数据区域只有一个模糊的概念,不太清楚不同内存区域里面到底存放了那些数据,所以在此记录。   我们都知道Java 与C、C++ 最大的区别就是内存管理领域(Java 有内存动态分配和垃圾...
  • 原因是为WebLogic分配的内存太少了。通过修改commom/bin/commEnv.cmd文件来增加内存分配。  修改的部分如下: :bea if "%PRODUCTION_MODE%" == "true" goto bea_prod_mode set JAVA_VM=-jrockit se
  • 如何优化app的运行内存占用

    千次阅读 2016-03-23 20:38:59
    一、尽量减少Service的使用: 当你的app需要使用service来处理后台任务的时候,要保证当前的任务完成时,该service也要停止。另外,要注意的是,当停止这个service的时候,不要...保留没有用的service最可怕的内存管理
  • 一、CPU和运行内存的关系 CPU是负责运算和处理的,内存是交换数据的,没有内存,CPU就没法接收到数据。 内存是计算机与CPU进行沟通的桥梁。计算机中所有程序的运行都是在内存中进行的,因此内存的性能对计算机的...
  • 项目发布到Production服务器上,经过一段时间跟踪发现服务器上项目的内存占有量在缓慢增长,但是在本地做压力时却没有发现这个问题,或者虽然做了压力测试单由于环境的差异内存增长不明显所以没有注意。于是就下载了...
  • 运行了几次深度学习的项目后,发现我的c盘,越来越小。 原因: 原因是我把数据集放在了项目目录下,每次运行的时候好像都会indic一下,具体原因说实话我也不懂,但是我找到解决方法了!!!参考别人的例子,和...
  • 对于Java开发人员来讲,在虚拟机自动内存管理机制的帮助下,不需要为每一个new操作去...正是因为JVM管理内存控制的权利,一旦出现内存泄露和内存溢出的问题,如果不了解JVM是怎样使用内存的,排查错误将得异常困难。
  • 很高兴回答你的问题,手机运行内存6+128G和8+128G有区别是肯定的,中间相差2GB。哪iPhone手机2GB,3GB手机为什么比安卓手机8G运行内存、12G运行内存还要流畅,安卓新手机上手也非常流畅。 一部手机不是手机运存内存...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 619,650
精华内容 247,860
关键字:

怎样让运行内存变大