测试环境:

•测试机:PC
•内存:8GB
•CPU:Intel(R) Core(TM) i5-3450 3.10GHz
•硬盘:HDD
•数据量:20GB
•测试工具:pgbench
•PostgreSQL版本:9.5.1
•参数配置:默认配置
测试结果

PostgreSQL同步复制与PostgreSQL单机性能测试对比

terminals

10

20

30

40

50

PostgreSQL单机(tps)

54

54

61

68

71

PostgreSQL

同步复制(tps)

27

33

53

57

61

PostgreSQL

异步复制(tps)

70

65

77

83

87

测试过程中的数据如下所示:

PostgreSQL同步复制

20GB data    8GB Memory    4CPU

master:192.168.0.14

standby: 192.168.0.15

单机192.168.0.14默认配置测试

[postgres@minion1 bin]$ ./pgbench -d postgres -U postgres -h localhost -p 5432 -c 10  -r -T 600

transaction type: TPC-B (sort of)

scaling factor: 1428

query mode: simple

number of clients: 10

number of threads: 1

duration: 600 s

number of transactions actually processed: 32774

latency average: 183.072 ms

tps = 54.614739 (including connections establishing)

tps = 54.614954 (excluding connections establishing)

statement latencies in milliseconds:

0.007900 \set nbranches 1 * :scale

0.021082 \set ntellers 10 * :scale

0.027008 \set naccounts 100000 * :scale

0.017157 \setrandom aid 1 :naccounts

0.007154 \setrandom bid 1 :nbranches

0.006974 \setrandom tid 1 :ntellers

0.006926 \setrandom delta -5000 5000

0.387514 BEGIN;

57.706042    UPDATE pgbench_accounts SET abalance = abalance + :delta WHERE aid = :aid;

0.531161 SELECT abalance FROM pgbench_accounts WHERE aid = :aid;

0.308336 UPDATE pgbench_tellers SET tbalance = tbalance + :delta WHERE tid = :tid;

0.418083 UPDATE pgbench_branches SET bbalance = bbalance + :delta WHERE bid = :bid;

0.180357 INSERT INTO pgbench_history (tid, bid, aid, delta, mtime) VALUES (:tid, :bid, :aid, :delta, CURRENT_TIMESTAMP);

123.453907  END;

[postgres@minion1 bin]$  ./pgbench -d postgres -U postgres -h localhost -p 5432 -c 20  -r -T 600

transaction type: TPC-B (sort of)

scaling factor: 1428

query mode: simple

number of clients: 20

number of threads: 1

duration: 600 s

number of transactions actually processed: 32665

latency average: 367.366 ms

tps = 54.396128 (including connections establishing)

tps = 54.396331 (excluding connections establishing)

statement latencies in milliseconds:

0.007506 \set nbranches 1 * :scale

0.048462 \set ntellers 10 * :scale

0.015586 \set naccounts 100000 * :scale

0.027542 \setrandom aid 1 :naccounts

0.157314 \setrandom bid 1 :nbranches

0.006869 \setrandom tid 1 :ntellers

0.047938 \setrandom delta -5000 5000

2.134529 BEGIN;

177.995882  UPDATE pgbench_accounts SET abalance = abalance + :delta WHERE aid = :aid;

0.813658 SELECT abalance FROM pgbench_accounts WHERE aid = :aid;

0.292561 UPDATE pgbench_tellers SET tbalance = tbalance + :delta WHERE tid = :tid;

1.041568 UPDATE pgbench_branches SET bbalance = bbalance + :delta WHERE bid = :bid;

0.243265 INSERT INTO pgbench_history (tid, bid, aid, delta, mtime) VALUES (:tid, :bid, :aid, :delta, CURRENT_TIMESTAMP);

184.626413  END;

[postgres@minion1 bin]$ ./pgbench -d postgres -U postgres -h localhost -p 5432 -c 30  -r -T 600

transaction type: TPC-B (sort of)

scaling factor: 1428

query mode: simple

number of clients: 30

number of threads: 1

duration: 600 s

number of transactions actually processed: 36783

latency average: 489.356 ms

tps = 61.251723 (including connections establishing)

tps = 61.251950 (excluding connections establishing)

statement latencies in milliseconds:

0.026379 \set nbranches 1 * :scale

0.018963 \set ntellers 10 * :scale

0.030436 \set naccounts 100000 * :scale

