去年测过的一些数据,今天整理电脑时随便发上来,以便以后查看@呀
MarkupSTL类读xml配置文件测试:
无文件,只做读偿试
10000
real 0m0.001s
user 0m0.000s
sys 0m0.001s
100000
real 0m0.101s
user 0m0.001s
sys 0m0.099s
1000000
real 0m8.239s
user 0m0.370s
sys 0m7.856s
读主mrp配置文件(1kb)
10000
real 0m0.340s
user 0m0.030s
sys 0m0.302s
100000
real 0m3.182s
user 0m0.711s
sys 0m2.461s
1000000
real 0m28.707s
user 0m6.429s
sys 0m22.240s
读宫格配置文件(13kb)
10000
real 0m2.874s
user 0m2.377s
sys 0m0.470s
100000
real 0m24.257s
user 0m21.493s
sys 0m2.752s
1000000
real 225.149s
user 194.927s
sys 0m30.187s
Fopen,Fread读文件
测试文件:1.mp3大小5603805Bite(5.34M)
读10000次:
real 0m0.297s
user 0m0.032s
sys 0m0.265s
map和hash_map
单位:毫秒
hash_map添加耗时:1859,大小:3000000
hash_map遍历耗时:632,大小:3000000
hash_map查找耗时:18456,大小:3000000
hash_map删除耗时:1297,大小:0
**********************************************************
map添加耗时:4251,大小:3000000
map遍历耗时:212,大小:3000000
map查找耗时:21999,大小:3000000
map删除 耗时:608,大小:0
Memcache
单位:毫秒
add datetomemcache:327,大小:10000
catch frommemcache:325,大小:10000
add datetomemcache:3198,大小:100000
catch frommemcache:3030,大小:100000
Add andcatch from memcache:56722,大小:1000000(存后马上取)
add datetomemcache:31741,大小:1000000
catch frommemcache:23367,大小:1000000
pgsql
1,空操作:
10000:
real 0m3.239s
user 0m0.198s
sys 0m1.245s
100000:
real 0m32.457s
user 0m1.344s
sys 0m10.668s
1000000:
real 5m26.784s
user 0m16.985s
sys 1m43.489s
脚本如下:
CREATE OR REPLACE FUNCTION sp_test_null()
RETURNS void AS
$BODY$
DECLARE
begin
end;
$BODY$
LANGUAGE plpgsql VOLATILE
COST 100;
ALTER FUNCTIONsp_test() OWNER TO mpc_servers;
2,查找一个记录,取回一个字段(173383条数据)
10000:
real 0m4.520s
user 0m0.114s
sys 0m0.961s
100000:
real 0m45.250s
user 0m1.040s
sys 0m9.731s
1000000:
real 7m37.199s
user 0m9.148s
sys 1m38.531s
脚本如下:
CREATE OR REPLACEFUNCTION sp_test_integer()
RETURNS SETOF record AS
$BODY$
DECLARE
result record;
BEGIN
for result in select login_days frommpc_usr_login_days_continue whereuser_id =219131287
LOOP
RETURN NEXT result;
END LOOP;
END;
$BODY$
LANGUAGE plpgsql VOLATILE
COST 100
ROWS 1000;
ALTER FUNCTIONsp_test_integer() OWNER TO mpc_servers;
1和2比较结论:和pg的交互时间很大,减少交互可提高效率
3,查找一个记录,取回所有字段(173383条数据)
10000:
real 0m4.865s
user 0m0.153s
sys 0m1.023s
100000:
real 0m49.979s
user 0m1.177s
sys 0m11.148s
1000000:
real 8m19.571s
user 0m10.735s
sys 1m45.063s
脚本:
CREATE OR REPLACEFUNCTION sp_test()
RETURNS SETOF record AS
$BODY$
DECLARE
result record;
BEGIN
for result in select * from mpc_usr_login_days_continue where user_id =219131287
LOOP
RETURN NEXT result;
END LOOP;
END;
$BODY$
LANGUAGE plpgsql VOLATILE
COST 100
ROWS 1000;
ALTER FUNCTIONsp_test() OWNER TO mpc_servers;
--select * from mpc_usr_login_days_continue where user_id =219131287 单条执行16ms
4,10000:sp_access_chat_user_state
real 0m7.244s
user 0m0.100s
sys 0m1.246s
5,10000: CAccountDbAccess::UpatePhoneInfo(有两个pg交互)
real 0m10.144s
user 0m0.270s
sys 0m1.277s
6,10000:sp_updatephoneinfo
real 0m6.712s
user 0m0.067s
sys 0m1.002s
6和7比较结论:一次有多次pg交互的操作,建议放在存储过程里