2008-05-16

字符 描述
\ 将下一个字符标记为一个特殊字符、或一个原义字符、或一个 向后引用、或一个八进制转义符。例如,'n' 匹配字符 "n"。'\n' 匹配一个换行符。序列 '\\' 匹配 "\" 而 "\(" 则匹配 "("。
^ 匹配输入字符串的开始位置。如果设置了 RegExp 对象的 Multiline 属性,^ 也匹配 '\n' 或 '\r' 之后的位置。
$ 匹配输入字符串的结束位置。如果设置了RegExp 对象的 Multiline 属性,$ 也匹配 '\n' 或 '\r' 之前的位置。
* 匹配前面的子表达式零次或多次。例如,zo* 能匹配 "z" 以及 "zoo"。* 等价于{0,}。
+ 匹配前面的子表达式一次或多次。例如,'zo+' 能匹配 "zo" 以及 "zoo",但不能匹配 "z"。+ 等价于 {1,}。
? 匹配前面的子表达式零次或一次。例如,"do(es)?" 可以匹配 "do" 或 "does" 中的"do" 。? 等价于 {0,1}。
{n} n 是一个非负整数。匹配确定的 n 次。例如,'o{2}' 不能匹配 "Bob" 中的 'o',但是能匹配 "food" 中的两个 o。
{n,} n 是一个非负整数。至少匹配n 次。例如,'o{2,}' 不能匹配 "Bob" 中的 'o',但能匹配 "foooood" 中的所有 o。'o{1,}' 等价于 'o+'。'o{0,}' 则等价于 'o*'。
{n,m} m 和 n 均为非负整数,其中n <= m。最少匹配 n 次且最多匹配 m 次。例如,"o{1,3}" 将匹配 "fooooood" 中的前三个 o。'o{0,1}' 等价于 'o?'。请注意在逗号和两个数之间不能有空格。
?
该字符紧跟在任何一个其他限制符 (*, +, ?, {n}, {n,}, {n,m})
后面时,匹配模式是非贪婪的。非贪婪模式尽可能少的匹配所搜索的字符串,而默认的贪婪模式则尽可能多的匹配所搜索的字符串。例如,对于字符串
"oooo",'o+?' 将匹配单个 "o",而 'o+' 将匹配所有 'o'。
. 匹配除 "\n" 之外的任何单个字符。要匹配包括 '\n' 在内的任何字符,请使用象 '[.\n]' 的模式。
(pattern) 匹配 pattern 并获取这一匹配。所获取的匹配可以从产生的 Matches 集合得到,在VBScript 中使用 SubMatches 集合,在JScript 中则使用 $0…$9 属性。要匹配圆括号字符,请使用 '\(' 或 '\)'。
(?:pattern)
配 pattern 但不获取匹配结果,也就是说这是一个非获取匹配,不进行存储供以后使用。这在使用 "或" 字符 (|)
来组合一个模式的各个部分是很有用。例如, 'industr(?:y|ies) 就是一个比 'industry|industries'
更简略的表达式。
(?=pattern)
向预查,在任何匹配 pattern
的字符串开始处匹配查找字符串。这是一个非获取匹配,也就是说,该匹配不需要获取供以后使用。例如,'Windows
(?=95|98|NT|2000)' 能匹配 "Windows 2000" 中的 "Windows" ,但不能匹配 "Windows 3.1"
中的
"Windows"。预查不消耗字符,也就是说,在一个匹配发生后,在最后一次匹配之后立即开始下一次匹配的搜索,而不是从包含预查的字符之后开始。
(?!pattern)
向预查,在任何不匹配 pattern
的字符串开始处匹配查找字符串。这是一个非获取匹配,也就是说,该匹配不需要获取供以后使用。例如'Windows
(?!95|98|NT|2000)' 能匹配 "Windows 3.1" 中的 "Windows",但不能匹配 "Windows 2000"
中的 "Windows"。预查不消耗字符,也就是说,在一个匹配发生后,在最后一次匹配之后立即开始下一次匹配的搜索,而不是从包含预查的字符之后开始
x|y 匹配 x 或 y。例如,'z|food' 能匹配 "z" 或 "food"。'(z|f)ood' 则匹配 "zood" 或 "food"。
[xyz] 字符集合。匹配所包含的任意一个字符。例如, '[abc]' 可以匹配 "plain" 中的 'a'。
[^xyz] 负值字符集合。匹配未包含的任意字符。例如, '[^abc]' 可以匹配 "plain" 中的'p'。
[a-z] 字符范围。匹配指定范围内的任意字符。例如,'[a-z]' 可以匹配 'a' 到 'z' 范围内的任意小写字母字符。
[^a-z] 负值字符范围。匹配任何不在指定范围内的任意字符。例如,'[^a-z]' 可以匹配任何不在 'a' 到 'z' 范围内的任意字符。
\b 匹配一个单词边界,也就是指单词和空格间的位置。例如, 'er\b' 可以匹配"never" 中的 'er',但不能匹配 "verb" 中的 'er'。
\B 匹配非单词边界。'er\B' 能匹配 "verb" 中的 'er',但不能匹配 "never" 中的 'er'。
\cx 匹配由 x 指明的控制字符。例如, \cM 匹配一个 Control-M 或回车符。x 的值必须为 A-Z 或 a-z 之一。否则,将 c 视为一个原义的 'c' 字符。
\d 匹配一个数字字符。等价于 [0-9]。
\D 匹配一个非数字字符。等价于 [^0-9]。
\f 匹配一个换页符。等价于 \x0c 和 \cL。
\n 匹配一个换行符。等价于 \x0a 和 \cJ。
\r 匹配一个回车符。等价于 \x0d 和 \cM。
\s 匹配任何空白字符,包括空格、制表符、换页符等等。等价于 [ \f\n\r\t\v]。
\S 匹配任何非空白字符。等价于 [^ \f\n\r\t\v]。
\t 匹配一个制表符。等价于 \x09 和 \cI。
\v 匹配一个垂直制表符。等价于 \x0b 和 \cK。
\w 匹配包括下划线的任何单词字符。等价于'[A-Za-z0-9_]'。
\W 匹配任何非单词字符。等价于 '[^A-Za-z0-9_]'。
\xn 匹配 n,其中 n 为十六进制转义值。十六进制转义值必须为确定的两个数字长。例如,'\x41' 匹配 "A"。'\x041' 则等价于 '\x04' & "1"。正则表达式中可以使用 ASCII 编码。.
\num 匹配 num,其中 num 是一个正整数。对所获取的匹配的引用。例如,'(.)\1' 匹配两个连续的相同字符。
\n 标识一个八进制转义值或一个向后引用。如果 \n 之前至少 n 个获取的子表达式,则 n 为向后引用。否则,如果 n 为八进制数字 (0-7),则 n 为一个八进制转义值。
\nm
识一个八进制转义值或一个向后引用。如果 \nm 之前至少有 nm 个获得子表达式,则 nm 为向后引用。如果 \nm 之前至少有 n
个获取,则 n 为一个后跟文字 m 的向后引用。如果前面的条件都不满足,若 n 和 m 均为八进制数字 (0-7),则 \nm
将匹配八进制转义值 nm。
\nml 如果 n 为八进制数字 (0-3),且 m 和 l 均为八进制数字 (0-7),则匹配八进制转义值 nml。
\un 匹配 n,其中 n 是一个用四个十六进制数字表示的 Unicode 字符。例如, \u00A9 匹配版权符号 (?)。

2008-05-14

httperf 一个高性能的压力测试工具0

Httperf is a tool for measuring web server performance. It provides a flexible facility for generating various HTTP workloads and for measuring server

performance. The focus of httperf is not on implementing one particular
benchmark but on providing a robust, high-performance tool that
facilitates the construction of both micro- and macro-level benchmarks.
The three distinguishing characteristics of httperf are its robustness,
which includes the ability to generate and sustain server overload,
support for the HTTP/1.1 and SSL protocols, and its extensibility to
new workload generators and performance measurements.



Httperf 是一个高效的 http 压力测试工具,使用它可以模拟出超过1千的并发访问,能充分测试出 web server 的性能。而之前使用的 siege 测试工具则未能突破 500 个并发测试(如果您知道如何可以实现,请告诉我)



使用 httperf 应该能了解到自己编写 yo2cache 软件性能极限如何了 :)



以下是 gzip 格式访问的测试数据(因缓存文件以 gzip 格式保存,所以性能是最高的)





oneoo@oneoo-pc:~/Desktop$ httperf –server oneoo.com –num-conns 2000 –add-header “accept-encoding: gzip”

httperf –client=0/1 –server=oneoo.com –port=80 –uri=/ –send-buffer=4096
–recv-buffer=16384 –add-header=’accept-encoding: gzip’ –num-conns=2000
–num-calls=1


Maximum connect burst length: 1



Total: connections 2000 requests 2000 replies 2000 test-duration 1.304 s



Connection rate: 1533.7 conn/s (0.7 ms/conn, <=1 concurrent connections)


Connection time [ms]: min 0.6 avg 0.7 max 6.3 median 0.5 stddev 0.2


Connection time [ms]: connect 0.0


Connection length [replies/conn]: 1.000



Request rate: 1533.7 req/s (0.7 ms/req)


Request size [B]: 81.0



Reply rate [replies/s]: min 0.0 avg 0.0 max 0.0 stddev 0.0 (0 samples)


Reply time [ms]: response 0.6 transfer 0.0


Reply size [B]: header 302.0 content 10482.0 footer 0.0 (total 10784.0)


Reply status: 1xx=0 2xx=2000 3xx=0 4xx=0 5xx=0



CPU time [s]: user 0.29 system 1.01 (user 22.4% system 77.6% total 100.0%)


Net I/O: 16273.4 KB/s (133.3*10^6 bps)



Errors: total 0 client-timo 0 socket-timo 0 connrefused 0 connreset 0


Errors: fd-unavail 0 addrunavail 0 ftab-full 0 other 0





以下是 deflate (2级压缩率)格式访问的统计数据(需要从 gzip 解压,再压缩为 deflate 的数据处理)





oneoo@oneoo-pc:~/Desktop$ httperf –server oneoo.com –num-conns 2000 –add-header “accept-encoding: deflate”

httperf –client=0/1 –server=oneoo.com –port=80 –uri=/ –send-buffer=4096
–recv-buffer=16384 –add-header=’accept-encoding: deflate’
–num-conns=2000 –num-calls=1


Maximum connect burst length: 1



Total: connections 2000 requests 2000 replies 2000 test-duration 4.113 s



Connection rate: 486.2 conn/s (2.1 ms/conn, <=1 concurrent connections)


Connection time [ms]: min 2.0 avg 2.1 max 11.8 median 2.5 stddev 0.3


Connection time [ms]: connect 0.0


Connection length [replies/conn]: 1.000



Request rate: 486.2 req/s (2.1 ms/req)


Request size [B]: 84.0



Reply rate [replies/s]: min 0.0 avg 0.0 max 0.0 stddev 0.0 (0 samples)


Reply time [ms]: response 0.6 transfer 1.5


Reply size [B]: header 305.0 content 11014.0 footer 0.0 (total 11319.0)


Reply status: 1xx=0 2xx=2000 3xx=0 4xx=0 5xx=0



CPU time [s]: user 0.91 system 3.20 (user 22.2% system 77.8% total 100.0%)


Net I/O: 5414.3 KB/s (44.4*10^6 bps)



Errors: total 0 client-timo 0 socket-timo 0 connrefused 0 connreset 0


Errors: fd-unavail 0 addrunavail 0 ftab-full 0 other 0





以下是 deflate (4级压缩率)格式访问的统计数据





oneoo@oneoo-pc:~/Desktop$ httperf –server oneoo.com –num-conns 2000 –add-header “accept-encoding: deflate”

httperf –client=0/1 –server=oneoo.com –port=80 –uri=/ –send-buffer=4096
–recv-buffer=16384 –add-header=’accept-encoding: deflate’
–num-conns=2000 –num-calls=1


Maximum connect burst length: 1



Total: connections 2000 requests 2000 replies 2000 test-duration 5.329 s



Connection rate: 375.3 conn/s (2.7 ms/conn, <=1 concurrent connections)


Connection time [ms]: min 2.6 avg 2.7 max 32.8 median 2.5 stddev 0.7


Connection time [ms]: connect 0.0


Connection length [replies/conn]: 1.000



Request rate: 375.3 req/s (2.7 ms/req)


Request size [B]: 84.0



Reply rate [replies/s]: min 374.8 avg 374.8 max 374.8 stddev 0.0 (1 samples)


Reply time [ms]: response 0.6 transfer 2.0


Reply size [B]: header 305.0 content 10457.0 footer 0.0 (total 10762.0)


Reply status: 1xx=0 2xx=2000 3xx=0 4xx=0 5xx=0



CPU time [s]: user 1.29 system 4.01 (user 24.2% system 75.2% total 99.4%)


Net I/O: 3975.4 KB/s (32.6*10^6 bps)



Errors: total 0 client-timo 0 socket-timo 0 connrefused 0 connreset 0


Errors: fd-unavail 0 addrunavail 0 ftab-full 0 other 0





以下是文本格式访问的统计数据





oneoo@oneoo-pc:~/Desktop$ httperf –server oneoo.com –num-conns 2000 –add-header “accept-encoding: normal”

httperf –client=0/1 –server=oneoo.com –port=80 –uri=/ –send-buffer=4096
–recv-buffer=16384 –add-header=’accept-encoding: normal’
–num-conns=2000 –num-calls=1


Maximum connect burst length: 1



Total: connections 2000 requests 2000 replies 2000 test-duration 2.349 s



Connection rate: 851.3 conn/s (1.2 ms/conn, <=1 concurrent connections)


Connection time [ms]: min 1.1 avg 1.2 max 5.8 median 1.5 stddev 0.2


Connection time [ms]: connect 0.0


Connection length [replies/conn]: 1.000



Request rate: 851.3 req/s (1.2 ms/req)


Request size [B]: 83.0



Reply rate [replies/s]: min 0.0 avg 0.0 max 0.0 stddev 0.0 (0 samples)


Reply time [ms]: response 0.6 transfer 0.6


Reply size [B]: header 278.0 content 42562.0 footer 0.0 (total 42840.0)


Reply status: 1xx=0 2xx=2000 3xx=0 4xx=0 5xx=0



CPU time [s]: user 0.62 system 1.73 (user 26.2% system 73.7% total 99.9%)


Net I/O: 35683.0 KB/s (292.3*10^6 bps)



Errors: total 0 client-timo 0 socket-timo 0 connrefused 0 connreset 0


Errors: fd-unavail 0 addrunavail 0 ftab-full 0 other 0





从以上数据可以看到 yo2cache 性能挺好的,最高能达到每秒 1500 个并发处理。性能瓶颈是出现在缓存数据的解压与压缩处理上,如果缓存空间足够大的话,可以考虑保存多种格式的缓存数据,就能解决这个瓶颈问题。



而在 deflate 数据压缩方面,因为2级压缩率与4级压缩率所产生的数据量差距不大,但并发性能有一定差距,可以考虑使用 2 级压缩率。

2008-05-07

中文姓氏的英文翻译对照表


互联网上混的都时兴起个英文名字,一是方便注册用户名,二是有个好英文名容易显得自己比较Cool。但是起英文名时,中文姓氏还是要保留的,并且姓氏一般
都有专门的英文翻译,比如“刘德华”的英文名是Andy,刘姓对应的英文翻译是Lau,所以全称便是“Andy Lau”。
当然了,我们一般人直接用汉语拼音作为姓氏的英文翻译也可以,但在比较正式的场合下,最好还是用相应的英文翻译。



姓氏的英文翻译跟汉语拼音是有一些细微差别的,这主要由中西方人发音的不同特点来决定的。比如,从声母上来看,D开头的姓,英文翻译对应的是T,G对应的
是K,X对应的是HS,Z、J一般对应的是C,韵母也会有一些细微差别。详细的,请参考如下中文姓氏的英文翻译对照表,正在起英文名的朋友可以看看。




A:




艾--Ai

安--Ann/An

敖--Ao



B:



巴--Pa

白--Pai

包/鲍--Paul/Pao

班--Pan

贝--Pei

毕--Pih

卞--Bein

卜/薄--Po/Pu

步--Poo

百里--Pai-li



C:



蔡/柴--Tsia/Choi/Tsai

曹/晁/巢--Chao/Chiao/Tsao

岑--Cheng

崔--Tsui

查--Cha

常--Chiong

车--Che

陈--Chen/Chan/Tan

成/程--Cheng

池--Chi

褚/楚--Chu

淳于--Chwen-yu



D:



戴/代--Day/Tai

邓--Teng/Tang/Tung

狄--Ti

刁--Tiao

丁--Ting/T

董/东--Tung/Tong

窦--Tou

杜--To/Du/Too

段--Tuan

端木--Duan-mu

东郭--Tung-kuo

东方--Tung-fang



E:



F:



范/樊--Fan/Van

房/方--Fang

费--Fei

冯/凤/封--Fung/Fong

符/傅--Fu/Foo



G:



盖--Kai

甘--Kan

高/郜--Gao/Kao

葛--Keh

耿--Keng

弓/宫/龚/恭--Kung

勾--Kou

古/谷/顾--Ku/Koo

桂--Kwei

管/关--Kuan/Kwan

郭/国--Kwok/Kuo

公孙--Kung-sun

公羊--Kung-yang

公冶--Kung-yeh

谷梁--Ku-liang



H:



海--Hay

韩--Hon/Han

杭--Hang

郝--Hoa/Howe

何/贺--Ho

桓--Won

侯--Hou

洪--Hung

胡/扈--Hu/Hoo

花/华--Hua

宦--Huan

黄--Wong/Hwang

霍--Huo

皇甫--Hwang-fu

呼延--Hu-yen



I:



J:



纪/翼/季/吉/嵇/汲/籍/姬--Chi

居--Chu

贾--Chia

翦/简--Jen/Jane/Chieh

蒋/姜/江/--Chiang/Kwong

焦--Chiao

金/靳--Jin/King

景/荆--King/Ching

讦--Gan



K:



阚--Kan

康--Kang

柯--Kor/Ko

孔--Kong/Kung

寇--Ker

蒯--Kuai

匡--Kuang



L:



赖--Lai

蓝--Lan

郎--Long

劳--Lao

乐--Loh

雷--Rae/Ray/Lei

冷--Leng

黎/郦/利/李--Lee/Li/Lai/Li

连--Lien

廖--Liu/Liao

梁--Leung/Liang

林/蔺--Lim/Lin

凌--Lin

柳/刘--Liu/Lau

龙--Long

楼/娄--Lou

卢/路/陆鲁--Lu/Loo

伦--Lun

罗/骆--Loh/Lo/Law/Lam/Rowe

吕--Lui/Lu

令狐--Lin-hoo



M:



马/麻--Ma

麦--Mai/Mak

满--Man/Mai

毛--Mao

梅--Mei

孟/蒙--Mong/Meng

米/宓--Mi

苗/缪--Miau/Miao

闵--Min

穆/慕--Moo/Mo

莫--Mok/Mo

万俟--Moh-chi

慕容--Mo-yung



N:



倪--Nee

甯--Ning

聂--Nieh

牛--New/Niu

农--Long

南宫--Nan-kung



欧/区--Au/Ou

欧阳--Ou-yang



P:



潘--Pang/Pan

庞--Pang

裴--Pei/Bae

彭--Phang/Pong

皮--Pee

平--Ping

浦/蒲/卜--Poo/Pu

濮阳--Poo-yang



Q:



祁/戚/齐--Chi/Chyi/Chi/Chih

钱--Chien

乔--Chiao/Joe

秦--Ching

裘/仇/邱--Chiu

屈/曲/瞿--Chiu/Chu



R:



冉--Yien

饶--Yau

任--Jen/Yum

容/荣--Yung

阮--Yuen

芮--Nei



S:



司--Sze

桑--Sang

沙--Sa

邵--Shao

单/山--San

尚/商--Sang/Shang

沈/申--Shen

盛--Shen

史/施/师/石--Shih/Shi

苏/宿/舒--Sue/Se/Soo/Hsu

孙--Sun/Suen

宋--Song/Soung

司空--Sze-kung

司马--Sze-ma

司徒--Sze-to

单于--San-yu

上官--Sang-kuan

申屠--Shen-tu



T:



谈--Tan

汤/唐--Town/Towne/Tang

邰--Tai

谭--Tan/Tam

陶--Tao

藤--Teng

田--Tien

童--Tung

屠--Tu

澹台--Tan-tai

拓拔--Toh-bah



U:

V:



W:



万--Wan

王/汪--Wong

魏/卫/韦--Wei

温/文/闻--Wen/Chin/Vane/Man

翁--Ong

吴/伍/巫/武/邬/乌--Wu/NG/Woov



X:



奚/席--Hsi/Chi

夏--Har/Hsia/(Summer)

肖/萧--Shaw/Siu/Hsiao

项/向--Hsiang

解/谢--Tse/Shieh

辛--Hsing

刑--Hsing

熊--Hsiung/Hsiun

许/徐/荀--Shun/Hui/Hsu

宣--Hsuan

薛--Hsueh

西门--See-men

夏侯--Hsia-hou

轩辕--Hsuan-yuen



Y:



燕/晏/阎/严/颜--Yim/Yen

杨/羊/养--Young/Yang

姚--Yao/Yau

叶--Yip/Yeh/Yih

伊/易/羿--Yih/E

殷/阴/尹--Yi/Yin/Ying

应--Ying

尤/游--Yu/You

俞/庾/于/余/虞/郁/余/禹--Yue/Yu

袁/元--Yuan/Yuen

岳--Yue

云--Wing

尉迟--Yu-chi

宇文--Yu-wen



Z:



藏--Chang

曾/郑--Tsang/Cheng/Tseng

訾--Zi

宗--Chung

左/卓--Cho/Tso

v 翟--Chia

詹--Chan

甄--Chen

湛--Tsan

张/章--Cheung/Chang

赵/肇/招--Chao/Chiu/Chiao/Chioa

周/邹--Chau/Chou/Chow

钟--Chung

祖/竺/朱/诸/祝--Chu/Chuh

庄--Chong

钟离--Chung-li

诸葛--Chu-keh

Popular Posts