常用的排序算法包括: 冒泡排序:每次在无序队列里将相邻两个数依次进行比较,将小数调换到前面, 逐次比较,直至将最大的数移到最后。最将剩下的N-1个数继续比较,将次大数移至倒数第二。依此规律,直至比较结束。时间复杂度:O(n^2) 选择排序:每次在无序队列中“选择”出最大值,放到有序队列的最后,并从无 ...
分类:
编程语言 时间:
2017-04-09 23:42:14
阅读次数:
459
Tomcat是我们经常使用的 servlet容器之一,甚至很多线上产品都使用 Tomcat充当服务器。而且优化后的Tomcat性能提升显著,本文从以下几方面进行分析优化。 一、内存优化 默认情况下Tomcat的相关内存配置较低,这对于一些大型项目显然是不够用的,这些项目运行就已经耗费了大部分内存空间 ...
分类:
其他好文 时间:
2017-04-05 01:05:45
阅读次数:
346
(1)参数 -Xms:初始堆大小 -Xmx :最大堆大小 此值可以设置与-Xmx相同,以避免每次垃圾回收完成后JVM重新分配内存 -Xmn :年轻代大小 整个堆大小=年轻代大小 + 年老代大小 + 持久代大小。持久代一般固定大小为64m,所以增大年轻代后,将会减小年老代大小。此值对系统性能影响较大, ...
分类:
其他好文 时间:
2017-04-05 00:58:24
阅读次数:
195
堆排序基本思想(最大堆): 1. 将初始待排序关键字序列(R1,R2....Rn)构建成最大堆,此时堆为初始的无序堆; 2. 将堆顶元素R[1]与最后一个元素R[n]交换,此时得到新的无序区(R1,R2,......Rn-1)和新的有序区(Rn),且满足R[1,2...n-1]<=R[n]; 3. ...
分类:
编程语言 时间:
2017-03-22 22:42:57
阅读次数:
253
以下配置主要针对分代垃圾回收算法而言。 堆大小设置 年轻代的设置很关键 JVM中最大堆大小有三方面限制:相关操作系统的数据模型(32-bt还是64-bit)限制;系统的可用虚拟内存限制;系统的可用物理内存限制。32位系统下,一般限制在1.5G~2G;64为操作系统对内存无限制。在Windows Se ...
分类:
其他好文 时间:
2017-03-14 12:18:53
阅读次数:
161
JVM的堆的内存, 是通过下面面两个参数控制的 -Xms 最小堆的大小, 也就是当你的虚拟机启动后, 就会分配这么大的堆内存给你 -Xmx 是最大堆的大小 当最小堆占满后,会尝试进行GC,如果GC之后还不能得到足够的内存(GC未必会收集到所有当前可用内存),分配新的对象,那么就会扩展堆,如果-Xmx ...
分类:
其他好文 时间:
2017-03-13 20:25:19
阅读次数:
201
STL中priority_queue优先队列采用堆数据结构实现。堆算法具有nlog(n)的算法时间复杂度,底层采用vector实现堆的数据机构。默认为根节点大于左右子树值即最大堆。 1、元素入堆:push_heap(first,last [,comp]) 辅助函数:push_heap(first,h ...
分类:
其他好文 时间:
2017-03-10 12:44:36
阅读次数:
218
java堆是用来存储对象实例的;只要不断创建对象,GC Roots到对象之间有可达路径来避免垃圾回收机制清除这些对象,当对象数量达到最大堆的容量限制的时候就会产生内存溢出异常。异常对战信息为OutOfMemoryError,进一步提示:java heap space。 如何解决?内存映射工具,ecl ...
分类:
编程语言 时间:
2017-02-12 20:05:17
阅读次数:
176
一:什么是堆? 堆可视为 “以数组方式存储的一棵完全二叉树” 堆又分为最大堆和最小堆, 最大堆就是对于整个二叉树中的每一个节点都满足:节点的键值比其左右子节点的键值都要大,对应的最小堆则是:节点的键值比其左右子节点的键值都要小 二:堆排序的思路 对于一个存储最大堆的数组arr(长度为size), 根... ...
分类:
编程语言 时间:
2017-02-03 14:43:49
阅读次数:
224
jvm内存管理配置通用配置 -Xms4096m //最小堆内存-Xmx4096m //最大堆内存-Xmn2048m //年轻代大小-XX:SurvivorRatio=8 //设置eden区和survivor区的内存大小比例,例如8就代表eden和两个survivor区的比例是8:1:1-XX:Tar ...
分类:
其他好文 时间:
2017-01-11 15:49:22
阅读次数:
588