blackmambahk
6/25/2014 - 11:21 AM

String Hash function

String Hash function

  //this uses a 32bit hash with a 1/100000 collison prob for a 300 string cache
  //this can has hash a 5k string 15000 per sec
  //so lets say about 500 messages per msec
  String.prototype.hashCode = function() {
    var hash = 0, i, chr, len;
    if (this.length == 0) return hash;
    for (i = 0, len = this.length; i < len; i++) {
      chr   = this.charCodeAt(i);
      hash  = ((hash << 5) - hash) + chr;
      hash = hash && hash; // hash |= 0; Convert to 32bit integer
    }
    return hash;
  };