内存

start Android 内外存彻底研究

主宰稳场 提交于 2019-12-09 10:36:17
一部Android手机存在不同的存储空间类型。拿我的LG Optimus举例,他有512MB ROM和512MB RAM,还有一个SDHC的扩展槽,标配2G内存卡,最大可支持32G内存卡。那么这些数据都是什么意思呢? RAM RAM是Random Access Memory的缩写,中文名称是随机存取存储器。对于大多数的计算机和智能手机来说,RAM可以使一个软件快速并直接地读取和写入数据。当断电的时候RAM中的内容就会丢失,比如手机关机。RAM的大小决定了你能同时运行几个程序,也决定了你最大能加载多大的文件。当RAM不足的时候就会提示“Out of memory”错误。因为Android 2.2能提前预测当需要内存的时候,哪一个程序将要被从RAM中去除,所以RAM的信息并没有显示到“设置”菜单里。Android 2.2之前的版本最大只支持256MB内存,但是Android 2.2可以支持大容量内存,比如512MB RAM。 ROM ROM是Read-Only Memory的缩写。以前常用来表示一旦出厂后上面存储的数据就不能被修改,同时即使没有电,数据也不会丢失。后来,一种新型的ROM——EEPROM,代替了原来的ROM。这种EEPROM允许用高一点的电压改写数据以便用于升级。以后Flash Memory(闪存)代替了EEPROM,闪存可以很容易的修改内容。

Android高效显示图片详解(二)

