2012-07-02 29 views
1

在多核盒子上使用繁忙循环应用程序可以吗?在多核盒子上使用繁忙循环应用程序

我有一对夫妇的申请,其内容从POSIX消息队列中的消息,执行处理并重新等待新的。但是,据我所知,mq_timedreceive是相当昂贵的操作,如果应用程序在O_NONBLOCK队列上执行mq_receive,它的性能会更好(延迟更少)。因此,如果我为非阻塞消息处理预留几个CPU(从12开始),它会好吗?

+0

尽量避免它,既美观(包括扩大您的计算能力)和节能(服务器在忙等待比在空闲等待消耗更多的权力)。 –

回答

1

所有,是确定使用多核箱繁忙的循环应用程序?

无论设备如何,都可以使用忙碌的等待。不,这不是建议的,也不是,这很少有必要,但是确定 - 这是您的计算机,您的应用程序,为此而努力!

不过,据我所知,mq_timedreceive是相当昂贵的操作,如果申请做则mq_receive上O_NONBLOCK排队它的性能会更好(用更少的延迟)。所以如果我为非阻塞消息处理预留了几个CPU(从12开始),它会好吗?

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

相关问题