Performance Comparison

Benchmark project is here.

All tests were run on a machine with the following specifications:
3 GHz 6-Core Intel Core i5, 40GB 2667 MHz DDR4

All results are presented in seconds.

Solvers:

  • iOverlay(Rust) v1.6.1 (multithreading on/off)
  • iOverlay(Swift) v1.13.0
  • Clipper2(C++) v1.4.0

Checkerboard Test

Checkerboard Test

SquaresiOverlay(Swift)iOverlay(Rust) MT offiOverlay(Rust) MT onClipper2(C++)
50.0000140.0000070.0000070.000007
250.0001000.0000380.0000380.000038
1130.0005890.0002040.0002060.000208
4810.0041050.0011250.0011370.001017
19850.0126430.0052920.0053140.005182
80650.0556640.0244190.0252380.024013
325130.2348400.1135520.1080390.154054
1305610.9939200.5139550.4710031.067439
5232654.4103022.3205602.1694078.346041
209510518.4516469.7631429.02147473.312335
838451378.71930541.73511037.344582644.337867

Not Overlap Test

Not Overlap Test

SquaresiOverlay(Swift)iOverlay(Rust) MT offiOverlay(Rust) MT onClipper2(C++)
50.0000090.0000040.0000040.000005
250.0000410.0000160.0000160.000021
1130.0002040.0000770.0000760.000097
4810.0010520.0004000.0004060.000457
19850.0049780.0019650.0019590.002114
80650.0213360.0099560.0099120.010783
325130.0895230.0454120.0447510.056281
1305610.3755940.1946580.1895460.369146
5232651.6630870.8857750.8601052.695334
20951056.9479323.7596913.62762320.665812
838451328.77756916.44956715.293312167.966801

Lines Net Test

Lines Net Test

LinesiOverlay(Swift)iOverlay(Rust) MT offiOverlay(Rust) MT onClipper2(C++)
40.0000140.0000060.0000060.000004
80.0000490.0000180.0000180.000012
160.0001950.0000630.0000640.000043
320.0012950.0002580.0002590.000176
640.0049940.0012670.0012580.000749
1280.0212390.0050210.0058300.003441
2560.0914270.0256010.0266130.018417
5120.2559890.1319830.1232380.115229
10241.1468420.5380350.5573380.759640
20484.8085482.5922612.3066005.595165
409620.19010110.9372089.58831345.934461

Spiral Test

Spiral Test

LinksiOverlay(Swift)iOverlay(Rust) MT offiOverlay(Rust) MT onClipper2(C++)
20.0000060.0000030.0000030.000002
40.0000100.0000050.0000050.000004
80.0000190.0000100.0000100.000007
160.0000400.0000200.0000200.000014
320.0000950.0000500.0000490.000031
640.0002180.0001330.0001330.000083
1280.0004900.0003050.0003050.000202
2560.0011050.0006990.0007020.000476
5120.0033850.0017230.0016730.001195
10240.0061740.0038010.0036930.002941
20480.0132000.0084360.0084340.007578
40960.0260650.0164220.0165810.020287
81920.0559440.0347390.0345280.054647
163840.1123750.0687300.0683370.181050
327680.2374120.1466930.1447710.606854
655360.4738470.2979900.2959592.013809
1310720.9817290.6326490.6314586.547658
2621441.9795411.2925991.29941821.171540
5242884.1019122.7034992.70444772.147615
10485768.2541085.4079535.457118259.866180

Windows Test

Windows Test

SquaresiOverlay(Swift)iOverlay(Rust) MT offiOverlay(Rust) MT onClipper2(C++)
80.0000160.0000060.0000060.000008
320.0000620.0000230.0000230.000028
1280.0002760.0001040.0001050.000112
5120.0013060.0005440.0005450.000507
20480.0055430.0024360.0024130.002454
81920.0238050.0111860.0111430.012364
327680.1048220.0546410.0537470.076850
1310720.4457120.2438770.2324550.568316
5242881.8623710.9954900.9789714.142673
20971527.6578154.1605114.08946033.165570
838860830.83397317.23460316.098006265.387333

Nested Squares Test

Nested_Squares Test

SquaresiOverlay(Swift)iOverlay(Rust) MT offiOverlay(Rust) MT onClipper2(C++)
40.0000220.0000100.0000100.000012
80.0000450.0000190.0000190.000023
160.0000980.0000390.0000380.000050
320.0002380.0000840.0000830.000118
640.0006240.0002160.0002100.000291
1280.0018530.0005890.0005930.000806
2560.0023980.0019640.0018830.003415
5120.0050130.0027360.0027240.015989
10240.0110670.0051080.0055580.081267
20480.0231940.0113390.0107440.461883
40960.0506010.0267890.0262632.347209
81920.1116910.0528640.05385110.612424
163840.2523570.1343640.13799146.205474
327680.5819910.2927810.287206251.260857
655361.3687940.7812510.7671023502.233611
1310723.2507461.6887981.640510----
2621448.5295554.8095294.726510----
52428821.17789210.27302810.513923----