Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Closing channels #9

Merged
merged 5 commits into from
Dec 18, 2023
Merged

Closing channels #9

merged 5 commits into from
Dec 18, 2023

Conversation

adamw
Copy link
Member

@adamw adamw commented Dec 15, 2023

No description provided.

Copy link

Benchmark results
Java:
(capacity)  Mode  Cnt     Score    Error  Units
BufferedBenchmark.array_blocking_queue                                      1  avgt   15  1171.277 ± 87.217  ns/op
BufferedBenchmark.array_blocking_queue:putToArrayBlockingQueue              1  avgt   15  1171.278 ± 87.212  ns/op
BufferedBenchmark.array_blocking_queue:takeFromArrayBlockingQueue           1  avgt   15  1171.277 ± 87.222  ns/op
BufferedBenchmark.array_blocking_queue                                     10  avgt   15   236.203 ± 20.374  ns/op
BufferedBenchmark.array_blocking_queue:putToArrayBlockingQueue             10  avgt   15   236.203 ± 20.375  ns/op
BufferedBenchmark.array_blocking_queue:takeFromArrayBlockingQueue          10  avgt   15   236.204 ± 20.374  ns/op
BufferedBenchmark.array_blocking_queue                                    100  avgt   15   143.102 ± 12.461  ns/op
BufferedBenchmark.array_blocking_queue:putToArrayBlockingQueue            100  avgt   15   143.102 ± 12.461  ns/op
BufferedBenchmark.array_blocking_queue:takeFromArrayBlockingQueue         100  avgt   15   143.102 ± 12.461  ns/op
BufferedBenchmark.channel                                                   1  avgt   15   218.600 ±  4.991  ns/op
BufferedBenchmark.channel:receiveFromChannel                                1  avgt   15   218.600 ±  4.990  ns/op
BufferedBenchmark.channel:sendToChannel                                     1  avgt   15   218.600 ±  4.992  ns/op
BufferedBenchmark.channel                                                  10  avgt   15   147.043 ± 15.176  ns/op
BufferedBenchmark.channel:receiveFromChannel                               10  avgt   15   147.044 ± 15.176  ns/op
BufferedBenchmark.channel:sendToChannel                                    10  avgt   15   147.043 ± 15.176  ns/op
BufferedBenchmark.channel                                                 100  avgt   15   146.038 ±  4.439  ns/op
BufferedBenchmark.channel:receiveFromChannel                              100  avgt   15   146.039 ±  4.440  ns/op
BufferedBenchmark.channel:sendToChannel                                   100  avgt   15   146.037 ±  4.438  ns/op
BufferedBenchmark.channel_iterative                                         1  avgt   15   197.313 ± 12.044  ns/op
BufferedBenchmark.channel_iterative                                        10  avgt   15   154.232 ±  4.895  ns/op
BufferedBenchmark.channel_iterative                                       100  avgt   15   118.164 ± 19.761  ns/op
RendezvousBenchmark.channel                                               N/A  avgt   15   197.449 ±  6.255  ns/op
RendezvousBenchmark.channel:receiveFromChannel                            N/A  avgt   15   197.449 ±  6.256  ns/op
RendezvousBenchmark.channel:sendToChannel                                 N/A  avgt   15   197.450 ±  6.254  ns/op
RendezvousBenchmark.channel_iterative                                     N/A  avgt   15   166.939 ± 10.926  ns/op
RendezvousBenchmark.exchanger                                             N/A  avgt   15    95.968 ±  4.107  ns/op
RendezvousBenchmark.exchanger:exchange1                                   N/A  avgt   15    95.968 ±  4.106  ns/op
RendezvousBenchmark.exchanger:exchange2                                   N/A  avgt   15    95.968 ±  4.107  ns/op
RendezvousBenchmark.synchronous_queue                                     N/A  avgt   15   201.129 ±  4.716  ns/op
RendezvousBenchmark.synchronous_queue:putToSynchronousQueue               N/A  avgt   15   201.128 ±  4.716  ns/op
RendezvousBenchmark.synchronous_queue:takeFromSynchronousQueue            N/A  avgt   15   201.129 ±  4.716  ns/op

Kotlin:
(capacity)  Mode  Cnt    Score   Error  Units
BufferedKotlinBenchmark.sendReceiveUsingDefaultDispatcher             1  avgt   15  106.997 ± 0.810  ns/op
BufferedKotlinBenchmark.sendReceiveUsingDefaultDispatcher            10  avgt   15   50.366 ± 1.103  ns/op
BufferedKotlinBenchmark.sendReceiveUsingDefaultDispatcher           100  avgt   15   32.444 ± 0.480  ns/op
RendezvousKotlinBenchmark.sendReceiveUsingDefaultDispatcher         N/A  avgt   15  142.899 ± 2.341  ns/op

