当前位置: 首页 > news >正文

网站做成软件免费网站导航栏自适应显示

网站做成软件免费,网站导航栏自适应显示,百度收录有什么好处,商城网站制作公司地址1、Dalvik虚拟机与Java虚拟机的最显著差别是它们分别具有不同的类文件格式以及指令集。Dalvik虚拟机使用的是dex#xff08;Dalvik Executable#xff09;格式的类文件#xff0c;而Java虚拟机使用的是class格式的类文件。一个dex文件能够包括若干个类。而一个class文件仅仅… 1、Dalvik虚拟机与Java虚拟机的最显著差别是它们分别具有不同的类文件格式以及指令集。Dalvik虚拟机使用的是dexDalvik Executable格式的类文件而Java虚拟机使用的是class格式的类文件。一个dex文件能够包括若干个类。而一个class文件仅仅包括一个类。因为一个dex文件能够包括若干个类。因此它就能够将各个类中反复的字符串和其他常数仅仅保存一次。从而节省了空间这样就适合在内存和处理器速度有限的手机系统中使用。一般来说。包括有同样类的未压缩dex文件稍小于一个已经压缩的jar文件。 2、Dalvik虚拟机使用的指令是基于寄存器的而Java虚拟机使用的指令集是基于堆栈的。基于堆栈的指令非常紧凑比如。Java虚拟机使用的指令仅仅占一个字节因而称为字节码。基于寄存器的指令因为须要指定源地址和目标地址。因此须要占用很多其它的指令空间比如Dalvik虚拟机的某些指令须要占用两个字节。基于堆栈和基于寄存器的指令集各有优劣。一般而言运行相同的功能前者须要很多其它的指令主要是load和store指令而后者须要很多其它的指令空间。须要很多其它指令意味着要多占用CPU时间而须要很多其它指令空间意味着数据缓冲d-cache更易失效。 3、此外另一种观点觉得。基于堆栈的指令更具可移植性由于它不正确目标机器的寄存器进行不论什么如果。然而基于寄存器的指令由于对目标机器的寄存器进行了如果。因此。它更有利于进行AOTahead-of-time优化。 所谓AOT就是在解释语言程序执行之前。就先将它编译成本地机器语言程序。AOT本质上是一种静态编译它是是相对于JIT而言的也就是说。前者是在程序执行前进行编译。而后者是在程序执行时进行编译。执行时编译意味着能够利用执行时信息来得到比較静态编译更优化的代码同一时候也意味不能进行某些高级优化。由于优化过程太耗时了。还有一方面执行前编译由于不占用程序执行时间因此。它就能够不计时间成本来优化代码。不管AOT。还是JIT终于的目标都是将解释语言编译为本地机器语言而本地机器语言都是基于寄存器来执行的。因此在某种程度来讲基于寄存器的指令更有利于进行AOT编译以及优化。 4、无论结论怎样Dalvik虚拟机都在尽最大的努力来优化自身这些措施包含         1. 将多个类文件收集到同一个dex文件里。以便节省空间         2 使用仅仅读的内存映射方式载入dex文件以便能够多进程共享dex文件。节省程序载入时间。         3 提前调整好字节序byte order和字对齐word alignment方式使得它们更适合于本地机器。以便提高指令运行速度。         4 尽量提前进行字节码验证bytecode verification。提高程序的载入速度。         5 须要重写字节码的优化要提前进行。 5、内存管理 Dalvik虚拟机的内存大体上能够分为Java Object Heap、Bitmap Memory和Native Heap三种。         Java Object Heap是用来分配Java对象的。也就是我们在代码new出来的对象都是位于Java Object Heap上的。Dalvik虚拟机在启动的时候能够通过-Xms和-Xmx选项来指定Java Object Heap的最小值和最大值。为了避免Dalvik虚拟机在执行的过程中对Java Object Heap的大小进行调整而影响性能我们能够通过-Xms和-Xmx选项来将它的最小值和最大值设置为相等。 这个Java Object Heap的最大值也就是我们平时所说的Android应用程序进程可以使用的最大内存。这里必需要注意的是。Android应用程序进程可以使用的最大内存指的是可以用来分配Java Object的堆。 在HoneyComb以及更高的版本号中Bitmap Memory就直接是在Java Object Heap中分配了这样就能够直接接受GC的管理。         Native Heap就是在Native Code中使用malloc等分配出来的内存。这部分内存是不受Java Object Heap的限制大小的也就是它能够自由使用。当然它是会受到系统的限制。可是有一点须要注意的是。不要由于Native Heap能够自由使用就滥用由于滥用Native Heap会导致系统可用内存急剧降低从而引发系统採取激进的措施来Kill掉某些进程用来补充可用内存。这样会影响系统体验。 6、垃圾收集 Dalvik虚拟机能够自己主动回收那些不再使用了的Java Object也就是那些不再被引用了的Java Object。垃圾自己主动收集机制将开发人员从内存问题中解放出来。极大地提高了开发效率以及提高了程序的可维护性。  在GingerBread以及更高的版本号中Dalvik虚拟使用的垃圾收集机制得到了改进例如以下所看到的         1 Cocurrent也就是大多数情况下垃圾收集线程与其他线程是并发运行的         2Partial collection也就是一次可能仅仅收集一部分垃圾         3一次垃圾收集造成的程序中止时间通常都小于5ms。 7、进程和线程管理 一般来说虚拟机的进程和线程都是与目标机器本地操作系统的进程和线程一一相应的这样做的优点是能够使本地操作系统来调度进程和线程。进程和线程调度是操作系统的核心模块它的实现是很复杂的特别是考虑到多核的情况因此就全然没有必要在虚拟机中提供一个进程和线程库。  Dalvik虚拟机执行在Linux操作系统之上。我们知道Linux操作系统并没有纯粹的线程概念仅仅要两个进程共享同一个地址空间那么就能够觉得它们同一个进程的两个线程。Linux操作系统提供了两个fork和clone两个调用。当中前者就是用来创建进程的而后者就是用来创建线程的。  关于Android应用程序进程它有两个非常大的特点。以下我们就简要介绍一下。 第一个特点是每个Android应用程序进程都有一个Dalvik虚拟机实例。这样做的优点是Android应用程序进程之间不会相互影响也就是说一个Android应用程序进程的意外中止。不会影响到其他的Android应用程序进程的正常执行。 第二个特点是每个Android应用程序进程都是由一种称为Zygote的进程fork出来的。Zygote进程是由init进程启动起来的也就是在系统启动的时候启动的。Zygote进程在启动的时候。会创建一个虚拟机实例并且在这个虚拟机实例将全部的Java核心库都载入起来。每当Zygote进程须要创建一个Android应用程序进程的时候。它就通过复制自身来实现也就是通过fork系统调用来实现。这些被fork出来的Android应用程序进程一方面是复制了Zygote进程中的虚拟机实例还有一方面是与Zygote进程共享了同一套Java核心库。这样不仅Android应用程序进程的创建过程非常快并且因为全部的Android应用程序进程都共享同一套Java核心库而节省了内存空间。 摘至http://blog.csdn.net/luoshengyang/article/details/8852432
http://www.yutouwan.com/news/297396/

