You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Version 3 of Sento uses the jpl-queues package which is slightly slower than the lparallel cons-queue. The lparallel cons-queue package is available as separate asdf system if needed and if the additional dependency is acceptable.
651
+
Version 3.2.0 of Sento uses the sbcl `sb-concurrent:queue` whcih is very fast and works using CAS (compare-and-swap) where as the other implementations use a still fast double stack queue protected by locking.
652
652
653
-
The benchmark was created by having 8 threads throwing each 125k (1m altogether) messages at 1 actor. The timing was taken for when the actor did finish processing those 1m messages. The messages were sent by either all `tell`, `ask-s`, or `ask` to an actor whose message-box worked using a single thread (`:pinned`) or a dispatched message queue (`:shared` / `dispatched`) with 8 workers.
653
+
The benchmark was created by having 8 threads throwing each 125k (1M altogether) messages at 1 actor. The timing was taken for when the actor did finish processing those 1M messages. The messages were sent by either all `tell`, `ask-s`, or `ask` to an actor whose message-box worked using a single thread (`:pinned`) or a dispatched message queue (`:shared` / `dispatched`) with 8 workers.
654
654
655
655
Of course a `tell` is in most cases the fastest one, because it's the least resource intensive and there is no place that is blocking in this workflow.
656
656
657
-
**SBCL (v2.3.0)**
657
+
**SBCL (v2.4.1)**
658
658
659
-
Even though SBCL is by far the fastest one with `tell` on both `:pinned` and `dispatched`, it had massive problems on `dispatched - ask-s` where I had to lower the number of messages to 200k alltogether. Beyond that value SBCL didn't get it worked out.
659
+
SBCL is very fast, but this tests uses SBCLs own queue implementation based on CAS instead of locking.
660
660
661
661
**LispWorks (8.0.1)**
662
662
@@ -668,7 +668,12 @@ Unfortunately CCL doesn't work natively on M1 Apple CPU.
668
668
669
669
**ABCL (1.9)**
670
670
671
-
The pleasant surprise was ABCL. While not being the fastest it is the most robust. Where SBCL and CCL were struggling you could throw anything at ABCL and it'll cope with it. I'm assuming that this is because of the massively battle proven Java Runtime.
671
+
The pleasant surprise was ABCL. While not being the fastest it is very robust.
672
+
673
+
**Clasp 2.5.0**
674
+
675
+
Very slow. Used default settings, as also for the other tests.
676
+
Maybe something can be tweaked?
672
677
673
678
### Migration guide for moving from Sento 2 to Sento 3
0 commit comments