Copy link

Benchmark results
Java:
(capacity)  Mode  Cnt     Score    Error  Units
BufferedBenchmark.array_blocking_queue                                      1  avgt   15  1167.589 ± 63.927  ns/op
BufferedBenchmark.array_blocking_queue:putToArrayBlockingQueue              1  avgt   15  1167.587 ± 63.934  ns/op
BufferedBenchmark.array_blocking_queue:takeFromArrayBlockingQueue           1  avgt   15  1167.591 ± 63.920  ns/op
BufferedBenchmark.array_blocking_queue                                     10  avgt   15   248.332 ± 21.595  ns/op
BufferedBenchmark.array_blocking_queue:putToArrayBlockingQueue             10  avgt   15   248.333 ± 21.594  ns/op
BufferedBenchmark.array_blocking_queue:takeFromArrayBlockingQueue          10  avgt   15   248.331 ± 21.595  ns/op
BufferedBenchmark.array_blocking_queue                                    100  avgt   15   148.750 ± 15.250  ns/op
BufferedBenchmark.array_blocking_queue:putToArrayBlockingQueue            100  avgt   15   148.750 ± 15.250  ns/op
BufferedBenchmark.array_blocking_queue:takeFromArrayBlockingQueue         100  avgt   15   148.750 ± 15.250  ns/op
BufferedBenchmark.channel                                                   1  avgt   15   223.913 ±  8.670  ns/op
BufferedBenchmark.channel:receiveFromChannel                                1  avgt   15   223.916 ±  8.669  ns/op
BufferedBenchmark.channel:sendToChannel                                     1  avgt   15   223.911 ±  8.671  ns/op
BufferedBenchmark.channel                                                  10  avgt   15   181.372 ± 10.809  ns/op
BufferedBenchmark.channel:receiveFromChannel                               10  avgt   15   181.375 ± 10.809  ns/op
BufferedBenchmark.channel:sendToChannel                                    10  avgt   15   181.370 ± 10.809  ns/op
BufferedBenchmark.channel                                                 100  avgt   15   158.261 ±  4.602  ns/op
BufferedBenchmark.channel:receiveFromChannel                              100  avgt   15   158.261 ±  4.602  ns/op
BufferedBenchmark.channel:sendToChannel                                   100  avgt   15   158.261 ±  4.602  ns/op
BufferedBenchmark.channel_iterative                                         1  avgt   15   221.998 ±  4.753  ns/op
BufferedBenchmark.channel_iterative                                        10  avgt   15   182.720 ±  5.079  ns/op
BufferedBenchmark.channel_iterative                                       100  avgt   15   147.108 ± 15.589  ns/op
RendezvousBenchmark.channel                                               N/A  avgt   15   187.790 ±  4.314  ns/op
RendezvousBenchmark.channel:receiveFromChannel                            N/A  avgt   15   187.790 ±  4.313  ns/op
RendezvousBenchmark.channel:sendToChannel                                 N/A  avgt   15   187.790 ±  4.315  ns/op
RendezvousBenchmark.channel_iterative                                     N/A  avgt   15   194.100 ± 14.064  ns/op
RendezvousBenchmark.exchanger                                             N/A  avgt   15    97.821 ±  3.188  ns/op
RendezvousBenchmark.exchanger:exchange1                                   N/A  avgt   15    97.821 ±  3.189  ns/op
RendezvousBenchmark.exchanger:exchange2                                   N/A  avgt   15    97.821 ±  3.188  ns/op
RendezvousBenchmark.synchronous_queue                                     N/A  avgt   15   195.511 ±  7.459  ns/op
RendezvousBenchmark.synchronous_queue:putToSynchronousQueue               N/A  avgt   15   195.509 ±  7.457  ns/op
RendezvousBenchmark.synchronous_queue:takeFromSynchronousQueue            N/A  avgt   15   195.513 ±  7.461  ns/op

Kotlin:
(capacity)  Mode  Cnt    Score   Error  Units
BufferedKotlinBenchmark.sendReceiveUsingDefaultDispatcher             1  avgt   15  111.804 ± 6.256  ns/op
BufferedKotlinBenchmark.sendReceiveUsingDefaultDispatcher            10  avgt   15   50.508 ± 0.289  ns/op
BufferedKotlinBenchmark.sendReceiveUsingDefaultDispatcher           100  avgt   15   32.401 ± 0.645  ns/op
RendezvousKotlinBenchmark.sendReceiveUsingDefaultDispatcher         N/A  avgt   15  140.926 ± 7.762  ns/op

