精华内容
下载资源
问答
  • 在内存中运行exe文件 不写出 不释放 支持dll 对于加壳的软件可能不是很理想 自己测试下吧 易语言在内存运行EXE何DLL
  • 修改IDEA运行内存,加快运行速度

    万次阅读 2018-11-23 10:12:26
    IDEA相较于eclipse,占用的内存会大很多,有时候打开程序或者运行项目速度会很慢。为了解决这个问题我们可以通过修改相关的配置文件来加速运行速度。 具体步骤: 1、进入软件的bin目录,右键IDEA图标,选择属性,...

    IDEA相较于eclipse,占用的内存会大很多,有时候打开程序或者运行项目速度会很慢。为了解决这个问题我们可以通过修改相关的配置文件来加速运行速度。

    具体步骤:

    1、进入软件的bin目录,右键IDEA图标,选择属性,在属性界面打开文件所在位置(或者自己查找对应目录):

    属性界面
    属性界面

     

    bin目录界面
    bin目录

    2、查看自己的操作系统,因为我是64的,所以使用的是idea64.exe的启动项。IDEA内存相关的配置文件是ideaxx.exe.vmoptions。我要修改的是idea64.exe.vmoptions这个文件。用文本编辑器打开这个文件。

    最开始的配置内容:

    -Xms128m
    -Xmx512m
    -XX:ReservedCodeCacheSize=240m
    -XX:+UseConcMarkSweepGC
    -XX:SoftRefLRUPolicyMSPerMB=50
    -ea
    -Dsun.io.useCanonCaches=false
    -Djava.net.preferIPv4Stack=true
    -XX:+HeapDumpOnOutOfMemoryError
    -XX:-OmitStackTraceInFastThrow
    

    修改后的配置内容:

    -Xms1024m
    -Xmx2048m
    -XX:ReservedCodeCacheSize=512m
    -XX:+UseConcMarkSweepGC
    -XX:SoftRefLRUPolicyMSPerMB=50
    -ea
    -Dsun.io.useCanonCaches=false
    -Djava.net.preferIPv4Stack=true
    -XX:+HeapDumpOnOutOfMemoryError
    -XX:-OmitStackTraceInFastThrow
    
    

    对应的参数解释:
    -Xms1024m    设置IDEA初时的内存大小,提高Java程序的启动速度。
    -Xmx2048m    设置IDEA最大内存数,提高该值,可以减少内存Garage收集的频率,提高程序性能。
    -XX:ReservedCodeCacheSize=512m    保留代码占用的内存容量。

    这个参数可以根据实际的电脑配置自行决定。

     

    展开全文
  • 嵌入式:节省内存软件设计技巧

    千次阅读 2014-04-22 09:59:11
    本文讲述内存资源紧缺型嵌入式系统中节省内存软件设计方法。一般主控是单片机控制器的电子产品的成本跟内存的关系可是成正比的,尤其在SOC芯片设计时是固件开发需要重点关注的。大量量产前要确定内置SRAM的大小,...

            现在新买的安卓千元机都是2G内存的了,我们还要绞尽脑汁地省内存?是的,那是高端处理器的特色,咱们这里讲的是资源紧缺型的嵌入式系统设计方法。一般主控是单片机控制器的电子产品的成本跟内存的关系可是成正比的,尤其在SOC芯片设计时是固件开发需要重点关注的。大量量产前要确定内置SRAM的大小,而且是在满足功能需求的情况下越小越好。这就需要考究软件系统的设计和编程开发的技能了。这里仅就我个人的工作经验来总结,涉及的是音视频多媒体电子产品,类似系统一般都会自行定制操作系统,驱动、中间件和应用等模块都有,所谓麻雀虽小,五脏俱全。

            一、内存块分时复用

             分时复用即对代码进行分块(Bank)管理。它的设计需求来源于:

           1. 很多电子产品并不是像现在的安卓手机一样同时跑多个应用,顶多就听歌时浏览图片而已,非智能手机也是如此。但我们也会看到电子产品里面有有很多的应用,如设置、电子书、电话本、录音啊等等。因此,不同时运行的应用占用同一块内存空间理所当然。

           2. 驱动空间。有很多的驱动并不同时使用,如听FM时是FM驱动,听歌又是使用解码器,所以很多驱动也是可以服用同一块空间的。

           3. 中间件的复用。如UI、硬件驱动的再次封装使用等等,其由对应的应用直接调用,一般也存在复用的需求。

           4. 数据段的复用。应用和驱动都有数据,同样有复用的场景需求。

           理论上驱动和代码也可以服用空间的,但需要考虑的细节太多,而且这样做扩展性不好,所以应用一般是不会跟驱动复用空间的。一般较为粗糙地将软件系统分为以下几个部分:启动、驱动、操作系统、中间件、应用等层次。启动为一次性执行,不需太多考虑复用的空间。操作系统一般有常驻内存的需求,如中断管理、时间管理、调度管理、模块代码管理、虚拟文件系统等等,当然操作系统的一部分功能并不需要常驻内存,主要是一些调用频率较小的一些接口,如驱动装卸载、应用初始化等模块。不需常驻内存的一些接口实现也可以跟驱动复用空间。     

             咱们不妨比较一下高端 处理器的内存管理单元的功能,内存管理单元实现内存管理有两个部分,包括硬件TLB模块和软件的页表,硬件TLB是自动将虚拟地址的高N位匹配成物理内存的高N位,匹配是根据页表(TLB是页表的cache)进行。可以认为页表是虚拟-物理映射的索引表。高端处理器一般所带的内存都是M级别以上,往往是SDRAM,而不是内置 SRAM了。一般也会用支持多进程的操作系统,即同时支持多个应用在跑。而这多个应用能够使用的虚拟地址空间和物理地址空间都是整个空间(可能会划掉一部分用于操作系统,linux就是这样),也就是其在整个地址空间中进行分时复用。 而我们上面所讲的代码分块管理只是参考了MMU的设计思想,其分块是在一定的空间中进行的,而且应用和驱动的分块空间是分开的。 

           二、代码分块的技巧

           第一点是分块管理的需求和大致的原则,但是如何分块,块大小的设计极为考虑系统架构师的功力。块设大了浪费,小了会导致代码切换频繁效率低下。既然都是RAM,有时数据可以跟代码段放到同一个块中,而没有必要另加一块数据块。当然这些细节需要综合评估并加以详细设计。在成本敏感的电子产品中,这些技巧需要努力挖掘发挥。

           三、ROM代替RAM

           这只是从成本的角度去节省内存资源,有些代码需要常驻内容,但其内容并不会随着版本的更新而发生变化,如上节所讲操作系统的调度管理等,可以考虑将这些代码固化到ROM中。理论上操作系统大部分需要常驻内存的代码都可以固化。RAM和ROM同样大小的成本比大概是6:1,因此使用ROM也能大幅降低成本。

           四、系统移植时砍掉不需要的模块

           这是操作系统设计人员务必要考虑的。每个产品都有独有的功能,而底层操作系统具有普适性,在资源紧缺型系统中,砍掉不必要的模块是非常明智的。

           五、操作系统定制

           也可以称为改进操作系统,我们所阐述的系统一般都是封闭系统,只要能高效地实现功能,我们可以任意改动系统中所有的代码。例如对于可执行的ELF文件,操作系统如果按标准的流程要解析完ELF文件再加载,但不仅需要很多的内存资料,而且也效率低下。ELF有关加载和执行最重要的就是.CODE、.DATA、.CONST、.BSS等段信息,我们完全可以离线抽取出来生成一个新的简单的定制文件格式,操作系统只需解析这个简单的文件就可以了。这样做不仅节省内存,也能节省外存储空间。

           六、 编程技巧

           这个需要平时的积累。例如,在变量的排列方面,我们都知道编译会考虑对齐。

           char a;int b; char c;这样定义变量的次序需要的内存是比 char a; char c; int b;要大的。

          七、算法设计

           好的算法一般会是轻巧的,效率高的。

          八、代码编译优化

           编译时选择优化级别高的,这样生成代码大小有有大规模的减小。

          九、编译指令模式

          如arm里面选thumb指令,mips选择mips16e,这是由体系结构所决定的,体系结构也是为了考虑节省代码空间资源而设计了16位的指令模式,而这些CPU的字长往往是32位。这种方式能减少30%左右的代码量。

         十、有待你的评论,希望能看到更多的总结建议,谢谢!

    增加两点:

    1. 栈空间的规划

    每个线程都会有自己的栈,而每个线程的栈都应该根据其线程的调用深度来具体设定,像UCOS就有一个栈使用率的任务,我们不妨借用这种思路来看看某个线程最终的栈深度。

            设定独立的中断栈,可以避免每个任务栈都要给中断预留栈空间。

            扁平的函数调用方法用栈一般要比纵向的函数调用小。嵌入式开发有时为了效率和资源,不应该把代码分块分得太细,函数一大摞,既增加代码量和栈,也降低运行效率。

           2. 合理规划内存空间,调整好链接文件,尽可能做到已有物理空间的高度利用。

           例如,我们规划空间时往往代码段和数据段分开,但实际的代码段可能又用不完,这时就可以把一部分变量定位到代码段之后。





    展开全文
  • C# 内存运行程序 / CRTMemExecute

    千次阅读 2015-07-26 14:05:56
    内存运行程序或称傀儡程序也可以称外壳程序中运行你的程序, 简单的摆在程序被创建后强制挂起 并卸载原程序的原有区、写 入新的程序的代码 在重新执行、它如果是光明面可以保护程序, 如果黑暗面便是一个纯病毒木马 ...

    内存运行程序或称傀儡程序也可以称外壳程序中运行你的程序,

    简单的摆在程序被创建后强制挂起 并卸载原程序的原有区、写

    入新的程序的代码 在重新执行、它如果是光明面可以保护程序,

    如果黑暗面便是一个纯病毒木马

    最好选择在系统进程中运行,如cmd,svchost它只是一个可以

    接穿透防火墙就是一个非常诱人的条件、更别谈svchost连杀

    软也不敢轻易动手、

    如果是在QQ自身进程运行,你可以制作一个与QQ相同的界面

    在你的程序写各种各样的恶意代码、窃取QQ账号密码及监视

    用户操作及QQ窗体上所有的信息、及利用QQ的一些特权、

    而用户却无法发现,但的确存在于众 想想不是很美妙吗?

    但是这是违法行为 尽量不要做 本技术你若 应用在保护软件上、

    我想会是一件很好的事情、

    DLL本身是无毒的,至于使用的开发者是否别有用心我并

    不可能会知道、该DLL是在x86环境下编译的、简单的说

    你在项目中使用本DLL时必须选择x86环境、

    金山火眼安全报告:http://fireeye.ijinshan.com/analyse.html?md5=61704f7ab843efcf3acdd1efc8c3b6b4&sha1=a4c3d63ae190a676d52bc414d052a30e4f6caddd&type=1

    起初我并不想编写为Native DLL,但是后来因为无法在

    svchost中运行cmd而选择了放弃、具体原因目前还不知

    不过Native化也可以,至少可以兼容多个语言 而且本身

    托管代码运行在CLR上,多多少少肯定会有一些区别、

    C#、Delphi、C++、E、VB 倒也是一种不错的选择、对吧

     


    CRTMemExecute 返回的是一个(进程标识 / PID)

    你可以通过 Process.GetProcessById 得到操作它

    的.NET上层互助类、

    CRTMemExecute 第一个参数是 欲在宿主内存中运行的字节

    CRTMemExecute 第二个参数是 欲被运行的宿主文件

    CRTMemExecute 第三个参数是 欲在宿主内存中运行的字节长度


    源代码:http://pan.baidu.com/s/1jGENpAI

     

    展开全文
  • C#获取程序运行内存

    千次阅读 2019-04-18 21:58:56
    /// <summary> /// 获取程序运行内存 /// </summary> /// <param name="rmu_exe">exe名(不带exe)</param> /// <returns></returns> internal ...
      /// <summary>
            /// 获取程序运行内存
            /// </summary>
            /// <param name="rmu_exe">exe名(不带exe)</param>
            /// <returns></returns>
            internal static string GetRam(string rmu_exe)
            {
                try
                {
                    Process CurrentProcess = Process.GetProcessesByName(rmu_exe)[0];
                    PerformanceCounter pf1 = new PerformanceCounter("Process", "Working Set - Private", CurrentProcess.ProcessName);
                    string workingSe = String.Format("{0:F}", pf1.NextValue() / 1024 / 1024);
                    return $"{ workingSe }MB";
                }
                catch
                {
                    string rmu_mbRam = "0 KB";
                    return rmu_mbRam;
                }
            }

     

    展开全文
  • APP运行占用内存分析

    千次阅读 2015-09-13 21:34:46
    对于手机来说,运行内存还是挺珍贵的,因此,如果你的APP能够占用尽量少的内存,无疑会更加受用户欢迎。下面说说APP运行时占用内存的分析: 测试方法: 一、使用Android Studio自带的工具Memory monitor,来测试。...
  • myeclipse加大运行内存

    千次阅读 2019-02-21 09:43:45
    当我们打开myeclipse时,有时要等很久才能打开进入...这个情况的原因是,myeclipse这个软件内存分配太小了,那行吧,加大其运行内存。  第一,找到myeclipse 的安装路径,编辑myeclipse.ini文件。添加:  -Xmx...
  • idea 运行内存不足

    千次阅读 2017-12-12 20:54:35
    今天在做程序调试时,...首先确认自己安装的java的jdk是64位的,如果不是,请更新jdk到64位版本,因为64可以支持更多的运行内存。 其次,在idea安装目录下(C:\Program Files (x86)\JetBrains\IntelliJ IDEA 2016.3
  • 电脑运行内存变少

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

    千次阅读 2016-09-22 23:42:45
    转载于:C语言中文网高级部分。 如果你的电脑上安装了QQ,你...双击QQ图标,操作系统就会知道你要运行这个软件,它会在硬盘中找到你安装的QQ软件,将数据(安装的软件本质上就是很多数据的集合)复制到内存。对!就是复
  • RAM,ROM 是手机自带内存,其中RAM 是手机运行内存,ROM是手机机身存储。 存储卡扩展指的是最大支持的TF卡(一般都是T-Flash 卡)空间,他是手机的外置存储设备。ROM是手机的内置存储设备,都是用来存储程序和...
  • STM32F1_外部SRAM作为运行内存

    万次阅读 2016-05-23 00:02:02
    对于运行内存应该都知道它的意思,主要是程序运行时所使用的RAM,比如我们定义的全局变量、局部变量这些在程序运行时都会在RAM中为它们开辟一片空间,用于运行时所使用。 今天提供的工程是基于前面“TIM延时”的...
  • 从TeamViewer的运行内存中提取密码

    千次阅读 2017-08-09 06:04:26
    n=client_share&app=news_article&utm_source=mobile_qq&iid=13287414181&utm_medium=toutiao_android 从TeamViewer的运行内存中提取密码
  • HIT软件构造 内存管理

    千次阅读 2019-05-28 17:22:13
    基于栈:运行时栈,存储函数中变量的引用和简单数据类型的值,不支持复杂数据类型 基于堆: 在一块内存里分为多个小块,每块包含 一个对象,或者未被占用;存储复杂数据类型,也就是new出来的对象 结合图像理解堆和...
  • java运行内存分配图

    万次阅读 2012-02-22 12:24:43
     Java程序运行时的内存结构分成:方法区、栈内存、堆内存、本地方法栈几种。   方法区  存放装载的类数据信息,包括:基本信息:每个类的全限定名、每个类的直接超类的全限定名、该类是类还是接口、该类型的访问...
  • 程序运行时的内存空间分布

    千次阅读 2016-12-15 19:21:57
       我们在写程序时,既有程序的逻辑代码,也有在程序中定义的变量等数据,那么当我们的程序进行时,我们的代码和数据究竟是存放在哪里的呢?下面就来总结一下。... 其实在程序运行时,由于内存的管理
  • 广义的手机系统内存分为“手机运行内存”及“手机非运行内存”。手机的“运行内存”即手机的RAM,相当于电脑的内存(或者叫内存条),手机的“非运行内存”,即手机的ROM,是机身内部存储器,相当于电脑的硬盘。手机...
  • 1、减少开机磁盘扫描等待时间,开始→运行,键入:chkntfs /t:0 2、删除系统备份文件:在各种软硬件安装妥当之后,其实XP需要更新文件的时候就很少了。开始→运行,敲入:sfc.exe /purgecache 然后回车即可,近3xxMb。...
  • 程序运行内存占用不断增大

    万次阅读 2017-03-30 10:03:58
    1.考虑有没有日志类,如果程序在运行时不断向控件中写日志,而又没有采用控制日志条目,则内存会一直增大。
  • 经常看见有人推荐一键释放内存内存管理软件,或者说自己的ROM精简后可用内存有500+甚至600+……我个人是很不理解了……  首先,从内存的原理说起。这个说起来比较长篇,举个简单的例子来说明:你去图书馆...
  • Windows 8 中的运行内存减少

    千次阅读 2011-10-15 22:41:52
    Windows 8 的运行内存使用是确定 Windows 8 系统要求以及将承载 Windows 8 的大量设备类型的一个重要因素。如您所知,我们要在基于 SoC 的低功耗设备上交付完整的 Windows 8 体验。这就使得保留大量内存供多个并行...
  • 运行客户端程序点击获取屏幕总会提示内存不足 搞了半天也不知道问题在哪里,也不知道怎么调试 求大神指教 ![图片说明](https://img-ask.csdn.net/upload/201505/09/1431163305_74079.jpg) 代码: ...
  • 本文继续阐述基于低端控制器CPU的SoC固件架构设计。这一节讲述内存空间的具体规划分配,包括嵌入式固件系统软件层次、程度段组成、物理内存分块设计和具体的程序内存空间分配原则。
  • 众所周知Java从95年出世之后就一直处于语言排行榜的 top 前几位,最主要的原因是因为Java的内存管理机制,我们coding 只管new 对象(前提是正常编码)从来基本没有考虑过对象怎么存在,如何销毁释放等问题。...
  • 程序运行时提示内存----出错

    千次阅读 2012-08-07 00:17:06
    程序运行时提示内存----出错,可能就是缺失文件。 运行某些程序的时候,有时会出现内存错误的提示,然后该程序就关闭。  “0x????????”指令引用的“0x????????”内存。该内存不能为“read”。  “0x????????...
  • pycharm 修改程序运行所需内存

    万次阅读 2018-04-20 16:32:39
    -Xms 和 -Xmx是java 命令的一个选项,用来设置你的应用程序启动时的可用内存大小和运行时的可用的内存大小。 修改 -Xms为 256m -Xmx为 1024m 修改后设置为: - server - Xms256m - Xmx1024m - XX :...
  • 内存稳定性测试软件(MemTest)

    万次阅读 2019-01-03 14:57:04
    给大家介绍一款免安装的内存稳定性测试软件--MemTest,它不但可以彻底的检测出内存的稳定度,还可同时测试记忆的储存与检索资料的能力,memtest pro汉化版软件体积小巧,绿色免安装,使用简单,有兴趣的小伙伴们不妨...
  • Linux下评估程序运行时间及内存占用情况的简便方法 Sason@CSDN 从一篇英文论文中看到用于简易评估程序运行时间及内存占用情况的方法,查找资料后记录如下。 本文末尾附输出内存使用情况的函数。 1....
  • 32兆内存就可以运行WIN2000

    千次阅读 2005-07-19 09:22:00
    优化之后:Windows 2000系统开始时间仅10秒,还剩10MB以上内存运行程序,系统反应速度相当快。指南:安装最简单的Windows 2000操作系统注意:1.不要安装任何Service Pack(在主流系统上,SP可以提高计算机性能和稳定...
  • JVM的内存形式:   (1)方法区:存放了要加载的类的信息(名称,修饰符等)、类中的静态变量...方法区域也是全局共享的,在一定条件下它也会被GC,当方法区域要使用的内存超过其运行的大小时,会抛出OutOfMemo

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 641,286
精华内容 256,514
关键字:

内存运行软件