加载中…
个人资料
Yode
Yode
  • 博客等级:
  • 博客积分:0
  • 博客访问:591,433
  • 关注人气:250
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
访客
加载中…
评论
加载中…
博文
(2010-06-25 18:23)
标签:

it

分类: java

valgrind --tool=memcheck --leak-check=full  --show-reachable=yes -v ./docParser sample.doc

Memcheck 工具主要检查下面的程序错误:

  • 使用未初始化的内存 (Use of uninitialised memory)
  • 使用已经释放了的内存 (Reading/writing memory after it has been free’d)
  • 使用超过 malloc分配的内存空间(Reading/writing off the end of malloc’d blocks)
  • 对堆栈的非法访问 (Reading/writing inappropriate areas on the stack)
  • 申请的空间是否有释放 (Memory leaks – where pointers to malloc’d blocks are lost forever)
  • malloc/free/new/delete申请和释放内存的匹配(Mismatched use of malloc/new/new [] vs free/delete/delete [])
  • src和dst的重叠(Overlapping src and dst pointers in memcpy() and related functions)

下面是常用的错误输出信息

Conditional jump or move depends on uniniti

阅读  ┆ 评论  ┆ 转载 ┆ 收藏 
(2010-06-25 17:18)
标签:

it

分类: java

Java的应用有时候会因为各种原因Crash,这时候会产生一个类似java_errorpid.log的错误日志。可以拿到了

这个日志,怎样分析Crash的原因呢?下面我们来详细讨论如何分析java_errorpid.log的错误日志。

一. 如何得到这个日志文件
如果有一个严重的错误引起Java进程非正常退出,我们叫Crash,这时候会产生一个日志文件。缺省情况下,这个

文件会产生在工作目录下。但是,可以在Java启动参数通过下面的设置,来改变这个文件的位置和命名规则。例如:
java -XX:ErrorFile=/var/log/java/java_error_%p.log
就将这个错误文件放在/var/log/java下,并且以java_error_pid.log的形式出现。

 

二.产生错误的原因
造成严重错误的原因有多种可能性。Java虚拟机自身的Bug是原因之一,但是这种可能不是很大。在绝大多数情况下,

是由于系统的库文件、API或第三方的库文件造成的;系统资源的短缺也有可能造成这种严重的错误。在发生了Crash

之后,如果无法定位根本原因,也应该迅速找到Work Around的方法。

三.对日志文件的分析
首先要检查日志的文件头:例如,下面是从一个客户发过来的错

阅读  ┆ 评论  ┆ 转载 ┆ 收藏 
(2010-06-24 11:40)
标签:

it

分类: java
murmurhash2貌似是一款巨牛无比的字符串hash

http://murmurhash.googlepages.com/

速度评测

    OneAtATime - 354.163715 mb/sec
    FNV - 443.668038 mb/sec
    SuperFastHash - 985.335173 mb/sec
    lookup3 - 988.080652 mb/sec
    MurmurHash 1.0 - 1363.293480 mb/sec
    MurmurHash 2.0 - 2056.885653 mb/sec
hash效果图
http://murmurhash.googlepages.com/avalanche

MurmurHash2
public class MurmurHash2 {

