Changeset 20845 for lang

Show
Ignore:
Timestamp:
10/06/08 20:00:15 (5 years ago)
Author:
fujidig
Message:

StrBuffer?StrValue? をキャッシュ

Location:
lang/javascript/hsp-on-js/trunk/src
Files:
3 modified

Legend:

Unmodified
Added
Removed
  • lang/javascript/hsp-on-js/trunk/src/run-in-shell.js

    r20416 r20845  
    2121function main(){ 
    2222        var data = [ 
    23 '\x48\x53\x50\x33\x01\x03\x00\x00\x00\x00\x00\x00\xc2\x01\x00\x00', 
    24 '\x60\x00\x00\x00\x0c\x01\x00\x00\x6c\x01\x00\x00\x3c\x00\x00\x00', 
    25 '\xa8\x01\x00\x00\x04\x00\x00\x00\xac\x01\x00\x00\x16\x00\x00\x00', 
    26 '\xc2\x01\x00\x00\x00\x00\x00\x00\xc2\x01\x00\x00\x00\x00\x00\x00', 
    27 '\xc2\x01\x00\x00\x00\x00\x00\x00\xc2\x01\x00\x00\x00\x00\x00\x00', 
    28 '\xc2\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00', 
    29 '\x09\x20\x0f\x00\x0d\x00\x0f\x00\x00\x00\x28\x00\x02\x00\x06\x00', 
    30 '\x04\x40\x00\x00\x02\x40\x0a\x00\x00\x00\x29\x00\x09\x20\x0f\x00', 
    31 '\x0d\x00\x0f\x00\x00\x00\x28\x00\x02\x00\x0c\x00\x04\x40\x00\x00', 
    32 '\x02\x40\x10\x00\x00\x00\x29\x00\x09\x20\x0f\x00\x0d\x00\x0f\x00', 
    33 '\x00\x00\x28\x00\x02\x00\x12\x00\x04\x40\x01\x00\x02\x40\x16\x00', 
    34 '\x00\x00\x29\x00\x09\x20\x0f\x00\x0d\x00\x0f\x00\x00\x00\x28\x00', 
    35 '\x02\x00\x18\x00\x04\x40\x01\x00\x02\x40\x1c\x00\x00\x00\x29\x00', 
    36 '\x09\x20\x0f\x00\x0d\x00\x0f\x00\x00\x00\x28\x00\x02\x00\x1f\x00', 
    37 '\x04\x40\x00\x00\x02\x40\x23\x00\x00\x00\x29\x00\x09\x20\x0f\x00', 
    38 '\x09\x20\x0f\x00\x0d\x00\x0f\x00\x00\x00\x28\x00\x02\x00\x28\x00', 
    39 '\x04\x40\x00\x00\x02\x40\x2c\x00\x00\x00\x29\x00\x09\x20\x0f\x00', 
    40 '\x0d\x00\x0f\x00\x00\x00\x28\x00\x02\x00\x2d\x00\x04\x40\x02\x00', 
    41 '\x02\x40\x31\x00\x00\x00\x29\x00\x09\x20\x0f\x00\x0d\x00\x0f\x00', 
    42 '\x00\x00\x28\x00\x02\x00\x32\x00\x04\x40\x0a\x00\x02\x40\x36\x00', 
    43 '\x00\x00\x29\x00\x09\x20\x0f\x00\x0d\x00\x0f\x00\x00\x00\x28\x00', 
    44 '\x02\x00\x37\x00\x04\x40\x64\x00\x02\x40\x3b\x00\x00\x00\x29\x00', 
    45 '\x0f\x20\x11\x00\x0f\x20\x00\x00\x07\x00\x00\x00\x74\x2e\x68\x73', 
    46 '\x70\x00\x61\x62\x63\x00\x61\x00\x61\x62\x63\x00\x63\x00\x61\x62', 
    47 '\x63\x00\x61\x00\x61\x62\x63\x00\x62\x63\x00\x61\x62\x63\x00\x61', 
    48 '\x62\x63\x64\x00\x61\x62\x63\x00\x00\x61\x62\x63\x00\x00\x61\x62', 
    49 '\x63\x00\x00\x61\x62\x63\x00\x00\x80\x00\x00\x00\xfe\x00\x00\x00', 
    50 '\x00\x00\x00\x0e\x0e\x0e\x0e\x0e\x00\x02\x00\x0e\x0e\x0e\x0e\x06', 
    51 '\xff\xff' 
     23'\x48\x53\x50\x33\x01\x03\x00\x00\x05\x00\x00\x00\x87\x01\x00\x00', 
     24'\x60\x00\x00\x00\xc6\x00\x00\x00\x26\x01\x00\x00\x25\x00\x00\x00', 
     25'\x4b\x01\x00\x00\x08\x00\x00\x00\x53\x01\x00\x00\x34\x00\x00\x00', 
     26'\x87\x01\x00\x00\x00\x00\x00\x00\x87\x01\x00\x00\x00\x00\x00\x00', 
     27'\x87\x01\x00\x00\x00\x00\x00\x00\x87\x01\x00\x00\x00\x00\x00\x00', 
     28'\x87\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00', 
     29'\x09\x20\x0f\x00\x02\x00\x06\x00\x01\x20\x00\x00\x00\x00\x08\x00', 
     30'\x04\x80\x20\xa1\x07\x00\x0f\x20\x0a\x00\x01\x00\x01\x00\x01\x40', 
     31'\x00\x00\x04\x00\x01\x00\x00\x00\x00\x00\x08\x20\x21\x00\x01\x00', 
     32'\x01\x00\x04\x40\x2a\x00\x01\x40\x00\x00\x09\x20\x0f\x00\x02\x00', 
     33'\x0e\x00\x01\x20\x02\x00\x00\x00\x08\x00\x0d\x00\x08\x00\x00\x00', 
     34'\x28\x00\x04\x80\xff\xff\xff\xff\x00\x00\x29\x00\x0f\x20\x04\x00', 
     35'\x07\x00\x00\x00\x04\x00\x64\x00\x01\x20\x03\x00\x00\x00\x08\x00', 
     36'\x0d\x00\x02\x00\x00\x00\x28\x00\x01\x00\x01\x00\x00\x00\x29\x00', 
     37'\x0f\x20\x05\x00\x01\x20\x04\x00\x00\x00\x08\x00\x0d\x00\x08\x00', 
     38'\x00\x00\x28\x00\x04\x80\xff\xff\xff\xff\x00\x00\x29\x00\x09\x20', 
     39'\x0f\x00\x0d\x00\x00\x00\x00\x00\x28\x00\x01\x00\x04\x00\x01\x00', 
     40'\x02\x00\x00\x00\x01\x00\x00\x00\x29\x00\x0f\x20\x11\x00\x0f\x20', 
     41'\x00\x00\x07\x00\x01\x00\x74\x2e\x68\x73\x70\x00\x70\x72\x65\x70', 
     42'\x61\x72\x65\x00\x73\x74\x61\x72\x74\x00\x73\x69\x7a\x65\x00\x61', 
     43'\x00\x73\x74\x00\x6c\x65\x6e\x00\x65\x64\x00\x42\x00\x00\x00\x5d', 
     44'\x00\x00\x00\xfe\x00\x00\x00\x00\x00\x00\x04\x07\x0a\x08\x04\x0d', 
     45'\x06\x0c\x02\x0d\x0e\x00\x06\xfd\x14\x00\x00\x00\x00\xfd\x19\x00', 
     46'\x00\x01\x00\xfd\x1b\x00\x00\x02\x00\xfd\x1e\x00\x00\x03\x00\xfd', 
     47'\x22\x00\x00\x04\x00\xff\xff' 
    5248        ].join(''); 
    5349 
  • lang/javascript/hsp-on-js/trunk/src/str-buffer.js

    r20799 r20845  
    55                this._str = StrBuffer.DEFAULT; 
    66        } 
     7        this._valCache = StrValue.EMPTY_STR; 
    78} 
    89 
     
    1314                val = val.toStrValue(); 
    1415                this._str = val._value + "\0" + this._str.slice(val._value.length + 1); 
     16                this._valCache = val; 
    1517        }, 
    1618        getValue: function getValue() { 
    17                 return new StrValue(Utils.getCStr(this._str)); 
     19                if(!this._valCache) { 
     20                        this._valCache = new StrValue(Utils.getCStr(this._str)); 
     21                } 
     22                return this._valCache; 
    1823        }, 
    1924        getbyte: function getbyte(pos) { 
     
    2934                } 
    3035                this._str = str.slice(0, pos) + String.fromCharCode(val & 0xff) + str.slice(pos + 1); 
     36                this._valCache = null; 
    3137        }, 
    3238        getbytes: function getbytes(pos, length) { 
     
    4248                } 
    4349                this._str = str.slice(0, pos) + buf + str.slice(pos + buf.length); 
     50                this._valCache = null; 
    4451        }, 
    4552        getByteSize: function getByteSize() { 
  • lang/javascript/hsp-on-js/trunk/src/t.hsp

    r20416 r20845  
    1 mes instr("abc", 0, "a") 
    2 mes instr("abc", 0, "c") 
    3 mes instr("abc", 1, "a") 
    4 mes instr("abc", 1, "bc") 
    5 mes instr("abc", 0, "abcd") 
     1mes "prepare" 
     2size = 500000 
     3sdim a, size + 1 
     4memset a, '*', size 
     5mes "start" 
     6st = gettime(-1) 
     7repeat 100 
     8        len = strlen(a) 
     9loop 
     10ed = gettime(-1) 
     11mes int(ed - st) 
    612 
    7 mes 
    8  
    9 mes instr("abc", 0, "") 
    10 mes instr("abc", 2, "") 
    11 mes instr("abc", 10, "") 
    12 mes instr("abc", 100, "")