0.059545 \setrandom aid 1 :naccounts

0.007369 \setrandom bid 1 :nbranches

0.006821 \setrandom tid 1 :ntellers

0.006753 \setrandom delta -5000 5000

1.081480 BEGIN;

237.262781  UPDATE pgbench_accounts SET abalance = abalance + :delta WHERE aid = :aid;

1.253963 SELECT abalance FROM pgbench_accounts WHERE aid = :aid;

0.957185 UPDATE pgbench_tellers SET tbalance = tbalance + :delta WHERE tid = :tid;

1.730359 UPDATE pgbench_branches SET bbalance = bbalance + :delta WHERE bid = :bid;

0.236083 INSERT INTO pgbench_history (tid, bid, aid, delta, mtime) VALUES (:tid, :bid, :aid, :delta, CURRENT_TIMESTAMP);

246.731468  END;

[postgres@minion1 bin]$  ./pgbench -d postgres -U postgres -h localhost -p 5432 -c 40  -T 600

transaction type: TPC-B (sort of)

scaling factor: 1428

query mode: simple

number of clients: 40

number of threads: 1

duration: 600 s

number of transactions actually processed: 41001

latency average: 585.352 ms

tps = 68.143229 (including connections establishing)

tps = 68.143475 (excluding connections establishing)

[postgres@minion1 bin]$  ./pgbench -d postgres -U postgres -h localhost -p 5432 -c 50  -T 600

transaction type: TPC-B (sort of)

scaling factor: 1428

query mode: simple

number of clients: 50

number of threads: 1

duration: 600 s

number of transactions actually processed: 43309

latency average: 692.697 ms

tps = 71.867790 (including connections establishing)

tps = 71.868053 (excluding connections establishing)

PG同步复制性能测试

[postgres@node1 bin]$  ./pgbench -d postgres -U postgres -h 192.168.0.14 -p 5432 -c 10  -r -T 600

transaction type: TPC-B (sort of)

scaling factor: 1428

query mode: simple

number of clients: 10

number of threads: 1

duration: 600 s

number of transactions actually processed: 16440

latency average: 364.964 ms

tps = 27.380710 (including connections establishing)

tps = 27.380806 (excluding connections establishing)

statement latencies in milliseconds:

0.008551 \set nbranches 1 * :scale

0.006313 \set ntellers 10 * :scale

0.006117 \set naccounts 100000 * :scale

0.007933 \setrandom aid 1 :naccounts

0.007494 \setrandom bid 1 :nbranches

0.007123 \setrandom tid 1 :ntellers

0.007161 \setrandom delta -5000 5000

0.203136 BEGIN;

119.792707  UPDATE pgbench_accounts SET abalance = abalance + :delta WHERE aid = :aid;

0.270357 SELECT abalance FROM pgbench_accounts WHERE aid = :aid;

0.535077 UPDATE pgbench_tellers SET tbalance = tbalance + :delta WHERE tid = :tid;

0.633911 UPDATE pgbench_branches SET bbalance = bbalance + :delta WHERE bid = :bid;

0.145461 INSERT INTO pgbench_history (tid, bid, aid, delta, mtime) VALUES (:tid, :bid, :aid, :delta, CURRENT_TIMESTAMP);

243.549121  END;

./pgbench -d postgres -U postgres -h localhost -p 5432 -c 20  -r -T 600

transaction type: TPC-B (sort of)

scaling factor: 1428

query mode: simple

number of clients: 20

number of threads: 1

duration: 600 s

number of transactions actually processed: 20203

latency average: 593.971 ms

tps = 33.628754 (including connections establishing)

tps = 33.628872 (excluding connections establishing)

statement latencies in milliseconds:

0.007198 \set nbranches 1 * :scale

0.005499 \set ntellers 10 * :scale

0.005457 \set naccounts 100000 * :scale

0.007148 \setrandom aid 1 :naccounts

0.014756 \setrandom bid 1 :nbranches

0.006343 \setrandom tid 1 :ntellers

0.006322 \setrandom delta -5000 5000

0.332977 BEGIN;

269.706515  UPDATE pgbench_accounts SET abalance = abalance + :delta WHERE aid = :aid;

0.655481 SELECT abalance FROM pgbench_accounts WHERE aid = :aid;

0.594572 UPDATE pgbench_tellers SET tbalance = tbalance + :delta WHERE tid = :tid;

