diff --git a/README.md b/README.md index b7d76af..4192b23 100644 --- a/README.md +++ b/README.md @@ -244,26 +244,27 @@ g++ (5.4.0) | Number of types | 2 | 3 | 4 | 5 | 6 | 8 | 10 | 12 | 15 | 18 | 20 | 50 | | ---------------------------- | --------- | --------- | --------- | --------- | --------- | --------- | --------- | --------- | --------- | --------- | --------- | --------- | -| `boost::variant` | 6.370800 | 7.123500 | 7.720000 | 8.378300 | 8.443100 | 8.836300 | 9.145600 | 9.192200 | 9.294900 | 9.419000 | 9.518800 | N/A | -| `eggs::variant` | 6.677400 | 8.275500 | 9.079000 | 9.326800 | 9.795700 | 10.169600 | 10.471300 | 10.635700 | 11.077100 | 11.400300 | 11.622700 | 11.865900 | -| libcxx (dev) `std::variant` | 8.134200 | 9.997200 | 11.405600 | 11.925800 | 12.150700 | 14.722000 | 14.666600 | 13.574900 | 13.310900 | 20.610900 | 19.962400 | 24.031500 | -| `strict_variant::variant` | 0.550300 | 2.951500 | 4.996200 | 7.729200 | 8.794800 | 10.188100 | 13.176400 | 14.652500 | 14.967500 | 14.848800 | 15.909300 | 24.914800 | -| `mapbox::variant` | 0.675200 | 2.691800 | 3.340500 | 4.416400 | 5.017100 | 6.000800 | 6.867700 | 7.432800 | 7.523200 | 8.781400 | 9.684300 | 13.477700 | -| `juice::variant` | 8.320100 | 10.288700 | 10.771600 | 11.622600 | 12.497000 | 15.042500 | 18.310300 | 16.883200 | 19.716800 | 20.870600 | 21.794500 | 25.507400 | -| `std::experimental::variant` | 7.338100 | 8.349300 | 10.384400 | 10.074100 | 11.119700 | 10.726000 | 11.194200 | 11.992400 | 12.157200 | 19.368500 | 18.477700 | 22.115600 | +| `boost::variant` | 6.481400 | 7.102700 | 7.851000 | 8.150300 | 8.705700 | 9.607100 | 9.010800 | 9.151600 | 9.319300 | 9.435100 | 9.369900 | N/A | +| libcxx (dev) `std::variant` | 8.157500 | 10.038500 | 11.234200 | 12.202000 | 12.081600 | 15.154700 | 15.588100 | 13.664700 | 13.287600 | 20.551800 | 19.929300 | 24.191200 | +| `strict_variant::variant` | 0.538400 | 3.010500 | 5.066300 | 7.719000 | 9.092100 | 10.049600 | 11.931200 | 13.531000 | 14.647300 | 14.891000 | 16.392000 | 25.794200 | +| `mapbox::variant` | 0.676200 | 2.958400 | 3.465800 | 4.423300 | 5.006200 | 6.020200 | 6.966400 | 7.431300 | 7.585400 | 8.796200 | 9.485000 | 13.482700 | +| `juice::variant` | 8.331400 | 9.701500 | 10.550000 | 11.724400 | 12.618300 | 15.397400 | 18.612200 | 16.798500 | 19.801800 | 21.027400 | 21.903400 | 26.065400 | +| `eggs::variant` | 6.805700 | 8.315000 | 8.948000 | 9.379700 | 10.019700 | 10.797000 | 10.483200 | 10.682700 | 10.854300 | 10.828700 | 10.955000 | 11.177400 | +| `std::experimental::variant` | 6.744500 | 8.357300 | 9.757800 | 10.487500 | 10.113300 | 10.634800 | 11.095100 | 11.595900 | 12.160900 | 19.551400 | 19.727200 | 22.055700 | + clang++ (3.8.0) --------------- | Number of types | 2 | 3 | 4 | 5 | 6 | 8 | 10 | 12 | 15 | 18 | 20 | 50 | | ---------------------------- | --------- | --------- | --------- | --------- | --------- | --------- | --------- | --------- | --------- | --------- | --------- | --------- | -| `boost::variant` | 7.634900 | 6.594800 | 6.550700 | 6.569800 | 6.928000 | 6.792100 | 6.676400 | 6.591700 | 6.536700 | 7.692800 | 0.903400 | N/A | -| libcxx (dev) `std::variant` | 8.009700 | 9.848800 | 11.104700 | 11.842700 | 12.731700 | 13.247400 | 14.022700 | 14.216500 | 14.344000 | 14.360200 | 14.514000 | 15.079700 | -| `strict_variant::variant` | 0.799900 | 1.899600 | 2.076900 | 4.352500 | 5.222200 | 5.289200 | 7.557200 | 8.082800 | 8.218500 | 10.228200 | 12.157600 | 16.420200 | -| `mapbox::variant` | 0.842500 | 1.202800 | 2.504800 | 4.233000 | 3.988100 | 6.034100 | 6.669000 | 7.576300 | 8.927800 | 9.953800 | 9.967400 | 13.398200 | -| `juice::variant` | 8.371700 | 9.825700 | 10.735300 | 10.909100 | 11.533800 | 15.006800 | 14.817700 | 17.794800 | 19.115100 | 19.829500 | 19.494200 | 25.008600 | -| `eggs::variant` | 6.902200 | 8.677100 | 9.575700 | 10.079700 | 10.414900 | 10.859400 | 11.197700 | 11.499100 | 11.532300 | 11.650900 | 11.694400 | 12.035000 | -| `std::experimental::variant` | 7.061100 | 8.736500 | 9.500700 | 10.040300 | 10.358200 | 11.090900 | 11.065300 | 11.203100 | 11.374500 | 11.590600 | 11.602400 | 11.897900 | +| `boost::variant` | 7.477200 | 6.645700 | 6.545900 | 6.628300 | 6.568700 | 6.564100 | 6.889100 | 6.581600 | 6.545600 | 7.651300 | 0.915300 | N/A | +| libcc (dev) `std::variant` | 8.080700 | 10.121900 | 11.084000 | 12.564200 | 12.486700 | 13.248000 | 14.108300 | 14.250700 | 14.377300 | 14.378900 | 14.913100 | 14.945100 | +| `strict_variant::variant` | 0.837900 | 1.889300 | 2.091400 | 4.484100 | 5.044800 | 5.205900 | 7.585900 | 8.154700 | 8.149400 | 10.217100 | 12.028300 | 16.273400 | +| `mapbox::variant` | 0.865100 | 1.212400 | 2.521900 | 4.265600 | 3.997600 | 5.940000 | 6.685200 | 7.643000 | 8.871700 | 9.998200 | 10.028600 | 14.105200 | +| `juice::variant` | 9.606700 | 10.345300 | 10.603600 | 10.897700 | 13.203500 | 14.954600 | 15.090100 | 17.874800 | 19.452000 | 19.677100 | 19.533400 | 25.147900 | +| `eggs::variant` | 6.944900 | 8.718300 | 9.555800 | 10.104900 | 10.443600 | 11.002000 | 11.322000 | 11.809000 | 11.509700 | 11.656900 | 11.696600 | 12.044800 | +| `std::experimental::variant` | 7.009600 | 8.675900 | 9.564000 | 10.066800 | 10.524500 | 11.320100 | 11.098200 | 11.244600 | 11.586100 | 11.549700 | 11.686800 | 11.972000 | configuration data ------------------ @@ -282,7 +283,7 @@ Test subjects: - `mapbox::variant` from [this repository](https://github.com/mapbox/variant) at commit 388376ac9f0102feba2d2122873b08e15a66a879 - `std::experimental::variant` from [this repository](https://github.com/mpark/variant) - libcxx `std::variant` draft at `variant` branch from [this repository](https://github.com/efcs/libcxx/tree/variant) at commit d93edff042e7b9d333eb5b6f16145953e00fd182 -- `strict_variant` from this repository at commit 435cda3a39f3155f590fd5b54b3cd7a46ac6f4ce +- `strict_variant` from this repository at commit 94f80fe1cd0d34f8b49268e223f3dfca66605c3a My `/proc/cpuinfo` looks like this: