`
victorzhzh
  • 浏览: 202086 次
  • 来自: ...
社区版块
存档分类
最新评论
文章列表
8月20日,终于判了,但有失公正,社会可以不公平但不能不公正--写在正文前的废话。   PriorityQueue这个东西叫啥,随便反正我不会翻译她,我只想把我N年前看过的目前还记得的东西拿出来凉凉,以免发霉了,再则也可以给 ...
一个对象实例占用了多少字节,消耗了多少内存?这样的问题在c或c++里使用sizeof()方法就可以得到明确答案,在java里好像没有这样的方法(java一样可以实现),不过通过jmap工具倒是可以查看出一个对象的占用内存的大小,这里介绍一种通过分析java代码计算内存使用情况的方法。 注意,一下讨论的情况都是基于32位机,不适用用64位机,JVM是sun的HotSpot,不同的虚拟机实现可能会不同   规则一:每个对象被按照8bytes粒度对齐(数组除外)   在jvm中每个对象(数组除外)都有一个头,这个头有两个字,第一个字存储的时对象的一些标志位信息,例如:锁标志位、经历了几次gc ...
1、new Integer():方法会在内存中新开辟一个内存空间; 2、valueOf():方法只有在传入的参数<-128或>127时,才会去调用一个new Integer()方法去创建一个新的对象,否则会使用静态类IntegerCache中的cache里的对象。 程序表象: 如果我们要调用50万次的new Integer(4),在不去设置jvm内存参数的情况下会outOfMemery,而Integer.valueOf(4)则不会。 我们可以分别用new Integer(4)和valueOf(4)构件5万个对象,用jmap -histo:live查看一下内存中Integer对 ...
对于线程池主要关心的内容有:线程池的大小控制、池中的队列控制、池饱和时的策略,下面我们从这三个角度来分析一下Executors生成的不同池。 1、ThreadPoolExecutor构造函数介绍: public ThreadPoolExecutor(int corePoolSize, int maximumPoolSize, long keepAliveTime, TimeUnit unit, ...
做一个小练习记录一个阻塞方法引起的任务无法结束。 场景如下:一个生成质素的类,多个线程调用这个类生成一系列质素。 质素生成类: public class PrimeGeneratorForeverRun implements Callable<BlockingQueue<BigInteger>> { private final BlockingQueue<BigInteger> primes = new ArrayBlockingQueue<BigInteger>( 5);//使用阻塞队列来存储已经生成的质素 priva ...
上一篇中我们看到了Timer的不足之处,本篇我们将围绕这些不足之处看看ScheduledThreadPoolExecutor是如何优化的。 为了研究方便我们需要两个类: public class Task1 implements Callable<String> { @Override public String call() throws Exception { String base = "abcdefghijklmnopqrstuvwxyz0123456789"; Random random = new Random(); ...
很多时候我们希望任务可以定时的周期性的执行,在最初的JAVA工具类库中,通过Timer可以实现定时的周期性的需求,但是有一定的缺陷,例如:Timer是基于绝对时间的而非支持相对时间,因此Timer对系统时钟比较敏感。虽然有一定 ...
ExecutorService接口继承了Executor接口,定义了一些生命周期的方法 public interface ExecutorService extends Executor { void shutdown(); List<Runnable> shutdownNow(); boolean isShutdown(); boolean isTerminated(); boolean awaitTermination(long timeout, TimeUnit unit) throws InterruptedException; } 本文 ...
第一步,启动hadoop,命令:./start-all.sh 第二步,启动hive,命令: ./hive --auxpath /home/dream-victor/hive-0.6.0/lib/hive_hbase-handler.jar,/home/dream-victor/hive-0.6.0/lib/hbase-0.20.3.jar,/home/dream-victor/hive-0.6.0/lib/zookeeper-3.2.2.jar -hiveconf hbase.master=127.0.0.1:60000 这里,-hiveconf hbase.master=指向自己在hba ...
第一步,修改bin目录下的hive-config.sh文件 export HIVE_HOME=/home/dream-victor/hive-0.6.0--指向自己的hive安装目录 export HADOOP_HOME=/home/dream-victor/hadoop-0.20.2--指向自己的hadoop安装目录 export JAVA_HOME=/home/dream-victor/jdk1.6.0_21--指向JDK安装目录  第二步,修改bin/ext/util目录下的execHiveCmd.sh文件: HADOOP_HEAPSIZE=256  启动即可
第一步,配置hbase-env.sh: export JAVA_HOME=/home/dream-victor/jdk1.6.0_21--指向自己的JDK export HBASE_MANAGES_ZK=true export HBASE_LOG_DIR=/home/dream-victor/hbase-0.20.6/logs--指向自己定义的logs文件夹  第二步,配置hbase-site.xml:     先进入hadoop下的bin目录,运行:./hadoop fs -mkdir /hbase,在你的hbase-{$user}文件夹下建立/hbase文件夹     然后,配置 ...
最近工作中要做一个小工具,使用到了hadoop,以前又没有搞过,所以简单的研究了一下,先从安装说起: 本文使用的环境是:ubuntu10+hadoop-0.21 第一步,先确认本机是否开启了sshd,方法很简单,用如下命令: ssh localhost 若没有运行sshd,则会提示你无法登录,这时需要手动安装一下,命令如下: sudo apt-get install openssh-server 注意:ssh 必须安装并且保证 sshd 一直运行,以便用Hadoop 脚本管理远端Hadoop守护进程   第二步,设置ssh密码,实现免密码登录,命令如下: ...
今天学习了一下左式堆,总结一下。 一、左式堆定义: 具有,如下性质 1、父节点属性值小于子节点属性值; 2、堆中的任何节点,其左儿子的零路径长>=右儿子的零路径长; 的二叉树。 注:零路径长(npl)是指:从一个节点X开始到一个不具有两个儿子的Y节点的最短路径的长,可以看出有0个或者一个儿子的节点的npl=0,并且定义npl(null)=-1; 二、左式对的节点定义: class Node<T> { // 元素 T element; // 左节点 Node<T> left; // 右节点 Node<T&g ...
  写在前面的话:Btrace系列是我将平时里学习和使用Btrace的一些经验的总结,拿出来和大家一起交流一下,希望在这个过程中能找寻出自己理解或使用上的错误之处。   一、Btrace的简介:     Btrace是由Kenai 开发的一个开源项目,是一种动态跟踪分析JAVA源代码的工具。它可以用来帮我们做运行时的JAVA程序分析,监控等等操作,当然,它也不是万能的,BTrace也有一些使用上的限制,如:不能在脚本中新建类等等,这些在官方网站上有很详细的介绍,大家有兴趣可以查看:http://kenai.com/projects/btrace/pages/UserGuide。   ...
最近,想使用apache的mod_status来查看一下apache的服务器状态,就自己安装了一下mod_status,以前觉得好像很难的东西其实很简单。 第一步, 去http://httpd.apache.org/下载最新的apache服务器 第二步,将下载的httpd-2.2.17.tar.gz解压,如:~/tmp$ tar xvf httpd-2.2.17.tar.gz 第三步,进入解压后的httpd-2.2.17目录,通过configure脚本配置安装文件,这里可以指名你的apache安装在什么地方、你需要加载那些模块等信息,具体参数可以查看帮助文档:http://www.phpc ...
Global site tag (gtag.js) - Google Analytics