Java内存问题实例详解

在Java中,内存泄露和其他内存相关问题在性能和可扩展性方面表现的最为突出。我们有充分的理由去详细地讨论他们。

Java内存模型——或者更确切的说垃圾回收器——已经解决了许多内存问题。然而同时,也带来了新的问题。特别是在有着大量并行用户的J2EE运行 环境下,内存越来越成为一种至关重要的资源。乍看之下,这似乎有些奇怪,因为当前内存已经足够廉价,并且我们也有了64位的JVM和更先进的垃圾回收算 法。

接下来,我们将会仔细的讨论一下关于Java内存的问题。这些问题可以分为四组:

  • 在Java中,内存泄露一般都是由于引用对象不再被使用而造成的。当有多个引用的对象,同时这些对象又不再[......]

Read more

hbase由于一台regionserver和datanode挂死导致hlog split问题

java.io.IOException: failed log splitting for hadoop2,60020,1355710943425, will retry

at org.apache.hadoop.hbase.master.handler.ServerShutdownHandler.process(ServerShutdownHandler.java:180)

at org.apache.hadoop.hbase.executor.EventHandler.run(EventHandler.java:169)

at java.util.conc[......]

Read more

10个 jQuery 小技巧

1. 返回顶部按钮

你可以利用 animate 和 scrollTop 来实现返回顶部的动画,而不需要使用其他插件。

// Back to top
$('a.top').click(function () {
  $(document.body).animate({scrollTop: 0}, 800);
  return false;
});
<!-- Create an anchor tag -->
<a class="top" href="#">Back to top</a>

改变 scrollTop 的值可以调整返回距离顶部的距离,[......]

Read more

H5性能优化方案

H5性能优化意义

对于一个H5的产品,功能无疑很重要,但是性能同样是用户体验中不可或缺的一环。原本H5的渲染性能就不及native的app,如果不把性能优化做起来,将极大地影响用户使用产品的积极性。

用户感受

当用户能够在1-2秒内打开H5页面,看到信息的展示,或者能够开始进行下一步的操作,用户会感觉速度还好,可以接受;而页面如果在2-5秒后才进 入可用的状态,用户的耐心会逐渐丧失;而如果一个界面超过5秒甚至更久才能显示出来,这对用户来说基本是无法忍受的,也许有一部分用户会退出重新进入,但 更多的用户会直接放弃使用。

一秒钟法则

移动互联网的架构、通讯机制,与有线网络有着巨大的差异,[......]

Read more

大数据存储之分布式文件系统

1.Google文件系统(GFS)

使用一堆廉价的商用计算机支撑大规模数据处理。

GFSClient: 应用程序的访问接口

Master(主控服务器):管理节点,在逻辑上只有一个(还有一台“影子服务器“,在主控服务器失效时提供元数据,但并不是完整的热备服务器),保存系统的元数据,负责整个文件系统的管理。

Chunk Server(数据库服务器):负责具体的存储工作,数据以文件的形式存储在Chunk Server上;相应GFS客户端的读写请求。

整体架构:

读取数据的流程:

应用开发者提交读数据请求: 读取文件file,从某个位置P开始,读出大小[......]

Read more

如何用Log4jdbc 有效地记录 Java SQL 日志?

在常规项目的开发中可能最容易出问题的地方就在于对数据库的处理了,在大部分的环境下,我们对数据库的操作都是使用流行的框架,比如 Hibernate 、 MyBatis 等。由于各种原因,我们有时会想知道在这些框架下实际执行的 SQL 究竟是什么。虽然 Hibernate 可以在配置文件中打开 SHOW SQL 的功能, MyBatis 则可以在 Log4j 的配置文件中配置 SQL 语句的输出,但这些输出是类似这样的 INSERT … ? ? ? 语句,并不是一个完整可以运行的 SQL ,要想知道完整的 SQL 需要手动把参数补齐,如果要调试这样的 SQL 无疑非常痛苦。

Log4jdbc[......]

Read more