`
mshijie
  • 浏览: 96251 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论
文章列表
参考地址: http://www.cloudera.com/blog/2011/02/avoiding-full-gcs-in-hbase-with-memstore-local-allocation-buffers-part-1/ java GC工作在分代的模型上。大多数的对象要么很快的死亡,要么持续较长的时间。例如,方法栈中创建的对象只会持续几毫秒时间 ...
本文描述在ubuntu上安装Hadoop,并在Pseudo-Distributed Operation模式下运行一个WordCount的Demo。   Step1 安装必要的软件:jdk,ssh。 在ubuntu下可以使用apt安装。 sudo apt-get install openjdk-6-jdk sudo apt-get install ssh ssh安装完成后需要做一个特殊的设置。Hadoop使用ssh对集群的机器进行控制,需要让ssh无密码的登录远程机器,本文使用单击模拟分布环境,只要能无密码登录到localhost即可。 首先使用 ssh-keygen 命令按提示 ...
应用程序并行计算遇到的问题     当硬件处理能力不能按摩尔定律垂直发展的时候,选择了水平发展。多核处理器已广泛应用,未来处理器的核心数将进一步发布,甚至达到上百上千的数量。而现在很多的应用程序在运行在多核心的处理器上并不能得到很好的性能提升,因为应用程序的并发处理能力不强,不能够合理有效地的利用计算资源。线性的计算只能利用n分之一的计算支援。     要提高应用程序在多核处理器上的执行效率,只能想办法提高应用程序的本身的并行能力。常规的做法就是使用多线程,让更多的任务同时处理,或者让一部分操作异步执行,这种简单的多线程处理方式在处理器核心数比较少的情况下能够有效地利用处理资源,因为 ...
Berkeley DB简介 Berkeley DB(以下简称Bdb)是一个嵌入式的键值数据库。Bdb目前有两个版本,一个是使用c++构建的版本,还有一个java版本。c++版本支持在众多的语言中使用,Berkeley DB Java Edition(以下简称JE)完全用java语言编写。JE执行在应用程序中,完全不需要Client/Server的通信。JE更容易部署和嵌入到java程序中,所以我选择了使用Berkeley DB Java Edition(sleep cat)。   Berkeley DB编程接口   在Java程序中使用JE,首先需要初始化一个数 ...
1.使用异常而不是错误码 如果使用错误码,调用者,必须在方法调用后立即检查结果,如果多次调用都放回错误码,就会造成复杂的多层嵌套结构。 if (deletePage(page) == E_OK) { if (registry.deleteReference(page.name) == E_OK) { if (configKeys.deleteKey(page.name.makeKey()) == E_OK){ logger.log("page deleted"); } else { ...
1.方法要可能的短。最好控制在几行以内。 例如: public static String renderPageWithSetupsAndTeardowns( PageData pageData, boolean isSuite) throws Exception { if (isTestPage(pageData)) includeSetupAndTeardownPages(pageData, isSuite); return pageData.getHtml(); }在if,else,while的语句块中应该已有一个行代码(方法调用) 一个方 ...
编写代码时,尽量使用有意义的名称命名类、方法、变量等 1.使用能揭示意图的名称 public List<int[]> getThem() { List<int[]> list1 = new ArrayList<int[]>(); for (int[] x : theList) if (x[0] == 4) list1.add(x); return list1; }  改变为,就能更能说明名称的意图 public List<int[]> getFlaggedCells() { ...
在大型web应用中,缓存可算是当今的一个标准开发配置了。在大规模的缓存应用中,应运而生了分布式缓存系统。分布式缓存系统的基本原理,大家也有所耳闻。key-value如何均匀的分散到集群中?说到此,最常规的方式莫过于hash取模的方式。比如集群中可用机器适量为N,那么key值为K的的数据请求很简单的应该路由到hash(K) mod N对应的机器。的确,这种结构是简单的,也是实用的。但是在一些高速发展的web系统中,这样的解决方案仍有些缺陷。随着系统访问压力的增长,缓存系统不得不通过增加机器节点的方式提高集群的相应速度和数据承载量。增加机器意味着按照hash取模的方式,在增加机器节点的这一时刻,大量 ...
Lucene是一个高性能的,可扩展的信息提取(IR)库。Lucene不是一个完整的搜索引擎,但基于它可以很快捷构建一个搜索应用。Lucene提供了搜索需要的索引建立和索引查找的功能,以及相应的附属设施。Lucene是Apache下的开源Java项目 ...
上个月在博客中,讲了怎么使用dbunit帮助测试dao。但是在使用过程中,发现,使用dbunit的过程依然很繁琐。因此考虑对dbunit的使用做一些封装。期间发现开源工具Unitils已经很好的完成了这个工作。Unitils,由多个模块构成。 DatabaseModule,DbUnitModule,HibernateModule ,MockModule,EasyMockModule,InjectModule,SpringModule 我感兴趣的是dbunit和spring整合的两个模块。结合这两个模块可以很方便的完成dao的测试。   在Spring中结合Dbunit对Dao进 ...

[转]TDD全攻略

    博客分类:
  • Java
原文链接:http://www.blogjava.net/briansun/archive/2005/07/31/8813.html 关键字 测试驱动开发/Test Driven Development/TDD 测试用例/TestCase/TC 设计/Design 重构/Refactoring TDD的目标     Clean Code That Works 这句话的含义是,事实上我们只做两件事情:让代码奏效(Work)和让代码洁净(Clean),前者是把事情做对,后者是把事情做好。想想看,其实我们平时所做的所有工作,除去无用的工作和错误的工作以外,真正正确的工作,并且是真正 ...
package com.test.dbunit.dao; import javax.sql.DataSource; import org.dbunit.Assertion; import org.dbunit.database.DatabaseConnection; import org.dbunit.database.IDatabaseConnection; import org.dbunit.database.QueryDataSet; import org.dbunit.dataset.IDataSet; import org.dbunit.dataset.xml.F ...
今天使用JPA(Hibernate)实现一个一对一关联的时候,发现无法使用延迟加载.Person关联一个Picture.在读取Person的时候,显示的记载了对于的Picture.读取10个Person发生了11次数据库查询.   最后查阅资料后,发现是自己对OneToOne理解不够透彻所致.之前的关联是这么定义的. @Entity public class Person { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) private int id; @OneToOne(cascade = Cas ...
<?xml version="1.0" encoding="GBK" ?> <project name="demo" default="usage" xmlns:catalina="antlib:org.apache.catalina.ant"> <!--属性配置--> <!--目录结构--> <property name="src.dir" location="src" /> ...
今天在用ant编译的时候遇到一个问题,老是提示 @Override错误 方法未覆盖其父类的方法。在eclipse中都能正确编译的。一整鼓捣之后发现,path设置的问题,ant使用的是jdk1.5编译,在eclipse 中使用的是jdk1.6,编译的。问题就来了。才发现,@Overrride注解在1.5和1.6中含义竟然不相同。 如下面的代码: public interface SomeInterface{ public void methodTwo(); } public class Base{ public void methodOne(){ } ...
Global site tag (gtag.js) - Google Analytics