我是ZeroMQ的初学者,我试图通过编写一个小的生产者/消费者代码并将结果相互比较来更好地学习它。
对于我的测试数据,我生成了一个包含600k的32个字符随机字符串的数据(150k唯一,在随机位置的数据中重复4次)。
这就是我所做的:
第一次测试:
我使用10个线程在AVL树中插入/查找字符串。使用关键部分来保护插入/查找操作。
第二次测试:
我使用 REQ/ROUTER
模型通过 REQ
套接字从10个线程发送字符串,然后通过<在AVL树中插入/查找数据strong> ROUTER
并发回结果。在此模式下, ROUTER
不需要在AVL树中插入/查找任何关键部分。另外,我也使用了inproc
传输。
结果:
我某种程度上期待第二次测试运行得更快(或者至少和第一次测试一样快),因为它没有对我的AVL树进行任何锁定。但这不是发生的事情,第二次测试不知何故慢了10倍。这是预期的结果吗?或者似乎我做错了什么?