Copy link

Benchmark results
Java:
(capacity)  Mode  Cnt     Score     Error  Units
BufferedBenchmark.array_blocking_queue                                      1  avgt   15  1160.792 ± 120.523  ns/op
BufferedBenchmark.array_blocking_queue:putToArrayBlockingQueue              1  avgt   15  1160.788 ± 120.524  ns/op
BufferedBenchmark.array_blocking_queue:takeFromArrayBlockingQueue           1  avgt   15  1160.795 ± 120.522  ns/op
BufferedBenchmark.array_blocking_queue                                     10  avgt   15   229.695 ±  26.783  ns/op
BufferedBenchmark.array_blocking_queue:putToArrayBlockingQueue             10  avgt   15   229.694 ±  26.784  ns/op
BufferedBenchmark.array_blocking_queue:takeFromArrayBlockingQueue          10  avgt   15   229.695 ±  26.783  ns/op
BufferedBenchmark.array_blocking_queue                                    100  avgt   15   148.799 ±  12.650  ns/op
BufferedBenchmark.array_blocking_queue:putToArrayBlockingQueue            100  avgt   15   148.799 ±  12.650  ns/op
BufferedBenchmark.array_blocking_queue:takeFromArrayBlockingQueue         100  avgt   15   148.799 ±  12.650  ns/op
BufferedBenchmark.channel                                                   1  avgt   15   204.422 ±  18.762  ns/op
BufferedBenchmark.channel:receiveFromChannel                                1  avgt   15   204.422 ±  18.760  ns/op
BufferedBenchmark.channel:sendToChannel                                     1  avgt   15   204.423 ±  18.763  ns/op
BufferedBenchmark.channel                                                  10  avgt   15   172.876 ±  17.706  ns/op
BufferedBenchmark.channel:receiveFromChannel                               10  avgt   15   172.877 ±  17.706  ns/op
BufferedBenchmark.channel:sendToChannel                                    10  avgt   15   172.875 ±  17.707  ns/op
BufferedBenchmark.channel                                                 100  avgt   15   167.537 ±  11.775  ns/op
BufferedBenchmark.channel:receiveFromChannel                              100  avgt   15   167.537 ±  11.774  ns/op
BufferedBenchmark.channel:sendToChannel                                   100  avgt   15   167.537 ±  11.775  ns/op
BufferedBenchmark.channel_iterative                                         1  avgt   15   199.210 ±  18.421  ns/op
BufferedBenchmark.channel_iterative                                        10  avgt   15   182.386 ±  16.330  ns/op
BufferedBenchmark.channel_iterative                                       100  avgt   15   158.864 ±  35.284  ns/op
RendezvousBenchmark.channel                                               N/A  avgt   15   189.484 ±   9.003  ns/op
RendezvousBenchmark.channel:receiveFromChannel                            N/A  avgt   15   189.483 ±   9.001  ns/op
RendezvousBenchmark.channel:sendToChannel                                 N/A  avgt   15   189.484 ±   9.004  ns/op
RendezvousBenchmark.channel_iterative                                     N/A  avgt   15   184.711 ±   6.328  ns/op
RendezvousBenchmark.exchanger                                             N/A  avgt   15    99.445 ±   5.002  ns/op
RendezvousBenchmark.exchanger:exchange1                                   N/A  avgt   15    99.445 ±   5.002  ns/op
RendezvousBenchmark.exchanger:exchange2                                   N/A  avgt   15    99.445 ±   5.002  ns/op
RendezvousBenchmark.synchronous_queue                                     N/A  avgt   15   200.238 ±   5.253  ns/op
RendezvousBenchmark.synchronous_queue:putToSynchronousQueue               N/A  avgt   15   200.239 ±   5.254  ns/op
RendezvousBenchmark.synchronous_queue:takeFromSynchronousQueue            N/A  avgt   15   200.238 ±   5.252  ns/op

Kotlin:
(capacity)  Mode  Cnt    Score   Error  Units
BufferedKotlinBenchmark.sendReceiveUsingDefaultDispatcher             1  avgt   15  112.306 ± 3.943  ns/op
BufferedKotlinBenchmark.sendReceiveUsingDefaultDispatcher            10  avgt   15   51.440 ± 2.218  ns/op
BufferedKotlinBenchmark.sendReceiveUsingDefaultDispatcher           100  avgt   15   32.095 ± 0.175  ns/op
RendezvousKotlinBenchmark.sendReceiveUsingDefaultDispatcher         N/A  avgt   15  144.870 ± 2.958  ns/op