1.425101 UPDATE pgbench_branches SET bbalance = bbalance + :delta WHERE bid = :bid;

0.470575 INSERT INTO pgbench_history (tid, bid, aid, delta, mtime) VALUES (:tid, :bid, :aid, :delta, CURRENT_TIMESTAMP);

321.324808  END;

./pgbench -d postgres -U postgres -h localhost -p 5432 -c 30  -r -T 600

transaction type: TPC-B (sort of)

scaling factor: 1428

query mode: simple

number of clients: 30

number of threads: 1

duration: 600 s

number of transactions actually processed: 32375

latency average: 555.985 ms

tps = 53.872946 (including connections establishing)

tps = 53.873141 (excluding connections establishing)

statement latencies in milliseconds:

0.006620 \set nbranches 1 * :scale

0.005146 \set ntellers 10 * :scale

0.005040 \set naccounts 100000 * :scale

0.006596 \setrandom aid 1 :naccounts

0.006322 \setrandom bid 1 :nbranches

0.005923 \setrandom tid 1 :ntellers

0.005909 \setrandom delta -5000 5000

0.336000 BEGIN;

241.561835  UPDATE pgbench_accounts SET abalance = abalance + :delta WHERE aid = :aid;

0.591474 SELECT abalance FROM pgbench_accounts WHERE aid = :aid;

0.473278 UPDATE pgbench_tellers SET tbalance = tbalance + :delta WHERE tid = :tid;

2.602180 UPDATE pgbench_branches SET bbalance = bbalance + :delta WHERE bid = :bid;

0.163975 INSERT INTO pgbench_history (tid, bid, aid, delta, mtime) VALUES (:tid, :bid, :aid, :delta, CURRENT_TIMESTAMP);

310.427730  END;

./pgbench -d postgres -U postgres -h localhost -p 5432 -c 40  -r -T 600

transaction type: TPC-B (sort of)

scaling factor: 1428

query mode: simple

number of clients: 40

number of threads: 1

duration: 600 s

number of transactions actually processed: 34765

latency average: 690.349 ms

tps = 57.691611 (including connections establishing)

tps = 57.691811 (excluding connections establishing)

statement latencies in milliseconds:

0.006601 \set nbranches 1 * :scale

0.005098 \set ntellers 10 * :scale

0.004962 \set naccounts 100000 * :scale

0.047420 \setrandom aid 1 :naccounts

0.006216 \setrandom bid 1 :nbranches

0.005986 \setrandom tid 1 :ntellers

0.005855 \setrandom delta -5000 5000

0.525683 BEGIN;

293.890014  UPDATE pgbench_accounts SET abalance = abalance + :delta WHERE aid = :aid;

1.446397 SELECT abalance FROM pgbench_accounts WHERE aid = :aid;

0.763961 UPDATE pgbench_tellers SET tbalance = tbalance + :delta WHERE tid = :tid;

3.871294 UPDATE pgbench_branches SET bbalance = bbalance + :delta WHERE bid = :bid;

0.223840 INSERT INTO pgbench_history (tid, bid, aid, delta, mtime) VALUES (:tid, :bid, :aid, :delta, CURRENT_TIMESTAMP);

391.076596  END;

[postgres@node1 bin]$ ./pgbench -d postgres -U postgres -h localhost -p 5432 -c 50  -r -T 600

transaction type: TPC-B (sort of)

scaling factor: 1428

query mode: simple

number of clients: 50

number of threads: 1

duration: 600 s

number of transactions actually processed: 36851

latency average: 814.089 ms

tps = 61.288387 (including connections establishing)

tps = 61.288599 (excluding connections establishing)

statement latencies in milliseconds:

0.036619 \set nbranches 1 * :scale

0.015365 \set ntellers 10 * :scale

0.048885 \set naccounts 100000 * :scale

0.006212 \setrandom aid 1 :naccounts

0.005962 \setrandom bid 1 :nbranches

0.005748 \setrandom tid 1 :ntellers

0.028424 \setrandom delta -5000 5000

1.002420 BEGIN;

341.759347  UPDATE pgbench_accounts SET abalance = abalance + :delta WHERE aid = :aid;

1.338118 SELECT abalance FROM pgbench_accounts WHERE aid = :aid;

1.909057 UPDATE pgbench_tellers SET tbalance = tbalance + :delta WHERE tid = :tid;

5.901859 UPDATE pgbench_branches SET bbalance = bbalance + :delta WHERE bid = :bid;

