在多核盒上使用繁忙循环应用程序


可以在

多核盒上使用繁忙循环应用程序吗?

我有几个应用程序,它们从 POSIX 消息队列读取消息,进行处理并再次等待新消息。但是,据我了解,mq_timedreceive操作非常昂贵,如果应用程序O_NONBLOCK队列上mq_receive,它的性能会更好(延迟更少)。因此,如果我保留几个 CPU(从 12 个)用于非阻塞消息处理,可以吗?

所有,在多核盒上使用繁忙循环应用程序

可以吗?

无论设备如何,是的,可以使用繁忙的等待。 不,不建议这样做,不,很少有必要,但可以肯定的是 - 这是您的计算机,您的应用程序,去吧!

但是,据我了解,mq_timedreceive是非常昂贵的操作,如果应用程序mq_receive O_NONBLOCK队列,它的性能会更好(延迟更少)。因此,如果我保留几个 CPU(从 12 个)用于非阻塞消息处理,可以吗?

你有那种只能用数据治愈的疑问。 进行测量,看看它是否真的像您认为的那样昂贵。 没有什么能告诉你,你的价值会比这高出一半。 应用程序的性能截止时间以毫秒、微秒或纳秒为单位(或吞吐量数字以每秒数百/数千/数百万次操作为单位)。 这与目标硬件的功能相结合,将决定哪些解决方案是合适的。

最新更新