2014-04-14 29 views
0

我正在设计一个JPG解码器。一个实现支持使用线程和扩展CPU的多个内核。如果底层系统支持3个内核,我的程序将使用它们全部。使用所有核心资源或旨在减轻贪婪程序的系统是不负责任的行为。另外,线程实现还需要更多的内存资源(3 x等效RGB BMP的大小)。内存使用何时变得太多?使用所有可用的内核和CPU是否不负责任?

+0

让**用户**选择他们想要专用于特定任务的核心数量。 –

+0

你认为启动线程等等来解码通常的JPG文件,每个文件是否有益?我不是。内存:代码? – deviantfan

+0

@CaptainObvlious我认为这将超出用户的知识范围。 – deanresin

回答

1

它是不负责任的使用所有的核心资源

不,事实并非如此。考虑一个单一的核心系统:如果它以某种方式使用所有核心是“不负责任的”,那么任何事情都无法完成。

或者是旨在减轻贪婪程序

是的,操作系统是专门做这个系统。通常,两个同等优先级的程序(每个要使用所有CPU核心)将共享内核50%-50%(按时间而不是核心分配)。每个应用程序都会相信它正在使用所有内核,但是某些内核可能会比其他内核运行得慢一些。应用程序不需要关注这个级别的细节(尽管通常操作系统提供了这种方法来实现,如果需要的话)。

+0

好吧,谢谢..我立即明白了。我想这解释了为什么我的多线程实现比我的单线程实现慢得多。 – deanresin

相关问题