Copy link

Benchmark results
Java:
(capacity)  Mode  Cnt     Score    Error  Units
BufferedBenchmark.array_blocking_queue                                      1  avgt   15  1166.959 ± 74.301  ns/op
BufferedBenchmark.array_blocking_queue:putToArrayBlockingQueue              1  avgt   15  1166.961 ± 74.300  ns/op
BufferedBenchmark.array_blocking_queue:takeFromArrayBlockingQueue           1  avgt   15  1166.956 ± 74.302  ns/op
BufferedBenchmark.array_blocking_queue                                     10  avgt   15   235.823 ± 21.825  ns/op
BufferedBenchmark.array_blocking_queue:putToArrayBlockingQueue             10  avgt   15   235.823 ± 21.825  ns/op
BufferedBenchmark.array_blocking_queue:takeFromArrayBlockingQueue          10  avgt   15   235.823 ± 21.825  ns/op
BufferedBenchmark.array_blocking_queue                                    100  avgt   15   139.098 ±  9.504  ns/op
BufferedBenchmark.array_blocking_queue:putToArrayBlockingQueue            100  avgt   15   139.097 ±  9.504  ns/op
BufferedBenchmark.array_blocking_queue:takeFromArrayBlockingQueue         100  avgt   15   139.098 ±  9.504  ns/op
BufferedBenchmark.channel                                                   1  avgt   15   203.900 ± 16.720  ns/op
BufferedBenchmark.channel:receiveFromChannel                                1  avgt   15   203.900 ± 16.721  ns/op
BufferedBenchmark.channel:sendToChannel                                     1  avgt   15   203.901 ± 16.719  ns/op
BufferedBenchmark.channel                                                  10  avgt   15   179.652 ± 10.850  ns/op
BufferedBenchmark.channel:receiveFromChannel                               10  avgt   15   179.652 ± 10.850  ns/op
BufferedBenchmark.channel:sendToChannel                                    10  avgt   15   179.653 ± 10.849  ns/op
BufferedBenchmark.channel                                                 100  avgt   15   151.175 ±  5.454  ns/op
BufferedBenchmark.channel:receiveFromChannel                              100  avgt   15   151.174 ±  5.456  ns/op
BufferedBenchmark.channel:sendToChannel                                   100  avgt   15   151.175 ±  5.452  ns/op
BufferedBenchmark.channel_iterative                                         1  avgt   15   205.030 ±  8.740  ns/op
BufferedBenchmark.channel_iterative                                        10  avgt   15   186.003 ±  8.825  ns/op
BufferedBenchmark.channel_iterative                                       100  avgt   15   148.632 ± 16.358  ns/op
RendezvousBenchmark.channel                                               N/A  avgt   15   186.951 ±  9.353  ns/op
RendezvousBenchmark.channel:receiveFromChannel                            N/A  avgt   15   186.952 ±  9.354  ns/op
RendezvousBenchmark.channel:sendToChannel                                 N/A  avgt   15   186.950 ±  9.351  ns/op
RendezvousBenchmark.channel_iterative                                     N/A  avgt   15   193.065 ±  8.497  ns/op
RendezvousBenchmark.exchanger                                             N/A  avgt   15    98.272 ±  4.037  ns/op
RendezvousBenchmark.exchanger:exchange1                                   N/A  avgt   15    98.272 ±  4.037  ns/op
RendezvousBenchmark.exchanger:exchange2                                   N/A  avgt   15    98.272 ±  4.036  ns/op
RendezvousBenchmark.synchronous_queue                                     N/A  avgt   15   197.801 ±  3.203  ns/op
RendezvousBenchmark.synchronous_queue:putToSynchronousQueue               N/A  avgt   15   197.803 ±  3.204  ns/op
RendezvousBenchmark.synchronous_queue:takeFromSynchronousQueue            N/A  avgt   15   197.799 ±  3.202  ns/op

Kotlin:
(capacity)  Mode  Cnt    Score   Error  Units
BufferedKotlinBenchmark.sendReceiveUsingDefaultDispatcher             1  avgt   15  114.710 ± 1.700  ns/op
BufferedKotlinBenchmark.sendReceiveUsingDefaultDispatcher            10  avgt   15   52.383 ± 1.719  ns/op
BufferedKotlinBenchmark.sendReceiveUsingDefaultDispatcher           100  avgt   15   32.133 ± 0.117  ns/op
RendezvousKotlinBenchmark.sendReceiveUsingDefaultDispatcher         N/A  avgt   15  148.518 ± 8.976  ns/op

Copy link