0.338450 INSERT INTO pgbench_history (tid, bid, aid, delta, mtime) VALUES (:tid, :bid, :aid, :delta, CURRENT_TIMESTAMP);

462.642218  END;

PostgreSQL异步复制性能测试

[postgres@node1 bin]$ ./pgbench -d postgres -U postgres -h localhost -p 5432 -c 10  -r -T 600

transaction type: TPC-B (sort of)

scaling factor: 1428

query mode: simple

number of clients: 10

number of threads: 1

duration: 600 s

number of transactions actually processed: 42402

latency average: 141.503 ms

tps = 70.656084 (including connections establishing)

tps = 70.656332 (excluding connections establishing)

statement latencies in milliseconds:

0.009604 \set nbranches 1 * :scale

0.008152 \set ntellers 10 * :scale

0.007491 \set naccounts 100000 * :scale

0.008265 \setrandom aid 1 :naccounts

0.007667 \setrandom bid 1 :nbranches

0.007304 \setrandom tid 1 :ntellers

0.127113 \setrandom delta -5000 5000

0.061162 BEGIN;

139.243102  UPDATE pgbench_accounts SET abalance = abalance + :delta WHERE aid = :aid;

0.990680 SELECT abalance FROM pgbench_accounts WHERE aid = :aid;

0.489713 UPDATE pgbench_tellers SET tbalance = tbalance + :delta WHERE tid = :tid;

0.230086 UPDATE pgbench_branches SET bbalance = bbalance + :delta WHERE bid = :bid;

0.214473 INSERT INTO pgbench_history (tid, bid, aid, delta, mtime) VALUES (:tid, :bid, :aid, :delta, CURRENT_TIMESTAMP);

0.101391 END;

[postgres@node1 bin]$  ./pgbench -d postgres -U postgres -h localhost -p 5432 -c 20  -r -T 600

transaction type: TPC-B (sort of)

scaling factor: 1428

query mode: simple

number of clients: 20

number of threads: 1

duration: 600 s

number of transactions actually processed: 39253

latency average: 305.709 ms

tps = 65.333390 (including connections establishing)

tps = 65.333617 (excluding connections establishing)

statement latencies in milliseconds:

0.009897 \set nbranches 1 * :scale

0.007471 \set ntellers 10 * :scale

0.006880 \set naccounts 100000 * :scale

0.032549 \setrandom aid 1 :naccounts

0.097106 \setrandom bid 1 :nbranches

0.006860 \setrandom tid 1 :ntellers

0.125257 \setrandom delta -5000 5000

0.100855 BEGIN;

299.825466  UPDATE pgbench_accounts SET abalance = abalance + :delta WHERE aid = :aid;

4.123210 SELECT abalance FROM pgbench_accounts WHERE aid = :aid;

0.389870 UPDATE pgbench_tellers SET tbalance = tbalance + :delta WHERE tid = :tid;

0.347125 UPDATE pgbench_branches SET bbalance = bbalance + :delta WHERE bid = :bid;

0.429468 INSERT INTO pgbench_history (tid, bid, aid, delta, mtime) VALUES (:tid, :bid, :aid, :delta, CURRENT_TIMESTAMP);

0.495837 END;

[postgres@node1 bin]$ ./pgbench -d postgres -U postgres -h localhost -p 5432 -c 30  -r -T 600

transaction type: TPC-B (sort of)

scaling factor: 1428

query mode: simple

number of clients: 30

number of threads: 1

duration: 600 s

number of transactions actually processed: 46800

latency average: 384.615 ms

tps = 77.815440 (including connections establishing)

tps = 77.815712 (excluding connections establishing)

statement latencies in milliseconds:

0.010180 \set nbranches 1 * :scale

0.007174 \set ntellers 10 * :scale

0.006647 \set naccounts 100000 * :scale

0.065834 \setrandom aid 1 :naccounts

0.026308 \setrandom bid 1 :nbranches

0.006901 \setrandom tid 1 :ntellers

0.054161 \setrandom delta -5000 5000

0.203354 BEGIN;

373.666099  UPDATE pgbench_accounts SET abalance = abalance + :delta WHERE aid = :aid;

6.878700 SELECT abalance FROM pgbench_accounts WHERE aid = :aid;

1.379165 UPDATE pgbench_tellers SET tbalance = tbalance + :delta WHERE tid = :tid;

