0

我使用pthread编写了一个图像处理程序(c++),在windows(Windows 7,VS2008)下运行良好。

但是当我将这些代码移到 Linux 并重新编译(Redhat Enterprise server 6.2,eclipse 3.6.1)时,程序的运行速度比在 windows 中慢得多。

那么,这种现象有什么原因吗?

两个操作系统的硬件是一样的,都是一个服务器的节点,每个都有24核。

当我在 24 个线程中运行程序时,CPU 在 Windows 上的工作率约为 99%,但在 Linux 上约为 20%。在 Windows 上处理将在 3 分钟内完成,而在 Linux 上大约需要 30 分钟。

在我的程序中,我只使用 pthread_create()、pthread_join() 来创建多线程。我没有使用任何锁。

我的程序代码太多,这里不能发。如果有人对此问题感兴趣,可以发邮件给我:chen8729@gmail.com,我会把代码发给你。

感谢您的关注!

4

0 回答 0