Boost C++ Libraries Home Libraries People FAQ More

PrevUpHomeNext

What is the maximum throughput of AFIO's closure execution engine aka how many IOPS can I push with AFIO?

For v1.3 of the engine, maximum ops dispatch throughput is approximately as follows, where the values for call() might be for use as a closure engine whereas the values for completion() might be for max filing system IOPS[12]:

Table 1.16. Maximum null closure dispatch rate on a 3.5Ghz Intel Core i7 3770K for AFIO v1.3[a]

Operating system

call() unchained

call() chained

completion() unchained

completion() chained

Raw ASIO

Microsoft Windows 8 x64 with Visual Studio 2013

1148070

704051

1850090

877899

2750088

Relative to ASIO

42%

26%

67%

32%

100%

Relative to AFIO v1.21

+1%

+16%

+14%

+36%

Relative to AFIO v1.1

+26%

+18%

+19%

+20%

Ubuntu 14.04 LTS Linux x64 with GCC 4.9.2

1149470

1100650

1629110

1308240

1927300

Relative to ASIO

60%

57%

85%

68%

100%

Relative to AFIO v1.21

-11%

+8%

+10%

+9%

Relative to AFIO v1.1

+5%

+39%

+14%

+20%


We hope that ~600k min IOPS surely ought to be enough to max out any SATA III SSD — it should even max out any mid range PCIe based SSD too, and if paired with a CPU with more cores, AFIO's almost wait free design ought to scale out fairly well too such that it may be able to max out even top end PCIe SSDs, some of which can push 10m IOPS now.



[12] The phrase might be is important: a null closure benchmark will always have dispatch rate problems i.e. the closures being executed take less time to execute than the time to dispatch them, so these figures are best read as maximum dispatch rate, not maximum IOPS.


PrevUpHomeNext