0.812257 UPDATE pgbench_branches SET bbalance = bbalance + :delta WHERE bid = :bid;

1.496860 INSERT INTO pgbench_history (tid, bid, aid, delta, mtime) VALUES (:tid, :bid, :aid, :delta, CURRENT_TIMESTAMP);

0.414110 END;

[postgres@node1 bin]$ ./pgbench -d postgres -U postgres -h localhost -p 5432 -c 40  -r -T 600

transaction type: TPC-B (sort of)

scaling factor: 1428

query mode: simple

number of clients: 40

number of threads: 1

duration: 600 s

number of transactions actually processed: 50331

latency average: 476.843 ms

tps = 83.765539 (including connections establishing)

tps = 83.765830 (excluding connections establishing)

statement latencies in milliseconds:

0.009836 \set nbranches 1 * :scale

0.010446 \set ntellers 10 * :scale

0.006072 \set naccounts 100000 * :scale

0.010755 \setrandom aid 1 :naccounts

0.024105 \setrandom bid 1 :nbranches

0.006772 \setrandom tid 1 :ntellers

0.036164 \setrandom delta -5000 5000

0.132524 BEGIN;

457.122401  UPDATE pgbench_accounts SET abalance = abalance + :delta WHERE aid = :aid;

15.298400    SELECT abalance FROM pgbench_accounts WHERE aid = :aid;

1.702279 UPDATE pgbench_tellers SET tbalance = tbalance + :delta WHERE tid = :tid;

0.676259 UPDATE pgbench_branches SET bbalance = bbalance + :delta WHERE bid = :bid;

1.552850 INSERT INTO pgbench_history (tid, bid, aid, delta, mtime) VALUES (:tid, :bid, :aid, :delta, CURRENT_TIMESTAMP);

0.482677 END;

[postgres@node1 bin]$ ./pgbench -d postgres -U postgres -h localhost -p 5432 -c 50  -r -T 600

transaction type: TPC-B (sort of)

scaling factor: 1428

query mode: simple

number of clients: 50

number of threads: 1

duration: 600 s

number of transactions actually processed: 52834

latency average: 567.816 ms

tps = 87.954780 (including connections establishing)

tps = 87.955086 (excluding connections establishing)

statement latencies in milliseconds:

0.009852 \set nbranches 1 * :scale

0.006589 \set ntellers 10 * :scale

0.005597 \set naccounts 100000 * :scale

0.081271 \setrandom aid 1 :naccounts

0.012686 \setrandom bid 1 :nbranches

0.006291 \setrandom tid 1 :ntellers

0.102962 \setrandom delta -5000 5000

0.326865 BEGIN;

543.207220  UPDATE pgbench_accounts SET abalance = abalance + :delta WHERE aid = :aid;

20.356945    SELECT abalance FROM pgbench_accounts WHERE aid = :aid;

1.614863 UPDATE pgbench_tellers SET tbalance = tbalance + :delta WHERE tid = :tid;

0.864676 UPDATE pgbench_branches SET bbalance = bbalance + :delta WHERE bid = :bid;

0.872985 INSERT INTO pgbench_history (tid, bid, aid, delta, mtime) VALUES (:tid, :bid, :aid, :delta, CURRENT_TIMESTAMP);

0.531862 END;

