代码拉取完成,页面将自动刷新
(eval-when (:compile-toplevel)
(ql:quickload '(:lparallel :jpl-queues :sento)))
(defstruct queue-obj a b c)
(defparameter *sync-unbounded-queue*
(make-instance 'jpl-queues:synchronized-queue
:queue
(make-instance 'jpl-queues:unbounded-fifo-queue)))
(defparameter *sync-bounded-queue*
(make-instance 'jpl-queues:synchronized-queue
:queue
(make-instance 'jpl-queues:bounded-fifo-queue
:capacity 1000000)))
(defun queue-and-dequeue-jpl (queue)
(loop :repeat 1000000
:do
(progn
(jpl-queues:enqueue
(make-queue-obj :a 1 :b 2 :c 3)
queue)
(jpl-queues:dequeue queue))))
(defparameter *sento-unbounded-queue*
(make-instance 'queue:queue-unbounded))
(defparameter *speedy-queue*
(make-instance 'queue:queue-bounded :max-items 2000000))
(defun queue-and-dequeue-sento (queue)
(loop :repeat 1000000
:do
(progn
(queue:pushq
queue
(make-queue-obj :a 1 :b 2 :c 3))
(queue:popq queue))))
(defparameter *cons-queue* (lparallel.cons-queue:make-cons-queue))
(defun queue-and-dequeue-cq (queue)
(loop :repeat 1000000
:do
(progn
(lparallel.cons-queue:push-cons-queue
(make-queue-obj :a 1 :b 2 :c 3)
queue)
(lparallel.cons-queue:pop-cons-queue queue))))
(defun run-tests ()
(format t "jpl-unbounded:~%")
(time (queue-and-dequeue-jpl *sync-unbounded-queue*))
(format t "jpl-bounded:~%")
(time (queue-and-dequeue-jpl *sync-bounded-queue*))
(format t "mabe sento-unbounded queue:~%")
(time (queue-and-dequeue-sento *sento-unbounded-queue*))
(format t "mabe speedy-queue:~%")
(time (queue-and-dequeue-sento *speedy-queue*))
(format t "cons-queue unbounded:~%")
(time (queue-and-dequeue-cq *cons-queue*)))
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。