*爱你&永不变心* 提交于 2019-12-07 20:18:13
实际的使用环境中,如果图片来源是SD卡或者网络,那那么加载图片的过程一定不要放在UI线程中,这样会严重的阻塞UI线程,出现ANR,程序就废了。因此我们首先要实现异步加载。 第一步:利用AsyncTask实现图片的异步加载 将decodeSampledBitmapFromResource方法放入Task的doInBackground中后台执行。不熟悉AsyncTask的同学可以学习AsyncTask的相关知识,这里不再过多介绍。 代码: class BitmapWorkerTask extends AsyncTask<Integer, Void, Bitmap> { private final WeakReference<ImageView> imageViewReference; private int data = 0; public BitmapWorkerTask(ImageView imageView) { // Use a WeakReference to ensure the ImageView can be garbage collected imageViewReference = new WeakReference<ImageView>(imageView); } // Decode image in background. @Override protected

【内存字节】深入理解sizeof占位内存

核能气质少年 提交于 2019-12-06 20:28:17
###运行代码 让计算机告诉你数据类型站内存情况 //32位系统,地址长度是32位(bit),也就是4Byte 64位系统,地址长度是64位(bit),也就是8Byte //注意 1byte = 8 bit;sizeof byte #import <Foundation/Foundation.h> int main(int argc, char *argv[]) { @autoreleasepool { char a[] = "go swift"; //自动为末尾加上'/0',注意空格也要占字节 char b[14] = "go swift"; char *c = a; char *d = "01234"; int16_t t16; int32_t t32; int64_t t64; NSLog(@"%ld", sizeof(a)); NSLog(@"%ld", sizeof(b)); NSLog(@"%ld", sizeof(c)); NSLog(@"%ld", sizeof(d)); //d是指向字符串常量的字符指针 NSLog(@"%ld", sizeof(*d)); //*d是第一个字符 (所占大小由数据类型决定) NSLog(@"int type: %ld,%ld,%ld,%ld", sizeof(t16),sizeof(t32),sizeof(t64),sizeof(

Java+内存分配及变量存储位置的区别

我只是一个虾纸丫 提交于 2019-12-06 02:13:02
Java内存分配与管理是Java的核心技术之一,之前我们曾介绍过Java的内存管理与内存泄露以及Java垃圾回收方面的知识,今天我们再次深入Java核心,详细介绍一下Java在内存分配方面的知识。一般Java在内存分配时会涉及到以下区域: ◆寄存器:我们在程序中无法控制 ◆栈:存放基本类型的数据和对象的引用,但对象本身不存放在栈中,而是存放在堆中(new 出来的对象) ◆堆:存放用new产生的数据 ◆静态域:存放在对象中用static定义的静态成员 ◆常量池:存放常量 ◆非RAM存储:硬盘等永久存储空间 Java内存分配中的栈 在函数中定义的一些基本类型的变量数据和对象的引用变量都在函数的栈内存中分配。 当在一段代码块定义一个变量时,Java就在栈中 为这个变量分配内存空间,当该变量退出该作用域后,Java会自动释放掉为该变量所分配的内存空间,该内存空间可以立即被另作他用。栈中的数据大小和生命周期是可以确定的,当没有引用指向数据时,这个数据就会消失。 Java内存分配中的堆 堆内存用来存放由new创建的对象和数组。 在堆中分配的内存,由Java虚拟机的自动垃圾回收器来管理。 在堆中产生了一个数组或对象后,还可以 在栈中定义一个特殊的变量,让栈中这个变量的取值等于数组或对象在堆内存中的首地址,栈中的这个变量就成了数组或对象的引用变量。 引用变量就相当于是 为数组或对象起的一个名称

报表性能优化方案之报表服务器优化基础讲解

◇◆丶佛笑我妖孽 提交于 2019-12-04 04:07:04
内存 JVM堆栈内存是决定应用服务器性能的关键指标,一般服务器默认的内存配置都比较小,在较大型的应用项目中,这点内存是不够的,因此需要进行查看与修改Web服务器内存大小,接下来就介绍服务器内存查看的方法以及不同服务器内存的修改方式。 各应用服务器的内存配置方法不尽相同,如下列出了常用服务器的JVM参数(-Xms,-Xmx)配置方法。 JVM参数定义: - Xms: 初始化内存大小 - Xmx: 可以使用的最大内存 以下示例工具:报表开发工具FineReport 服务器内存的查看 如果您想要查看应用服务器的内存配置情况,可以启动Web服务器,进入平台系统,URL地址为: http://localhost:8080/WebReport/ReportServer?op=fr_platform ,选择 管理系统>系统监控>系统状态>内存使用情况 ,即可查看到当前web服务器的内存使用情况,如下图: 注:如果用户购买了数据决策系统,那么URL地址可以输入 http://localhost:8075/WebReport/ReportServer?op=fs 其中: 空闲内存:204M是指可用剩余内存为:204M。 所有内存:247M是指当前调用的内存为:247M。 最大内存:494M是指可调用的最大内存为:494M。 FineReport 内存机制 1. 描述

报表性能优化方案之多种报表服务器内存修改方法

↘锁芯ラ 提交于 2019-12-03 01:11:17
服务器内存修改 各应用服务器的内存配置方法不尽相同,如下列出了常用服务器的JVM参数(-Xms,-Xmx)配置方法。 JVM参数定义: - Xms: 初始化内存大小 - Xmx: 可以使用的最大内存 示例工具 以下示例工具:报表开发工具FineReport Tomcat 服务器内存修改 1. 问题描述 java应用程序运行过程中会使用web应用服务器的内存,如执行报表获取的数据,运算的中间数据等都需要暂存在服务器内存中。 当没有空内存可用时,就会出现内存溢出错误: java.lang.OutOfMemoryError:Java heap space 。 2. 解决方案 为了避免内存溢出的问题,我们一方面应适当启用磁盘缓存,另一方面可以根据实际情况调整服务器内存大小。 下面说明如何调整服务器内存大小。 · 解压版通过 start.bat 启动 tomcat 在windows系统中,找到 %Tomcat_Home%/bin/catalina.bat ,对这个文件进行编辑。 找到这样一行代码: 1. rem ----- Execute The Requested Command --------------------------------------- 在其下添加 1. set JAVA_OPTS= -Xms256M -Xmx512M ms代表初始时内存大小,mx代表最大

JVM 系列二:java.lang.OutOfMemoryError: unable to create new native thread

醉酒当歌 提交于 2019-12-02 08:38:02
问题描述 Java程序运行过程中抛出java.lang.OutOfMemoryError: unable to create new native thread,如下所示: java.lang.OutOfMemoryError: unable to create new native thread at java.lang.Thread.start0(Native Method) at java.lang.Thread.start(Thread.java:691) at java.util.concurrent.ThreadPoolExecutor.addWorker(ThreadPoolExecutor.java:949) at java.util.concurrent.ThreadPoolExecutor.processWorkerExit(ThreadPoolExecutor.java:1017) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1163) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) at java.lang.Thread.run