PostgreSQL单机、同步复制、异步复制性能测试对比的更多相关文章

  1. JAVA通过Gearman实现MySQL到Redis的数据同步(异步复制)

    MySQL到Redis数据复制方案 无论MySQL还是Redis,自身都带有数据同步的机制,像比较常用的 MySQL的Master/Slave模式 ,就是由Slave端分析Master的binlog来 ...

  2. MySQL的异步复制、全同步复制与半同步复制

    异步复制 异步复制,主库将事务 Binlog 事件写入到 Binlog 文件中,此时主库只会通知一下 Dump 线程发送这些新的 Binlog,然后主库就会继续处理提交操作,而此时不会保证这些 Bin ...

  3. mysql主从复制的异步复制与同步复制

    异 步复制:MySQL本身支持单向的.异步的复制.异步复制意味着在把数据从一台机器拷贝到另一台机器时有一个延时 – 最重要的是这意味着当应用系统的事务提交已经确认时数据并不能在同一时刻拷贝/应用到从机 ...

  4. 1018关于MySQL复制搭建[异步复制和半同步复制]

    转自:http://www.cnblogs.com/ivictor/p/5735580.html 搭建MySQL数据库的主从架构,还是蛮简单的.重要的几个命令整理一下. 主从服务器上: SHOW VA ...

  5. mysql关于“异步复制”“同步复制”“半同步复制”“无损复制”的概念与区别

    异步复制:主把事务写到binlog日志并不管从是否接收或者什么时候接收,commit之后,不会与从发生ack之类的交互. 同步复制:当主提交一个事务,在主向前端返回一个commit成功的指令前,必须保 ...

  6. MySQL异步复制、半同步复制详解

    MySQL数据复制的原理图大致如下: 从上图我们可以看出MySQL数据库的复制需要启动三个线程来实现: 其中1个在主服务器上,另两个在从服务器上.当发出START SLAVE时,从服务器创建一个I/O ...

  7. PostgreSQL Replication之第四章 设置异步复制(1)

    执行完您的第一个即时恢复(PITR,Point-In-Time-Recovery),我们准备在一个真正的复制设置上工作.在本章,您将学会如何设置异步复制和流.我们的目标是确保您可以实现更高的高可用和更 ...

  8. MySQL 5.7的复制架构,在有异步复制、半同步、增强半同步、MGR等的生产中,该如何选择?

    一.生产环境中: 几种复制场景都有存在的价值.下面分别描述一下: 从成熟度上来选择,推荐:异步复制(GTID+ROW) 从数据安全及更高性能上选择:增强半同步 (在这个结构下也可以把innodb_fl ...

  9. 【3.1】【mysql基本实验】mysql复制(主从复制/异步复制/半同步复制,一主一从)

    关键词:mysql复制(异步复制),mysql异步复制 核心原理: mysql 复制流程原理 一个事务在 mysql异步复制中的流程与生命周期 一个事务,在传统半同步的复制流程 #mysql主从基本实 ...

随机推荐

  1. Windows2008 R2修改3389端口教程

    默认的3389端口有必要修改么,这个端口,我建议是修改一下为好,最好改大一点,这样安全性会高一点,但然面对高手级攻击,就没有用了,通常高手级过NMAP扫描一个你的IP地址,端便全然显现出来了,好了,下 ...

  2. PDO操作

    1.创建实例与取结果集 <? $db = new PDO('mysql:host=localhost;dbname=test', $user, $pass); $rs = $db->que ...

  3. java jmx

    http://blog.csdn.net/qiao000_000/article/details/6063949 一.JMX简介 什么是JMX?在一篇网文中是这样说的:"JMX(Java M ...

  4. 在magento中如何回复客户的评论

    magento — 在magento中如何回复客户的评论 发表于 2012 年 8 月 18 日 agento本身是不带 回复评论的功能的,现成的扩展(无论免费的还是商业的)也没找到,那就自己写一个吧 ...

  5. sublime text主要快捷键列表

    Ctrl+L 选择整行(按住-继续选择下行)Ctrl+KK 从光标处删除至行尾Ctrl+Shift+K 删除整行Ctrl+Shift+D 复制光标所在整行,插入在该行之前Ctrl+J 合并行(已选择需 ...

  6. WPF 本周、本月、本季、本年的第一天与最后一天取法

    lblWeekStart.Content = DateTime.Now.AddDays(Convert.ToDouble((0 - Convert.ToInt16(DateTime.Now.DayOf ...

  7. emmc boot1 boot2 partition

    使用mfg tool烧写android5.1的镜像之后,再使用旧版的mfg tool烧写linux或者android镜像,都不能正常启动,而且运行的uboot还是android5.1版本的uboot. ...

  8. [代码片段]读取BMP文件

    文件名mybmp.c //实现了读取24位BMP文件,还有一些测试信息 //定义mybmp.c里面用到的函数和相关头文件.常量 //参考了网友sailinghz在CSDN论坛的帖子:http://bb ...

  9. 招聘一个靠谱的iOS》面试题参考答案(上)

    说明:面试题来源是微博@我就叫Sunny怎么了的这篇博文:<招聘一个靠谱的 iOS>,其中共55题,除第一题为纠错题外,其他54道均为简答题. 博文中给出了高质量的面试题,但是未给出答案, ...

  10. 微信支付开发(3) JS API支付

    由于微信支付接口更新,本文档已过期,请查看新版微信支付教程.地址 http://www.cnblogs.com/txw1958/category/624506.html 本文介绍如何使用JS API支 ...