 @SuppressWarnings('fallthrough')
     public static int hash(byte[] data, int seed) {
     // 'm' and '
阅读  ┆ 评论  ┆ 转载 ┆ 收藏 
(2010-06-24 11:35)
标签:

it

分类: java
http://www.getopt.org/

Recommend the MurmurHash which is much more faster than Fnv hash.
Its website:   http://www.getopt.org/murmur/MurmurHash.java
阅读  ┆ 评论  ┆ 转载 ┆ 收藏 
(2010-06-24 10:11)
标签:

it

分类: java

Hash算法有很多很多种类。本处给大家提供一个集合了很多使用的Hash算法的类,应该可以满足不少人的需要的:



public class HashAlgorithms
{

public static int additiveHash(String key, int prime)
{
   int hash, i;
   for (hash = key.length(), i = 0; i < key.length(); i++)
    hash += key.charAt(i);
   return (hash % prime);
}


public static int rotatingHash(String key, int prime)
{
   int hash, i;
   for (hash=key.length(), i=0; i<key.length(); ++i)
     hash = (hash<<4)^(hash>>28)^key.charAt(i);
   return (hash % prime);
//   return (hash ^ (hash>>10) ^ (hash>>20));
}

// 替代:
// 使用:hash = (hash ^ (hash>>10) ^ (hash>>20)) & mask;
// 替代:hash %= prime;



阅读  ┆ 评论  ┆ 转载 ┆ 收藏 
标签:

it

分类: java

Standard System Properties

 

Property Name Description Java Version
file.encoding The character encoding for the default locale 1.1
file.encoding.pkg The package that contains the converters that handle converting between local encodings and Unicode 1.1
file.separator The platform-dependent file separator (e.g., '/' on UNIX, '\' for Windows) 1.0
java.class.path The value of the CLASSPATH environment variable 1.0
java.class.version The version of the Java API 1.0
java.compiler The just-in-time compiler to use, if any. The java interpreter provided with the JDK initialize
阅读  ┆ 评论  ┆ 转载 ┆ 收藏 
(2010-06-13 13:51)
标签:

it

分类: linux&mysql

对于进行修改文件比较差异,很快的创建一个补丁文件(patch),到底怎么做呢?下面将为读者讲述一下:如何创建和使用补丁文件以及牵涉到patch文件的结构的一些详细说明。

一、创建补丁文件


diff -Naur 旧的目录 新的目录 > patch文件

或者
diff -Naur 旧的文件 新的文件 > patch文件

对于目录层数的一些限制,在创建patch的时候文件夹的层数应当是一样的,比如

--- old/lib/TWiki Aug 17 11:03:56 2008
+++ new/lib/TWiki Aug 19 20:05:41 2008

这样是可以的,而

--- old/other/lib/TWiki Aug 17 11:03:56 2008
+++ new/lib/TWiki Aug 19 20:05:41 2008

这样做可能会有一些问题。

二、如何使用patch
1,对于一个patch文件,有两种常用使用方法:

cat new-patch | patch -p02.


patch -p0 < new-patch

2,patch命令里面的层数
阅读  ┆ 评论  ┆ 转载 ┆ 收藏 
标签:

it

分类: 垂直搜索引擎
    最近涉及到要将大批量的数据存储,读取以及判断是否存在。 开始简单的用hashtable来实现,而且直接存的string,在load的时候很占内存,将string先hash一下会好很多。另外hashtable是线程安全的,hashmap是不
安全的。首先来看一下它们的区别。
  • Hashtable是Dictionary的子类,HashMap是Map接口的一个实现类;
  • Hashtable中的方法是同步的,而HashMap中的方法在缺省情况下是非同步的。即是说,在多线程应用程序中,不用专门的操作就安全地 可以使用Hashtable了;而对于HashMap,则需要额外的同步机制。但HashMap的同步问题可通过Collections的一个静态方法得 到解决:

          Map Collections.synchronizedMap(Map m)
    这个方法返回一个同步的Map,这个Map封装了底层的HashMap的所有方法,使得底层的HashMap即使是在多线程的环境中也是安全的。

  • 在HashMap中,null可以作为键,这样的键只有一个;可以有一个或多个键所对应的值为null。当get()方法返回null值时,即 可以表示HashMap中没有该键,也可以表示该键
阅读  ┆ 评论  ┆ 转载 ┆ 收藏 
(2010-06-11 00:00)
标签:

it

分类: linux&mysql
今天早上起来开抠抠后,发现鼠标动不了,就想着怎么切换到终端把这个进程kill掉。用Ctrl-Alt-F1 组合键可切换到第一个终端。要切换回桌面,可以按Ctrl-Alt-F7组合键。总共有六个终端可用。它们各自对应Ctrl-Alt-F1到 Ctrl-Alt-F6。
阅读  ┆ 评论  ┆ 转载 ┆ 收藏 
标签:

http状态

200

304

it

分类: 垂直搜索引擎

在网站建设的实际应用中,容易出现很多小小的失误,就像mysql当初优化不到位,影响整体网站的浏览效果一样,其实,网站的常规http状态码的表现也是一样,Google无法验证网站几种解决办法,提及到由于404状态页面设置不正常,导致了google管理员工具无法验证的情况,当然,影响的不仅仅是这一方面,影响的更是网站的整体浏览效果。因此,比较清楚详细的了解http状态码的具体含义,对于一个网站站长来说,这是很有必要俱备的网站制作基础条件。

如果某项请求发送到您的服务器要求显示您网站上的某个网页(例如,用户通过浏览器访问您的网页或 Googlebot 抓取网页时),服务器将会返回 HTTP 状态码响应请求。

此状态码提供关于请求状态的信息,告诉 Googlebot 关于您的网站和请求的网页的信息。

一些常见的状态码为:

  • 200 – 服务器成功返回网页
  • 404 – 请求的网页
阅读  ┆ 评论  ┆ 转载 ┆ 收藏 
  

新浪BLOG意见反馈留言板 电话:4000520066 提示音后按1键(按当地市话标准计费) 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 会员注册 | 产品答疑

新浪公司 版权所有