Benchmark results
Java:
(capacity)  Mode  Cnt     Score    Error  Units
BufferedBenchmark.array_blocking_queue                                      1  avgt   15  1109.664 ± 37.950  ns/op
BufferedBenchmark.array_blocking_queue:putToArrayBlockingQueue              1  avgt   15  1109.659 ± 37.951  ns/op
BufferedBenchmark.array_blocking_queue:takeFromArrayBlockingQueue           1  avgt   15  1109.669 ± 37.949  ns/op
BufferedBenchmark.array_blocking_queue                                     10  avgt   15   233.795 ± 20.293  ns/op
BufferedBenchmark.array_blocking_queue:putToArrayBlockingQueue             10  avgt   15   233.795 ± 20.294  ns/op
BufferedBenchmark.array_blocking_queue:takeFromArrayBlockingQueue          10  avgt   15   233.795 ± 20.292  ns/op
BufferedBenchmark.array_blocking_queue                                    100  avgt   15   146.177 ± 17.867  ns/op
BufferedBenchmark.array_blocking_queue:putToArrayBlockingQueue            100  avgt   15   146.177 ± 17.868  ns/op
BufferedBenchmark.array_blocking_queue:takeFromArrayBlockingQueue         100  avgt   15   146.177 ± 17.867  ns/op
BufferedBenchmark.channel                                                   1  avgt   15   209.342 ± 20.429  ns/op
BufferedBenchmark.channel:receiveFromChannel                                1  avgt   15   209.342 ± 20.430  ns/op
BufferedBenchmark.channel:sendToChannel                                     1  avgt   15   209.342 ± 20.428  ns/op
BufferedBenchmark.channel                                                  10  avgt   15   191.432 ± 10.823  ns/op
BufferedBenchmark.channel:receiveFromChannel                               10  avgt   15   191.433 ± 10.823  ns/op
BufferedBenchmark.channel:sendToChannel                                    10  avgt   15   191.430 ± 10.824  ns/op
BufferedBenchmark.channel                                                 100  avgt   15   145.798 ± 14.591  ns/op
BufferedBenchmark.channel:receiveFromChannel                              100  avgt   15   145.799 ± 14.591  ns/op
BufferedBenchmark.channel:sendToChannel                                   100  avgt   15   145.797 ± 14.592  ns/op
BufferedBenchmark.channel_iterative                                         1  avgt   15   220.083 ± 16.296  ns/op
BufferedBenchmark.channel_iterative                                        10  avgt   15   183.192 ± 15.366  ns/op
BufferedBenchmark.channel_iterative                                       100  avgt   15   145.320 ± 15.385  ns/op
RendezvousBenchmark.channel                                               N/A  avgt   15   181.585 ±  4.710  ns/op
RendezvousBenchmark.channel:receiveFromChannel                            N/A  avgt   15   181.585 ±  4.711  ns/op
RendezvousBenchmark.channel:sendToChannel                                 N/A  avgt   15   181.586 ±  4.709  ns/op
RendezvousBenchmark.channel_iterative                                     N/A  avgt   15   176.906 ± 10.666  ns/op
RendezvousBenchmark.exchanger                                             N/A  avgt   15    99.225 ±  2.725  ns/op
RendezvousBenchmark.exchanger:exchange1                                   N/A  avgt   15    99.225 ±  2.725  ns/op
RendezvousBenchmark.exchanger:exchange2                                   N/A  avgt   15    99.225 ±  2.725  ns/op
RendezvousBenchmark.synchronous_queue                                     N/A  avgt   15   199.330 ±  5.906  ns/op
RendezvousBenchmark.synchronous_queue:putToSynchronousQueue               N/A  avgt   15   199.331 ±  5.903  ns/op
RendezvousBenchmark.synchronous_queue:takeFromSynchronousQueue            N/A  avgt   15   199.329 ±  5.908  ns/op

Kotlin:
(capacity)  Mode  Cnt    Score   Error  Units
BufferedKotlinBenchmark.sendReceiveUsingDefaultDispatcher             1  avgt   15  114.178 ± 2.961  ns/op
BufferedKotlinBenchmark.sendReceiveUsingDefaultDispatcher            10  avgt   15   52.443 ± 0.304  ns/op
BufferedKotlinBenchmark.sendReceiveUsingDefaultDispatcher           100  avgt   15   32.465 ± 0.393  ns/op
RendezvousKotlinBenchmark.sendReceiveUsingDefaultDispatcher         N/A  avgt   15  143.873 ± 4.397  ns/op

@adamw adamw merged commit f0f442c into main Dec 18, 2023
3 checks passed
@adamw adamw deleted the close_done branch December 18, 2023 15:44
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant