虚拟机应用需要用到多核CPU的多核多线程技术吗

developerWorks 社区
多核芯片架构只能为各个核心带来微弱的性能提升。这种仍在继续的趋势将最大限度地利用硬件资源的负担转嫁给了操作系统、编程语言和应用程序的开发人员。应用程序开发社区中的许多人都依赖于基于线程的并发编程来实现应用程序并行性。本文将解释为什么基于线程的编程并不是多核时代实现应用程序并行性的最佳方法。
, Architect, Royal Caribbean Cruises Ltd.
Vasu Thiyagarajan works for Royal Caribbean Cruises Ltd. as an IT architect. Previously, he was part of IBM Software Labs, Bangalore. His primary areas of interest include building highly scalable systems and distributed computing.
摩尔定律(戈登·摩尔 1965 年预测,每个集成电路的元件数量每 18 到 24 个月就会翻一倍)仍然适用,它的适用性预计会持续到
年(参阅 )。2005 年之前,CPU 时钟速率也在同步提升,这本身已足以改进在这些 CPU 上执行的所有应用程序的性能。应用程序开发社区只需对算法改进进行少量投资或者甚至无需投资,就可以坐享这一性能改进。然而,从 2005 年开始,时钟速率的增长和晶体管数量的增长已不再同步。由于处理器材料的物理性质限制,时钟速率已停止增长(甚至下降),处理器制造商开始将更多执行单元(核心)封装到单个芯片(插槽)中。这一趋势(似乎能够在可预见的未来继续保持)已开始给应用程序开发和编程语言开发社区带来越来越大的压力,这大体表现在两个方面:简单地升级到更强大的 CPU 无法再获得 2005 年之前单线程应用程序的性能增长速率。单线程应用程序的性能没有变化,无论 CPU 中有多少个核心。也就是说,每核心吞吐量几乎是相同的,无论 CPU 拥有多少个核心(假设编译器、虚拟机或操作系统级别的自动并行化技术没有突破)。升级到多核 CPU 仅能使系统上的增量负载受益,而不是让现有负载受益。高效地利用可用 CPU 核心的惟一方法就是使用并行性。目前为止,主要由操作系统在进程级别上使用并行性来提供无缝的多任务、多处理体验。在应用程序开发方面,基于线程的并发编程是实现并行性的主导机制。基于线程的并行性拥有以下优势:它是一种受到广泛认可的编程模型。应用程序开发社区对线程的创建、调度、执行和管理方式有深入的了解。开发人员已被培养为以序列方式思考算法开发。线程模型只是相同的方法在并行性方面的简单扩展。但是,基于线程的应用程序并行性的问题大于优势。本文解释了显式的基于线程的应用程序并行性可能不是利用 CPU 核心的最佳方式和我们需要一种不同的编程模式的一些原因。调用栈深度调用栈是操作系统或虚拟机所维护的一种处理所有方法调用的内部结构。线程执行中的每次方法调用都会推进一个栈帧(由并行方法调用的详细信息组成,比如参数、返回地址和局部变量)。图 1 显示了方法调用的内部原理:图 1. 调用栈内部结构和增长无论您如何将一个应用程序模块化为多个逻辑层(比如控制器层、外观层、组件层和数据访问对象 [DAO] 层),在运行时,线程是终极织入器 (weaver),而且它只有一个堆栈。调用栈是在运行时处理源代码模块化方面的一项绝妙发明。但是,随着应用程序的复杂性和系统上的负载的增长,目前的调用栈结构模型限制了应用程序可伸缩性,而且它还存在与内存大小和对象可达性相关的内部问题。内存大小只要操作系统创建一个线程,它就会为调用栈分配一个特定的内存块。这意味着系统中可并行化的任务(线程)的数量受到系统中可用内存的限制。(例如,在 Linux 64 位系统中,JVM 为每个线程分配了 1MB 的调用栈。假设 JVM 实例获得了 2GB 的内存,那么它创建的可并行执行的任务不得超过 2,000 个。实际上,由于其他可选的线程控制结构(比如线程本地存储)的限制,该数量甚至会更低。基本而言,这种模型提前为线程分配了一个预定义大小的空间,这间接地限制了应用程序的可并行化程度。从历史角度讲,JVM 上的默认堆栈大小在不断增长,这表明随着应用程序的模块化和复杂性增加,此模型需要更多的调用栈内存。例如,32 位 JDK 1.1.3.4 上的默认堆栈大小为 128K;在 JDK 1.2 和 1.3 上,默认堆栈大小为 256 K;在 JDK 1.5 和更高版本上,默认堆栈大小为 512K。对象可达性深度调用栈的另一个问题是,调用栈中可能持有但从不使用对象引用。例如,在
中,当线程正在执行流中执行最深的方法时,调用栈中所有方法的所有局部变量和参数不可能都派上用场。(例如,当一个线程执行 DAO 层代码时,应用程序不见得会调用栈中由 servlet 层、控制器层、外观层和其他层方法调用所推送的所有局部参数和变量)。但是,这些内容不会被释放或垃圾收集,因为它们包含有效的引用。Java™ 调用栈实现旨在方法调用返回时自动释放它的所有引用。这在 JVM 不再具有高负载时可能是可以接受的。但在 JVM 处理着大量活动线程时,这可能存在问题。例如,如果每个线程持有调用栈中高达 5MB 的未用的活动引用,而且有 100 个线程处于活动状态,JVM 无法对 500MB 的堆空间进行垃圾收集,因为调用栈变量和参数仍在引用该空间。在 32 位机器上,这可能至少耗用了该 JVM 的所有可用内存的 25%,这个大小非常可观。共享对象基于线程的并行性的另一个关键问题是,由于多个线程共享的对象的易变性而导致的同步工作,如图 2 所示:图 2. 共享内存尽管同步不是一个新概念,而且已经被广泛采用,但它需要牺牲应用程序的性能,因为锁获取顺序可能强制线程在锁释放之前处于等待或休眠状态,释放锁将在内部触发一个线程上下文开关。上下文开关一般会减缓线程执行。它还会驱赶出核心中的所有管道指令和缓存。在具有大量并行线程的 JVM 中,同步可能导致由同步或锁引起的频繁的线程上下文开关。顺序编程顺序编程对线程本身而言未必一个问题,但它与应用程序使用它们的方式密切相关。操作系统进程的逻辑概念实在早期的计算时代为(在一个用户提交的作业中)顺序执行指令而发明的。但顺序编程思想仍在盛行,即使一些进程的复杂性自那时起已增长了许多倍。随着复杂性的增长,各种系统层(后端、中间层和前端)逐渐建立起来。但在一个层内,应用程序用例仍然是按顺序执行的,使用一个线程作为各种不同组件之间的所有逻辑的编织者。您可将此与亨利·福特的装配线诞生之前的制造流程进行类比。当时,一个员工或员工小组将创建一个完整的产品。装配线使员工能够集中精力执行总体操作流程中的具体的子任务,节省了员工在各个产品制造阶段往返移动的时间,将生产力提高了许多倍。现在的一种与装配线类似的流程是快餐店的客户订单处理。由既定数量的员工(专门负责一组子任务)处理订单,每位员工仅执行整体工作的一部分。这个人的工作完成后,半成品就会交给生产线上的下一位员工,直到完成最终的成品。相比之下,考虑这样一个系统,其中每个员工从头到尾负责一位客户。两种方法都可有效地处理订单,但快餐系统的效率更高。处理整个订单的一位员工将花费许多时间在不同位置来回移动,而不是实际制造产品。员工的移动还带来了其他问题,比如空间争用和时间延迟。现在来考虑一个现代 JEE 应用服务器执行用户请求的方式。它为一个用户请求分配一个专门的线程。如图 3 中所示,该线程执行记录、数据库交互、Web 服务调用、网络交互和逻辑等所有指令:图 3. 线程流无论源代码在控制器、模型、视图、外观和其他层上的模块化程度多高,它始终由单个线程来执行。这种类型的执行会在内部导致大量硬件资源争用问题,比如上下文开关。结束语多线程是尽可能高效地利用底层 CPU 资源的一个好方法。但由于各种系统在演化,开发和操作系统社区已经扩展了多线程在应用程序级并行性中的使用。应用程序开发社区开始使用基于线程的编程,按某种顺序执行所有应用程序逻辑。自多核 CPU 开始发展以来,核心数量逐步增多,顺序、显式、基于线程的编程已变得不那么高效。在多核硬件上运行的可伸缩、高性能的应用程序需要一种并行化方法,将应用程序逻辑分解为多个相互依赖的工作单元,并透明地将它们链接在一起(而不是通过使用单个线程明确地将它们捆绑在一起),这样每个工作单元都可以高效地执行。
正如装配线引起了制造流程的革命并提高了每一层的效率,良好的未来编程模型也将改变我们设计应用程序软件的方式。基于角色的编程就是这样一种抽象模型(参阅 ),它将整个应用程序划分为多个部分,以便可以将底层的核心分配给这些部分,并以某种高效的方式并行执行它们。免责声明本文中的所有观点和看法仅为一己之见,不代表我的上司的观点和看法。致谢感谢我的同事 Jesus Bello 和 Olga Raskin 提供的宝贵建议。
“”(Michael Kanellos,CNET,2005 年 4 月):行业专家预测芯片技术近期和长远的未来。(Bryan Schauer,2008 年):阅读多核处理器技术和它带来的编程挑战的概述。(Paul E. McKenney 等,2011 年):这本书旨在帮助开发人员理解如何为共享内存的并行机器编程。(Russel Winder,2010 年):这份演示调查了多核变革的下一阶段引起的一些操作系统、应用程序软件、编程和编程语言问题。(Benjamin Erb,2010 年 4 月):Erb 的论文调查了竞争性的并发性方法和它们的用途。(Cory Isaacson,Addison-Wesley,2009 年):Isaacson 的图书介绍了一种称为 “软件管道” 的并行处理方法。(Samuel H. Fuller 和 Lynette I. Millett 等,The National Academies Press,2011 年):这本书介绍了为单一处理器的增长带来限制的因素;分析了并行计算和架构中的内在挑战;描述了一种帮助克服这些挑战的研究、实践和教育议程。
“”(Herb Sutter 和 James Larus,AMC Queue,2005 年 9 月):这篇文章的作者认为,发挥多核处理器的全部功效需要新的工具和来自软件行业的新思维。(全文仅订阅用户可见)。(developerWorks,2011 年 8 月):理解 Java 语言中的多线程编程,了解针对 Java 平台的旨在利用现代多核处理器硬件的替代方法。
浏览 ,查找有关这些和其他技术主题的图书。
:查找有关 Java 编程的方方面面的数百篇文章。
或 ,动手使用来自 DB2®、Lotus®、Rational®、Tivoli® 和 WebSphere® 的应用程序开发工具和中间件产品。
developerWorks: 登录
标有星(*)号的字段是必填字段。
保持登录。
单击提交则表示您同意developerWorks 的条款和条件。 查看条款和条件。
在您首次登录 developerWorks 时,会为您创建一份个人概要。您的个人概要中的信息(您的姓名、国家/地区,以及公司名称)是公开显示的,而且会随着您发布的任何内容一起显示,除非您选择隐藏您的公司名称。您可以随时更新您的 IBM 帐户。
所有提交的信息确保安全。
选择您的昵称
当您初次登录到 developerWorks 时,将会为您创建一份概要信息,您需要指定一个昵称。您的昵称将和您在 developerWorks 发布的内容显示在一起。昵称长度在 3 至 31 个字符之间。
您的昵称在 developerWorks 社区中必须是唯一的,并且出于隐私保护的原因,不能是您的电子邮件地址。
标有星(*)号的字段是必填字段。
(昵称长度在 3 至 31 个字符之间)
单击提交则表示您同意developerWorks 的条款和条件。 .
所有提交的信息确保安全。
文章、教程、演示,帮助您构建、部署和管理云应用。
立即加入来自 IBM 的专业 IT 社交网络。
免费下载、试用软件产品,构建应用并提升技能。
static.content.url=/developerworks/js/artrating/SITE_ID=10Zone=Java technologyArticleID=861734ArticleTitle=多核 CPU 和它们带来的并发性改变publish-date=1070人阅读
Java技术(48)
多线程编程(Java)(6)
在多核或多处理器时代,为什么要特别 重视 Java 多线程 开发模式
& & & & 就在不久前,改善程序的性能还很容易。你可以用性能分析工具看看程序在做什么,研究一下代码的内层循环;也可以编写几十个测试用例,变换程序的负载,看看何种优化在何种情形下会有用;还可以手工打造每次调用调用都能节省几个时钟周期的轻巧数据结构。如果你既刻苦,又幸运,所有的这些工作会花费你18个月的时间,到时候新一代的处理器又出来了,突然之间你的程序比原来快了两倍左右。就像涂肥皂,冲水,再来一次……这样一个反复的过程。
& & & & 最近这种模式改变了,加快处理器的时钟周期(从而提高它的速度)变得越来越困难了。人们现在开始担心能效,它会随着时钟的加快而降低。能源问题的直接结果是发热问题,随着芯片的速度越来越快,散热也越来越困难。很久都没有看到CPU的原始速度有重大提升了。
& & & &我们任然看到摩尔定律在起作用,CPU的设计者们继续在往每片硅晶上塞入越来越多的晶体管。但他们不再使用这新晶体管加快CPU的速度,而是用于生产多核的芯片,让多个CPU共享一个芯片。多核处理器的思想是:若果你有多个程序运行在一台机器上,你可以让每个程序单独占据一个核,从而得到多倍的整体性能。
& & & & &如今,不再是每隔18个月芯片的速度提高一倍,而似乎是每隔18个月芯片里的核多出一倍。芯片操作工仍可声称他们每隔18个月便提高一倍的性能,但现在他们指的是:可同时运行的程序的数目多出一倍。
& & & & 这些额外的核对自动加快程序的速度没有任何贡献。程序运行的时间将与它们在上一代硬件上的运行时间相同,除非,你编写程序时刻意利用这些额外的核。如果你的程序有高度的并发性,从而能同时运行在多个核上,把运行程序的核增加一倍就可让程序的速度提高一倍。但你必须以一种不同的方式来写程序,而不再像编写标准的顺序程序那样,你需要让你自己的程序主动利用并发性。
& & & & 并发编程必然有难度,通常留给底层系统的编程高手来完成,他们向普通程序员提供一种顺序化视角来看待世界。然而,Java从一开始就打算用于并发系统中,在这种系统中,高度的并发性是获取可接受性能的唯一办法。因而,它有着可用于构建可靠并发程序的语言设施(如用于开发并发程序的api),正确的使用这些设施,你就能充分利用芯片设计的新进展。即使你不需要亲自编写高度并发的代码,但如果你设计一个类是为了复用它,那你也应该努力把这些类写好,使它们可以再高度并发的代码中被安全的使用,这需要你理解java的并发设施。Java拥有这种设施是一件好事,对当前硬件发展的趋势来说更是如此,若要正确使用这些设施,需要信心和慎重的思考。
& & & & 最起码,你应该了解正确处理并发有多难,这会给出更多的理由让你不去编写自己的多线程类,相反,只有有机会,就应使用别人已经写好且调试好并优化过的类。Java集合有一套并发安全的实现,程序员不必自己动手编写,可直接使用它们,但还要保证自己读过这些类的文档,弄清楚它们在多线程环境中是否安全,而且保证自己不会把不安全的类当成安全的来用。最后,对于自己实现的类能否安全地用在多线程代码中,要确保你的文档中有明确的说明。
& & & Java开发中如何使用多线程
& & & &我们已经见过一种类似使用多线程的方式。如果你能把一个较大的程序分解成一组相互独立的更小的程序,它们之间通过远程方法调用( RMI)来通信,你就可以同时运行不同的程序,从而利用多核。这里假定你这么做之后真正获得了并行效果,而不是让不同的Java虚拟机运行在单个硬件线程中,不过有时候那样做也完全可以。其实上述所述算不上真正的多线程,而是一种基于RMI的分布式的系统开发模式。(注:与计算机科学中的其它术语一样,线程“Thread”在不同的上下文中可以指代不同的内如。我们有硬件线程,软件线程,以及二者之间的复杂关系)
& & & & 一种更强大的方法是使用多线程在单台Java虚拟机中获得并发性。线程与进程不同,线程之间可以共享同一地址空间,因此,它们可以通过访问同一段内存的方式来沟通或协调,这使得线程间的通信可以比使用RMI快的多。但这也意味着两个线程可能在同一时间针对同一内存位置做不同的事情,并相互干扰。并发编程的诀窍就在于设置正确的保护机制,确保多线程共享的内存不会引发新的,更难以捕捉的问题。
& & & &我们已经见过不少适合多线程同时运行的情景。比如,你听的最多的情形是大量的工作分解成并行的计算,然后把每种计算放到单独的线程中。再比如下述情形也适合用多线程的方法来解决:如类中的某个函数调用需要(相对)较长的时间完成。如果我们能调用这些函数,在它完成的之前又做其它事,其他事做完之后再回来获得它的计算结果,那就太好了。
& & & & 在分布式程序设计中会有这种情况:跨网络的调用需要花很长时间(对计算机来说),如果能在调用执行的过程中找到其它事情来做,我们就能更合理地利用计算机资源。但使用远程过程调用机制便意味着跨网络的调用看起来就像一次本地方法的调用,而这又意味着我们需要等待调用结束才能做其它事情(Java中,RPC机制是通过RMI标准实现的)。曾有人争论:声称这显示了RPC形式的一个根本弱点,而且这种构建分布式系统的方法应该被舍弃,改用某种面向消息的系统。笔者不想在此深入讨论这个问题,只想说使用并发编程技术,因为这样的争论是说不通的。至少在程序性能的影响方面是说不通的。
& & & & 等待RPC调用会消耗大量的性能,除非我们在单独的线程中调用它们。如果我们创建一个新的线程来做RMI调用,就可以让那个线程等待结果,同时另一个线程做其它事情。这种方法即使在某一个时刻只能运行一个线程的单核处理器上也是有用的。在RMI调用挂起的时候,另一个线程可被调度执行。
& & & & 并发编程时语言和软件工程的下一个前言。由于多核系统的出现,我们中的某些一直无视并发编程的人现在不得不选择它,尤其是在大型服务器端程序开发时,为了提高性能,必须采用多线程模式编程。我们必须理解并发,而且随着时间的推移,我们肯定会发明出新的用法和实践,使编写并发系统更加容易,也更程式化。然而在那之前,能有一种可信赖的语言和环境------只要你写出正确的程序,它就能做正确的事情是非常不错的。或许Java给不出多线程的终极方案,但它还是给出了一种方案,可用来发挥新一代芯片的潜力,这本身就足以是并发编程成为Java的精良部分之一。
本文参考:《Java语言精粹》电子工业出版社
参考知识库
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:315259次
积分:3539
积分:3539
排名:第7878名
原创:61篇
转载:57篇
评论:30条
(1)(1)(1)(3)(8)(27)(22)(4)(3)(4)(15)(3)(1)(25)查看: 44393|回复: 11
关于vmware中CPU核心个数设置的问题?
本帖最后由 107 于
10:53 编辑
RT,请问是按默认设成单核就好了,还是和设成和主机CPU一样,比如主机是双核就设成双核,这个意义大么?
我虚拟机装XP默认,实体机双核。。不懂
似乎是设置成什么虚拟机就会使用多少个核心...
by aarwwefdds
试过,感觉性能区别不是很大
设置成几个就会使用几个,兼顾你主机反映速度把
没设置用默认的。。。
这个没有使用过~~~回头考虑试用下
我自己测试的VM里设置双核比单核性能好一点,没那么卡。再多核心似乎就没什么效果了。
主机四核,VM用的xp系统。
也许xp利用多核CPU不怎么样,到双核也就那样了。
在Windows里面不能绑定CPU,所以设置成多核也就是多占CPU时间片而已。
我的虚拟机设置的是双核,如果设置四核的话对实机还是有影响的
Copyright & KaFan & All Rights Reserved.
Powered by Discuz! X3.1( 苏ICP备号 ) GMT+8,六核心PK八线程!多核CPU专业应用测试
日 00:08&&&出处:&& 作者:陈骋&& 编辑:陈骋
   此时,CPU性能过剩论产生了,有一种说法认为,目前四核心CPU的性能已经足够了,甚至在未来的相当长一段时间内都如此。确实,在日常应用中,浏览网页、聊天、软解高清视频,一些常见应用的CPU占用率对高端四核来说十分低,多任务的瓶颈也都在硬盘或内存上。在不少游戏中,除了显卡,游戏效能表现往往对CPU主频更加敏感,在运行时往往只有两颗核心占用率较高。
一些日常应用和娱乐只能用到两颗核心
   但是,并非所有的用户买高端CPU仅仅是为了满足日常应用和简单的游戏娱乐。像传统的图形/图像制作处理,视频转码、3D动画渲染等应用中,程序不但可以用到CPU的全部核心,每颗核心的占用率都在90%以上,接近100%,可以说是榨干了CPU的全部性能,这时候,一颗高性能的多核CPU的价值就体现出来了。
专业应用可以令多核CPU发挥出全部实力
   本次测试,就市面上热门的多核CPU进行了对比测试,看看他们在专业应用中的效能到底如何。
四核八线程比拼六核
   在专业应用中,计算量和复杂程度是非常高的,CPU的每一颗核心都发挥淋漓尽致。甚至四核心都不能完全满足性能需求,于是,和Intel都推出了六核心的CPU,在未来还将会有八核心的产品。不过,目前Intel唯一六核旗舰CPU Core
980X价格高达7000多元,远非一般用户可以接受。
   相比之下,的羿龙II X6产品则最低只有1000元出头,顶级型号也只有2000多元。而Intel在2000元价位上的Core i7系列四核CPU拥有超线程技术,可以将每颗物理核心当做两颗逻辑核心使用,这样其四核CPU就拥有8个逻辑线程。
   那么,Core i7和Phenom II X6到底是4 vs 6?还是8对4?他们在专业应用中的表现如何呢?他们的市场价格也比价接近,都在2000元出头,消费者在选择的时候也会犹豫:究竟是超线程威力更强,还是多两个物理核心更实在?
   这次测试选用了4核8线程的Intel Core i7 875K和AMD的六核旗舰Phenom II X6 1090T,以及Core i5 750和Phenom II X4 955两款纯四核CPU做对比。
   我们先看看这次参与测试的几款CPU规格:
i7 875K 2.93GHz 4C/8T
i5 750 2.66GHz 4C/4T
Phenom II X6 1090T 6C
Phenom II X4 955 4C
测试平台和项目说明
   又是一次Intel vs AMD的大战,平台选用如下:
   测试平台分别使用P55和890G芯片组的主板,内存为2Gx2双通道,使用了FirePro专业显卡。操作系统为64位Win 7。
   软件方面,使用Sisoftware Sandra进行了CPU和内存的基本性能测试,应用项目包括Media Coder视频转码、CineBench图片渲染、Photo&Shop图片渲染以及Maya、3DS MAX、LightWave三款专业3D动画设计制作软件的测试。
   测试中关闭了Intel的睿频和AMD的Turbo Core,以及节能技术。让CPU只在默认主频运行。
Sisoftware Sandra基础性能测试
   SiSoftware Sandra是一套功能强大的系统分析评比工具,拥有超过30种以上的分析与测试模组,还有、Drives、CD-ROM/D、Memory 的Benchmark工具,它还可将分析结果报告列表存盘。SiSoft Sandra除了可以提供详细的硬件信息外,还可以做产品的性能对比,提供性能改进建议。
   通过这项测试,我们首先对四款CPU的基本理论性能有一个清楚的概念。测试项目包括:CPU算术性能、多媒体性能和内存带宽三项。
   Intel的CPU算术性能还是十分强劲的,尽管主频不如对手,但是成绩却更好,i7更是利用超线程的优势,硬生生的战胜了比自己多两个物理核心的X6。
   Phenom II X4 955和X6 1090T的默认主频都很高,所以分别战胜了同核心数量的i5 750和多两个线程的i7 875K。
   P55平台的Core i5/i7内存性能十分优秀,而AMD的Phenom II相比之下就显得弱不少,这在对内存带宽要求很高的应用中十分不利,会限制CPU的发挥。
CineBench图片渲染测试
   CineBench使用针对行业开发的Cinema 4D特效软件引擎,可以测试和的性能。最新的R11.5版改进了多线程渲染的方式,渲染效率大大提高。可以更好的检测多核心的性能。
   性能结果直接以分数表示,精确到小数点后两位,经过多次测试,发现此软件测出的数值十分稳定,几乎没有波动,可以认为其对CPU性能的反映也是稳定、客观的。
   借助于6个核心的优势,X6 1090T的分数最高。八线程的i7 875K稍弱。四核心的成绩稍弱,其中X4 955的性能要比i5 750强10%左右。
Media Coder视频转换测试
   MediaCoder是一个免费的通用音频/视频批量转码工具,它将众多来自开源社区的优秀音频视频编解码器和工具整合为一个通用的解决方案,可以将音频、视频文件在各种格式之间进行转换。MediaCoder具备一个可扩展的架构和丰富的功能,可满足各种场合下的转码需求。目前,MediaCoder的用户已经遍布全世界170多个国家。在解码/编码过程中考验的以及效能。
   测试内容为将一段1080P高清视频片段进行转码,软件转换完毕后产生的输出报告中包含转码时间。
   在视频转码测试中,i7和X6的差距很小,不过同为四核四线程的i5和X4差距就比较大了。
PhotoShop图片处理测试
   Photoshop是Adobe公司旗下最为出名的软件之一,集图像扫描、编辑修改、图像制作、广告创意,图像输入与输出于一体的图形软件,深受广大平面设计人员和美术爱好者的喜爱。在对大尺寸图片进行处理的时候,对容量十分敏感,读取操作和处理表现差异明显。这款软件同样支持64bit,测试中选用了对一张大小为50M的JPEG图片进行染色玻璃效果渲染。
   测试结果如下:
   在PS的测试中,Intel的性能比AMD要好很多,这主要是由于内存带宽的差距造成的。受此瓶颈的限制,X6的CPU性能完全发挥不出来,和X4 955处于一个水平上。
Maya 2009渲染测试
   屡获殊荣的 Autodesk Maya 软件是一个强大、集成的三维建模、动画、视觉特效和渲染解决方案。由于 Maya基于开放结构,因此您的所有工作都可以利用文档齐全的综合 API(应用程序编程接口)或两种嵌入式脚本语言之一(Maya 嵌入式语言 (MEL) 或 Python&)进行脚本处理或编程。这种开放程度与业界领先的三维工具套件相结合,使你能够在电影、电视、游戏开发和设计项目中实现自己的创想。
   测试结果如下:
   Maya 2009中,Intel的CPU打败了对手,不过优势并不大,四核i5 750和X4955效能基本相当,八线程的i7和X6成绩也比较接近。
3DS MAX 2010渲染测试
   3D Studio Max,常简称为3ds Max或MAX,是Autodesk公司开发的基于系统的三维动画渲染和制作软件。其前身是基于DOS操作系统的3D Studio系列软件,最新版本是2011。在Windows NT出现以前,工业级的CG制作被SGI图形工作站所垄断。3D Studio Max + Windows NT组合的出现一下子降低了CG制作的门槛,首选开始运用在游戏中的动画制作,后更进一步开始参与影视片的特效制作,例如X战警II,最后的武士等。
   测试结果如下:
   这款软件中AMD CPU的表现更好,不管是六核还是四核,都超过了对手。其中高主频的优势发挥了作用。而在如此长时间的工作中,更多的核心/线程可以令处理时间大幅缩短,提高了效率。
LightWave 9.6渲染测试
   LightWave是一个具有悠久历史和众多成功案例的为数不多的重量级3D软件之一。由美国NewTek公司开发的LightWave3D是一款高性价比的三维动画制作软件,它的功能非常强大,是业界为数不多的几款重量级三维动画软件之一。  
   LightWave 9.6的新功能包括对动画、渲染和工作流程的改进和毛发系统、布局吸附以及文件通过拖拽自动加载等功能。同时在9.5和9.6之间的625个新特性和曾出现过的问题都已实现和得到了解决,且此版本更为稳定。LightWave 9.6版本是LightWave v9系列中的第五个免费升级版本。
   测试结果如下:
   8线程的i7与6核1090T不分上下,四核i 750与X4 955成绩也相当。不过多两个核心/四个线程的处理速度要快了将近30%。
   这次的测试项目不多,主要目的是看看i7与X6在专业应用软件中的性能对比。总体来看,他们的性能是相当的,各有胜负,主要看软件的特点了。不过,AMD的内存性能有点糟糕,使得其在Photo Shop处理的项目中大幅落后,这样的情况在内存吞吐量很大的情况下也会产生类似结果,比如大容量的文件压缩/加密等等。
       Core i7 875K         Phenom II X6 1090T
   除此之外,价格相近的i7 875K与X6 1090T在多数专业应用上差距不大,各有胜负。一个具备更好的单核心能力和多线程技术,一个则拥有6个物理核心来弥补架构上的劣势。你会如何选择呢?■
CPU频率:2.93GHz CPU核心:四核心八线程 接口类型:LGA 1156 制程工艺:45纳米 二级缓存:1024 三级缓存:8MB
大学生分期购物销量榜
看过本文的人还看了
2万人浏览 1.9万人浏览 8458人浏览 7047人浏览}

我要回帖

更多关于 多核cpu 多线程 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信