java JVM虚拟机选项: Xms Xmx PermSize MaxPermSize 区别

不羁岁月 提交于 2019-12-02 08:35:18
java虽然是自动回收内存,但是应用程序,尤其服务器程序最好根据业务情况指明内存分配限制。否则可能导致应用程序宕掉。 举例说明含义: -Xms128m 表示JVM Heap(堆内存)最小尺寸128MB,初始分配 -Xmx512m 表示JVM Heap(堆内存)最大允许的尺寸256MB,按需分配。 说明:如果-Xmx不指定或者指定偏小,应用可能会导致java.lang.OutOfMemory错误,此错误来自JVM不是Throwable的,无法用try...catch捕捉。 PermSize和MaxPermSize指明虚拟机为java永久生成对象(Permanate generation)如,class对象、方法对象这些可反射(reflective)对象分配内存限制,这些内存不包括在Heap(堆内存)区之中。 -XX:PermSize=64MB 最小尺寸,初始分配 -XX:MaxPermSize=256MB 最大允许分配尺寸,按需分配 过小会导致:java.lang.OutOfMemoryError: PermGen space MaxPermSize缺省值和-server -client选项相关。 -server选项下默认MaxPermSize为64m -client选项下默认MaxPermSize为32m 经验: 1、慎用最小限制选项Xms,PermSize已节约系统资源。

virtualbox导致Windows7重启

萝らか妹 提交于 2019-12-02 07:37:35
最近想要将T410的内存从2g增加到4g,但是发现不管使用什么品牌的内存,系统都会不定时的重启。一开始还以为是T410的硬件问题,后来用了一条和原装内存一模一样的三星内存,发现还是重启,于是开始怀疑是软件的问题。经过几天的观察,终于发现,是virtualbox搞得鬼。只要不运行virtualbox,系统就不会重启。不得已,将虚拟机更换为vmware。 我的Windows是32位,virtualbox安装的是64bit的CentOS。 来源: oschina 链接: https://my.oschina.net/u/213496/blog/62695

面向对象的运行时特性分析+面向对象与内存

心已入冬 提交于 2019-12-01 20:38:50
相对于面向过程的开发方法,面向对象通过退一步,海阔天空。最频繁地用来表达人类认知或描述的自然语言中的主谓结构在面向对象的形式系统中得到充分的映射。这种形式系统具有极大的语义构建能力。我甚至能够想象如果加上模糊逻辑的应用,任何系统的构建都将不成问题。因为它几乎具有完美的语义构建能力。如果再加上启发式搜索,恐怕连强人工智能也不是没有可能的! 传统的开发方法在其形式系统的语义表达能力上存在的极限被称为语言鸿沟,因为从那些系统到自然语言间存在巨大的GAP。面向对象通过填平这个鸿沟,彻底地解决了计算机形式系统的表达问题。原因是其具有非常强的认识论基础:对象。所以,说哲学没用的真的是值得好好反思。没有哲学的话,有哲学的话,差别不是一般的大: 人类正常认识的途径是向前看 。 哲学是向后看 。方向不同,看到的东西就不同,结果自然就不同。 但是这是从开发方法的角度所讨论的面向对象。也就是说,它的确是一种非常好的开发方法。它当然同时也是一种非常好的建模方法。这更进一步意味着使用它所构建出来的系统与真实“世界”将更接近(因为它与人类语言的表达方法更贴近。而“世界”其实存在于语言中)。这种模型(人脑模型与计算机模型两者)上的一致性给我带来一种莫大的安全感与舒适感,因为: 1,运行时变得非常透明且非常容易理解。系统运行时对我来说再也不是不可捉摸的了。我作为一个系统的“读”者