相关文章:

  • 搜网站的关键词上海公司网页设计
  • 怎么看网站开发语言是哪种福州seo排名收费
  • 用dw做音乐网站从化网站建设方案
  • 一般网站建设需要多少钱做网站一万
  • 网站流量50g织梦网站做seo优化
  • 网站开发语言学习C 吗传奇手游下载
  • 无锡建设局评职称网站电子商务网站建设实训论文
  • 山西省轻工建设有限责网站安阳吧
  • 校园网站建设经费申请报告wordpress 插件交互
  • 重庆建一个网站大概要多少钱南昌做网站和微信小程序的公司
  • 上海网站开发公司排名中国建设银行的网站用户名是什么
  • 郑州网站seo公司网站添加在线支付功能
  • 美耐皿 技术支持 东莞网站建设全国最新网站备案查询
  • 厦门服装企业网站推广如何建设一个属于自己的网站
  • 泉州自助建站系统网站备案换主体
  • 网站建设投资预算八戒影视大全
  • 东山网站建设广西区建设厅网站
  • 菏泽城乡住房建设局网站高明网站建设首选公司
  • 心理咨询中心网站模板温州15000 做网站的工作
  • 湖南软件定制开发郑州网站建设seo优化
  • 网站建设包括哪些知识品牌建设成效
  • 手机版的学习网站网站建设人员培训纲要
  • 教做宝宝辅食的网站网站怎么做漂亮点
  • 做外贸有哪些网站比较好设计集团有限公司
  • 网站返利二维码怎么做济南做网站的中企
  • 外贸网站 php广告平台推广渠道
  • 做网站备案是承诺书在哪下载关于企业网站建设数据现状分析
  • 模板网站建设多少钱wordpress 企业模板
  • 如何做网络网站推广wordpress的xmlrpc
  • 个人品牌网站建设手机网站设计公司优选亿企邦